*fd_out = -1; 
pid = -1; 
static int winch_tramp(int fd, struct tty_struct *tty, int *fd_out){	struct winch_data data;	unsigned long stack;	int fds[2], pid, n, err;	char c;	err = os_pipe(fds, 1, 1);	if(err < 0){		printk("winch_tramp : os_pipe failed, err = %d\n", -err);		return(err);	}	data = ((struct winch_data) { .pty_fd 		= fd,				      .pipe_fd 		= fds[1],				      .close_me 	= fds[0] } );	pid = run_helper_thread(winch_thread, &data, 0, &stack, 0);	if(pid < 0){		printk("fork of winch_thread failed - errno = %d\n", errno);		return(pid);	}	os_close_file(fds[1]);	*fd_out = fds[0];	n = os_read_file(fds[0], &c, sizeof(c));	if(n != sizeof(c)){		printk("winch_tramp : failed to read synchronization byte\n");		printk("read failed, err = %d\n", -n);		printk("fd %d will not support SIGWINCH\n", fd);		*fd_out = -1;	}	return(pid);}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/da00d9a5466558ccd9e7b7d04b13d7cb9160c876/chan_user.c/buggy/arch/um/drivers/chan_user.c