git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH 2/2] nedmalloc: work around overzealous GCC 6 warning

From
René Scharfe <l.s.r@web.de>
Date
Aug 5, 2016, 22:30 UTC
Message-ID
<57A5136E.20802@web.de>
In-Reply-To
<xmqqk2fuvpzm.fsf@gitster.mtv.corp.google.com>
Am 05.08.2016 um 23:57 schrieb Junio C Hamano:
Show 15 quoted lines
> Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:
>
>> Hi Junio & René,
>>
>> On Thu, 4 Aug 2016, Junio C Hamano wrote:
>>
>>> Let's try it this way.  How about this as a replacement?
>>
>> I like it (with the if (s2) test intead of if (s1), of course). But please
>> record René as author, maybe mentioning myself with a "Diagnosed-by:"
>> line.
>
> Hmph.  I cannot do that unilaterally without waiting for René to
> respond, though.  In any case, with only header and footer changes,
> here is what will appear in 'pu'.
It's fine with me, thanks. :)  Minor comments below.
Show 21 quoted lines
> Thanks.
>
> -- >8 --
> From: René Scharfe <l.s.r@web.de>
> Date: Thu, 4 Aug 2016 23:56:54 +0200
> Subject: [PATCH] nedmalloc: work around overzealous GCC 6 warning
>
> With GCC 6, the strdup() function is declared with the "nonnull"
> attribute, stating that it is not allowed to pass a NULL value as
> parameter.
>
> In nedmalloc()'s reimplementation of strdup(), Postel's Law is heeded
> and NULL parameters are handled gracefully. GCC 6 complains about that
> now because it thinks that NULL cannot be passed to strdup() anyway.
>
> Because the callers in this project of strdup() must be prepared to
> call any implementation of strdup() supplied by the platform, so it
> is pointless to pretend that it is OK to call it with NULL.
>
> Remove the conditional based on NULL-ness of the input; this
> squelches the warning.

My commit message would have been much shorter, probably too short. But perhaps add here: "Check the return value of malloc() instead to make sure we actually got memory to write to."

Show 24 quoted lines
> See https://gcc.gnu.org/gcc-6/porting_to.html for details.
>
> Diagnosed-by: Johannes Schindelin <johannes.schindelin@gmx.de>
> Signed-off-by: René Scharfe <l.s.r@web.de>
> Signed-off-by: Junio C Hamano <gitster@pobox.com>
> ---
>   compat/nedmalloc/nedmalloc.c | 9 ++++-----
>   1 file changed, 4 insertions(+), 5 deletions(-)
>
> diff --git a/compat/nedmalloc/nedmalloc.c b/compat/nedmalloc/nedmalloc.c
> index 677d1b2..2d4ef59 100644
> --- a/compat/nedmalloc/nedmalloc.c
> +++ b/compat/nedmalloc/nedmalloc.c
> @@ -955,12 +955,11 @@ void **nedpindependent_comalloc(nedpool *p, size_t elems, size_t *sizes, void **
>    */
>   char *strdup(const char *s1)
>   {
> -	char *s2 = 0;
> -	if (s1) {
> -		size_t len = strlen(s1) + 1;
> -		s2 = malloc(len);
> +	size_t len = strlen(s1) + 1;
> +	char *s2 = malloc(len);
> +
You added this blank line.  OK.
Show 7 quoted lines
> +	if (s2)
>   		memcpy(s2, s1, len);
> -	}
>   	return s2;
>   }
>   #endif
>
Previous: Junio C Hamano
Message 17 of 17 in “Patches to let Git build with GCC 6 and DEVELOPER=SureWhyNot”
  1. 0/2 Patches to let Git build with GCC 6 and DEVELOPER=SureWhyNotJohannes Schindelin, Aug 4, 2016
  2. 1/2 nedmalloc: fix misleading indentationJohannes Schindelin, Aug 4, 2016
  3. 2/2 nedmalloc: work around overzealous GCC 6 warningJohannes Schindelin, Aug 4, 2016
  4. Junio C HamanoAug 4, 2016
  5. Johannes SchindelinAug 5, 2016
  6. René ScharfeAug 4, 2016
  7. Junio C HamanoAug 4, 2016
  8. Junio C HamanoAug 4, 2016
  9. Johannes SixtAug 5, 2016
  10. Johannes SixtAug 5, 2016
  11. Junio C HamanoAug 5, 2016
  12. Jeff KingAug 5, 2016
  13. Johannes SchindelinAug 5, 2016
  14. Junio C HamanoAug 5, 2016
  15. Johannes SchindelinAug 6, 2016
  16. Junio C HamanoAug 5, 2016
  17. René ScharfeAug 5, 2016

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.