From 15fd07e1bf3dd62ec17306c69fba9f70ad120e08 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Sun, 1 Aug 2021 17:39:38 -0700 Subject: [PATCH] quotearg: improve -fanalyzer malloc checking --- ChangeLog | 2 +- lib/quotearg.h | 9 +++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index e3573cee27..8a3dcb3885 100644 --- a/ChangeLog +++ b/ChangeLog @@ -4,7 +4,7 @@ * lib/backup-internal.h, lib/backupfile.h: * lib/canonicalize.h, lib/dfa.h, lib/dirname.h, lib/exclude.h: * lib/filenamecat.h, lib/malloca.h, lib/modechange.h: - * lib/mountlist.h, lib/pagealign_alloc.h: + * lib/mountlist.h, lib/pagealign_alloc.h, lib/quotearg.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/quotearg.h b/lib/quotearg.h index ecef74f742..22c09bcea1 100644 --- a/lib/quotearg.h +++ b/lib/quotearg.h @@ -333,7 +333,9 @@ size_t quotearg_buffer (char *restrict buffer, size_t buffersize, buffer. It is the caller's responsibility to free the result. The result will not contain embedded null bytes. */ char *quotearg_alloc (char const *arg, size_t argsize, - struct quoting_options const *o); + struct quoting_options const *o) + _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE + _GL_ATTRIBUTE_RETURNS_NONNULL; /* Like quotearg_alloc, except that the length of the result, excluding the terminating null byte, is stored into SIZE if it is @@ -342,7 +344,10 @@ char *quotearg_alloc (char const *arg, size_t argsize, backslash escapes, and the flags of O do not request elision of null bytes.*/ char *quotearg_alloc_mem (char const *arg, size_t argsize, - size_t *size, struct quoting_options const *o); + size_t *size, struct quoting_options const *o) + _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE + _GL_ATTRIBUTE_RETURNS_NONNULL; +; /* Use storage slot N to return a quoted version of the string ARG. Use the default quoting options. -- 2.39.5