cvs commit: src/lib/libc/stdio fclose.c

Hiten Pandya hmp at freebsd.org
Wed Jun 9 22:53:44 GMT 2004


On Wed, 9 Jun 2004, Andre Oppermann wrote:

 :Hiten Pandya wrote:
 :>
 :> hmp         2004-06-09 19:24:22 UTC
 :>
 :>   FreeBSD src repository
 :>
 :>   Modified files:        (Branch: RELENG_4)
 :>     lib/libc/stdio       fclose.c
 :>   Log:
 :>   Revert previous commit regarding FUNLOCKFILE(fp), it has ill effects.
 :
 :What ill effects does it have?  I've "make world" a couple of server
 :with this in.  Do I have to remake them again or is it unlikely that
 :I run across the probems?

	Well, the ill effects that I came across was that people
	reported Mozilla and net/freeradius hanging with this change

	As to why it was happening; that's because of inappropriate
	logic employed in lib/libc_r/uthread/uthread_file.c, i.e.,
	in the implementation of the funlockfile() function; it
	checks wether FILE->_file >= 0.  By moving the call to
	FUNLOCKFILE below modification of file flags, it got
	confused because fclose(3) was setting FILE->_file to -1,
	thus leading to a confused FUNLOCKFILE.

	With regard to the problems, you can just recompile your
	libc and it should go away.

	Regards,

	Hiten Pandya
	hmp at freebsd.org


More information about the cvs-src mailing list