This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] Fix memory leak in printf_positional


Paul Pluzhnikov <ppluzhnikov@google.com> writes:

> @@ -76,6 +82,13 @@ $(objpfx)tst-unbputc.out: tst-unbputc.sh $(objpfx)tst-unbputc
>  $(objpfx)tst-printf.out: tst-printf.sh $(objpfx)tst-printf
>  	$(SHELL) $< $(common-objpfx) '$(test-program-prefix)'; \
>  	$(evaluate-test)
> +
> +$(objpfx)tst-printf-bz18872.c: tst-printf-bz18872.sh
> +	rm -f $@
> +	$(BASH) $^ > $@

Please make that atomic by using a temporary file.

> +for j in $(seq 1 $n_args); do
> +  if [[ $(($j % 10)) == 1 ]]; then printf "\n"; fi
> +  printf '"%%%d$s" ' $j
> +done
> +
> +printf ' "%%%d$s",' $(($n_args + 1))
> +
> +for j in $(seq 1 $n_args); do
> +  if [[ $(($j % 10)) == 1 ]]; then printf "\n"; fi
> +  printf '"a", '
> +done

Since you are already using bash you can also use `for ((j = 1; j <=
n_args; j++))'.

Andreas.

-- 
Andreas Schwab, SUSE Labs, schwab@suse.de
GPG Key fingerprint = 0196 BAD8 1CE9 1970 F4BE  1748 E4D4 88E3 0EEA B9D7
"And now for something completely different."


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]