Alfred Perlstein wrote:
* Diomidis Spinellis <[EMAIL PROTECTED]> [071216 09:47] wrote:
dds 2007-12-16 17:47:34 UTC
FreeBSD src repository
Modified files:
bin/mv mv.c
Log:
Eliminate gcc "variable clobbered" warnings by declaring the variables
living across the vfork as volatile.
Noted by: kan
Revision Changes Path
1.48 +2 -1 src/bin/mv/mv.c
I'm pretty sure that calling warn(3) under vfork() is not allowed
as it can clobber stdio state.
To fix this, have the parent catch a return value from the child
and emit the warning.
This has been there since (at least) 1994, but you're absolutely right.
POSIX states: "[...] the behavior is undefined if the process created
by vfork() either modifies any data other than a variable of type pid_t
used to store the return value from vfork(), or returns from the
function in which vfork() was called, or calls any other function before
successfully calling _exit() or one of the exec family of functions."
I've fixed it in the way you suggested.
--
Diomidis Spinellis
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/cvs-all
To unsubscribe, send any mail to "[EMAIL PROTECTED]"