NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

kern/60785: fifo delivers SIGIO with wrong si_fd



>Number:         60785
>Category:       kern
>Synopsis:       fifo delivers SIGIO with wrong si_fd
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    kern-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Thu Sep 24 21:40:00 +0000 2026
>Originator:     Taylor R Campbell
>Release:        current, 11, 10, ...
>Organization:
The Fee Fifo Fio Fumdation, Inc.
>Environment:
>Description:

	SIGIO for a named fifo is always delivered with si_fd=-1
	instead of the fifo fd itself, because it passes the underlying
	socket object to fownsignal as the putative struct file::f_data
	value to look up, instead of the vnode pointer that is actually
	there.

>How-To-Repeat:

	1. code inspection
	2. try using SIGIO with fifos

>Fix:

	Pass the vnode through to fownsignal, I guess?  Or, better,
	invent a better abstraction for managing SIGIO subscriptions so
	it doesn't involve a reverse lookup in the fd table...




Home | Main Index | Thread Index | Old Index