From 3efc9c5e4f48b9abcfe6c73e7bb7233173e4ee75 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Sun, 1 Aug 2021 17:48:29 -0700 Subject: [PATCH] xvasprintf: improve -fanalyzer malloc checking --- ChangeLog | 2 +- lib/xvasprintf.h | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) 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 -- 2.39.5