Hi Mark, On Tue, Apr 30, 2024 at 10:39 AM Mark Wielaard <m...@klomp.org> wrote: > > This alloca use is inside a lexical block and is used to replace one > element of argv. Use a function local variable, xmalloc and free to > make memory usage pattern more clear. > > * src/ar.c (main): Move newp char pointer declaration up. > Use xmalloc to allocate space. free at end of main. > > Signed-off-by: Mark Wielaard <m...@klomp.org>
LGTM. This patch shouldn't change anything except possibly help some static analyzers detect correct memory usage. Aaron > --- > src/ar.c | 6 +++++- > 1 file changed, 5 insertions(+), 1 deletion(-) > > diff --git a/src/ar.c b/src/ar.c > index e6d6d58f2b3b..fcb8bfb90a9f 100644 > --- a/src/ar.c > +++ b/src/ar.c > @@ -41,6 +41,7 @@ > #include <system.h> > #include <printversion.h> > > +#include "libeu.h" > #include "arlib.h" > > > @@ -154,10 +155,11 @@ main (int argc, char *argv[]) > > /* For historical reasons the options in the first parameter need > not be preceded by a dash. Add it now if necessary. */ > + char *newp = NULL; > if (argc > 1 && argv[1][0] != '-') > { > size_t len = strlen (argv[1]) + 1; > - char *newp = alloca (len + 1); > + newp = (char *) xmalloc (len + 1); > newp[0] = '-'; > memcpy (&newp[1], argv[1], len); > argv[1] = newp; > @@ -271,6 +273,8 @@ MEMBER parameter required for 'a', 'b', and 'i' > modifiers")); > break; > } > > + free (newp); > + > return status; > } > > -- > 2.44.0 >