bug-gnulib
[Top][All Lists]
Advanced

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

Re: test-memchr failure on rawhide


From: James Youngman
Subject: Re: test-memchr failure on rawhide
Date: Sat, 9 May 2009 01:54:48 +0100

On Fri, May 8, 2009 at 11:21 PM, Bruno Haible <address@hidden> wrote:
> Andreas Schwab wrote:
>> They are free to access the object in any random order they like.
>
> The question is: How many bytes are the mem* functions free to access?
>
> How many bytes is "the object" large?

If s is NULL, there _is_ no object.

> ISO C 99 7.21.5.1 says:
>
>  "The memchr function locates the first occurrence of c (converted to an 
> unsigned
>   char) in the initial n characters (each interpreted as unsigned char) of the
>   object pointed to by s.

NULL is not a pointer to an object.   A program which passes NULL to
memchr() has undefined behaviour.  SIGSEGV is the lucky outcome here;
the compiler is allowed to pour gasoline in your coffee instead of
producing an executable if it likes.   See section 3.4.3 of the
standard.

>
>   Returns
>   The memchr function returns a pointer to the located character, or a null 
> pointer
>   if the character does not occur in the object."
>
> Can you give a justification why the function would be allowed to access more 
> than
> n bytes?

The question doesn't arise, though.

You're talking about the range of reasonable behaviours applying in
circumstances where the C standard imposes no requirements at all.

James.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]