FIONREAD bug

utzoo!decvax!cca!z utzoo!decvax!cca!z
Fri Jul 16 12:57:27 AEST 1982


The FIONREAD ioctl works properly when used on slave pty's, but not on
controller pty's; it erroneously always returns zero.  The reason is
that the character count for the controller pty is located in a
different place from where FIONREAD expects it.  The following code
corrects this.  There are a number of places this code can be put; we
put it right after the first statement in ptyioctl (the statement which
sets up tp).

	if (cdevsw[major(dev)].d_open == ptcopen && cmd == FIONREAD) {
	    	off_t nread;
	    	nread = tp->t_outq.c_cc;
	    	if (copyout((caddr_t)&nread, addr, sizeof (off_t)))
		       u.u_error = EFAULT;
	    	return;
	}



More information about the Comp.bugs.4bsd.ucb-fixes mailing list