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

Re: Is this a bug in libc6?



Hi,

	It is also a quality of implementation issue. I have no
 objections to am implementation documenting that a second call to
 fclose shall result in indeterminate behaviour, and then not catching
 that the structure is no longer an active  FILE *  stream. 

	I do have a problem with the implementation not documenting
 the action, if it is not a benign ignoring of the second call (which
 may or may not have unpredictable results), issuing a diagnostic and
 terminating either at translation or execution stage.

	In other words, if the implementation is going to do anything
 strange, it has to document the behaviour.

	Anything else, In my interpretation, is a violation of the
 standar, or, at least, a very poor imlemntation. I am certainly going
 to complain to my vendor if it corrupts memory or makes monkies fly
 out of peoples noses (the SPCA would have something to say about that
 too).

	So, the point is not whether they implemntation can do strange
 and unexpected things; they can; but then they have to document it. 

 BTW, in Debian, fclose says it returns an error, and does not mention
 corrupting memory. 
ERRORS
       EBADF  The argument stream is not an open stream.

       The fclose function may also fail and set errno for any of
       the  errors  specified  for  the  routines   close(2)   or
       fflush(3).
close(2) says:
RETURN VALUE
       close returns zero on success, or -1 if an error occurred.

ERRORS
       EBADF  fd isn't a valid open file descriptor.

	So if any memory was corrupted, report it as a bug (with
 possibly a non-normal severity) against libc6. A segfault is
 definitely not acceptable in the light of a documented rteturn
 value. Undefined does not mean that the implemntation has the right
 to mess up my machine (again, a quality of implementation issue even
 if in your judgement it does not violate the standard. I think an
 undocumented segfault is a violation of the standard).

	manoj
-- 
 "To be good, according to the vulgar standard of goodness, is
 obviously quite easy.  It merely requires a certain amount of sordid
 terror, a certain lack of imaginative thought, and a certain low
 passion for middle-class respectability." Oscar Wilde
Manoj Srivastava  <srivasta@acm.org> <http://www.datasync.com/%7Esrivasta/>
Key C7261095 fingerprint = CB D9 F4 12 68 07 E4 05  CC 2D 27 12 1D F5 E8 6E


--
To UNSUBSCRIBE, email to debian-devel-request@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org


Reply to: