From: Paul Eggert Date: Mon, 2 Aug 2021 00:48:29 +0000 (-0700) Subject: xvasprintf: improve -fanalyzer malloc checking X-Git-Tag: v1.0~2738 X-Git-Url: https://gitweb.git.savannah.gnu.org/gitweb/?a=commitdiff_plain;h=3efc9c5e4f48b9abcfe6c73e7bb7233173e4ee75;p=gnulib.git xvasprintf: improve -fanalyzer malloc checking --- diff --git a/ChangeLog b/ChangeLog index aba2b150d6..b1b6b4296c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -7,7 +7,7 @@ * lib/mountlist.h, lib/pagealign_alloc.h, lib/quotearg.h: * lib/readutmp.h, lib/savedir.h, lib/sh-quote.h, lib/system-quote.h: * lib/trim.h, lib/xgetcwd.h, lib/xgethostname.h, lib/xmalloca.h: - * lib/xreadlink.h, lib/xstriconv.h: + * lib/xreadlink.h, lib/xstriconv.h, lib/xvasprintf.h: Add malloc-related attributes and include stdlib.h as needed. * lib/dfa.c: Include verify.h. (assume_nonnull): New macro. diff --git a/lib/xvasprintf.h b/lib/xvasprintf.h index 4da42c6554..aaa7ade550 100644 --- a/lib/xvasprintf.h +++ b/lib/xvasprintf.h @@ -23,6 +23,9 @@ /* Get _GL_ATTRIBUTE_SPEC_PRINTF_STANDARD. */ #include +/* Get 'free'. */ +#include + #ifdef __cplusplus extern "C" { #endif @@ -35,8 +38,10 @@ extern "C" { - [EILSEQ] error during conversion between wide and multibyte characters, return NULL. */ extern char *xasprintf (const char *format, ...) + _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_STANDARD, 1, 2)); extern char *xvasprintf (const char *format, va_list args) + _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_STANDARD, 1, 0)); #ifdef __cplusplus