Can we characterize the severity of this issue? The referenced fix has been made upstream in 2.6 but not 2.4, and to do so would require backporting fget_light()/fput_light(). I wonder if this is too invasive for a late update... adding sct to cc list for his opinion.
It's worse than just a missing fput(). The 2.4 code does: struct file *file = fget(fd); struct tty_struct *real_tty; if (!fd) return -EBADF; It's checking fd for != 0 instead of file. So it's (a) failing to operate correctly if fd == 0 (which is a perfectly legal fd), and is (b) failing to detect when fget() returns NULL. The fix is simple and localised. There is no need at all to back-port fget/fput_light() --- those are optimisations available only in 2.6. For 2.4, just use fget()/fput().
Fix posted for internal review on 17-Oct-2005.
A fix for this problem has just been committed to the RHEL3 U7 patch pool this evening (in kernel version 2.4.21-37.6.EL).
A fix for this problem has also been committed to the RHEL3 E7 patch pool this evening (in kernel version 2.4.21-37.0.1.EL).
An advisory has been issued which should help the problem described in this bug report. This report is therefore being closed with a resolution of ERRATA. For more information on the solution and/or where to find the updated files, please follow the link below. You may reopen this bug report if the solution does not work for you. http://rhn.redhat.com/errata/RHSA-2006-0140.html