This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: memset zero bytes at NULL - isolate-erroneous-paths
- From: Jonathan Wakely <jwakely dot gcc at gmail dot com>
- To: Dominic News <d dot newsgroups at googlemail dot com>
- Cc: "gcc at gcc dot gnu dot org" <gcc at gcc dot gnu dot org>
- Date: Sun, 17 Nov 2013 18:37:58 +0000
- Subject: Re: memset zero bytes at NULL - isolate-erroneous-paths
- Authentication-results: sourceware.org; auth=none
- References: <CALx3oLxLBCYez=jUiD7sLE-ynVHZ0Dr9QfX3QeLqCP-1p2p1nw at mail dot gmail dot com>
On 17 November 2013 18:25, Dominic News wrote:
> In the following code (from xorg-server)
>
> if (a == 0)
> addr = 0;
> (...)
> memset(addr, '\0', a);
>
> the path for a==0 is turned into a trap by -fisolate-erroneous-paths. (Is
> calling memset like this undefined behaviour?)
Yes. 7.23.1 in the C standard says that even with a zero size the
pointer argument must be valid.