[Bug 243103] fork fails to clone open message queue handles into the child process (in violation of POSIX std.)
bugzilla-noreply at freebsd.org
bugzilla-noreply at freebsd.org
Mon Jan 27 22:37:38 UTC 2020
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=243103
--- Comment #10 from commit-hook at freebsd.org ---
A commit references this bug:
Author: imp
Date: Mon Jan 27 22:36:54 UTC 2020
New revision: 357183
URL: https://svnweb.freebsd.org/changeset/base/357183
Log:
Make mqueue objects work across a fork again.
In r110908 (2003) alfred added DFLAG_PASSABLE to tag those types of FD
that can be passed via unix pipes, but mqueuefs didn't exist
yet. Later, in r152825 (2005) davidxu neglected to include
DFLAG_PASSABLE since people don't normally pass these things via unix
sockets (it's a FreeBSD implementation detail that it's a file
descriptor, nobody noticed). Then r223866 (2011) by jonathan used the
new flag in fdcopy, which fork uses. Due to that, mqueuefs actually
broke mqueue objects being propagated by fork. No mention of mqueuefs
was made in r223866, so I think it was an unintended consequence.
Fix this by tagging mqueuefs as passable as well. They were prior to
alfred's change (and it's clear there's no intent in his change to
change this behavior), and POSIX requires this to be the case as well.
PR: 243103
Reviewed by: kib@, jiles@
Differential Revision: https://reviews.freebsd.org/D23038
Changes:
head/sys/kern/uipc_mqueue.c
--
You are receiving this mail because:
You are the assignee for the bug.
More information about the freebsd-standards
mailing list