Source-Changes-D archive

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

Re: CVS commit: src/common/lib/libc/string



On Mon, 14 Apr 2014, Joerg Sonnenberger wrote:
Modified Files:
        src/common/lib/libc/string: bcopy.c

Log Message:
Using bcopy/memcpy with NULL arguments is valid as long as the size is
also 0.

No, it's undefined behaviour.  C99 section 7.21.1:

   Unless explicitly stated otherwise in the description of a
   particular function in this subclause, pointer arguments on
   such a call shall still have valid values, as described in
   7.1.4.

and 7.1.4 says:

   If an argument to a function has an invalid value (such as ...
   a null pointer ...) ..., the behavior is undefined.

and 7.21.2.1 "The memcpy function" does not give any explicit permission for use of null pointers.

I don't object if the implementation wants to allow null pointers with zero size as an extension, but it should be clear that this is non-standard.

--apb (Alan Barrett)


Home | Main Index | Thread Index | Old Index