This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH] Fix memory leak in printf_positional
- From: Andreas Schwab <schwab at suse dot de>
- To: Paul Pluzhnikov <ppluzhnikov at google dot com>
- Cc: "Carlos O'Donell" <carlos at redhat dot com>, Joseph Myers <joseph at codesourcery dot com>, Paul Eggert <eggert at cs dot ucla dot edu>, GLIBC Devel <libc-alpha at sourceware dot org>
- Date: Thu, 03 Sep 2015 09:23:39 +0200
- Subject: Re: [PATCH] Fix memory leak in printf_positional
- Authentication-results: sourceware.org; auth=none
- References: <1440571295-20230-1-git-send-email-eggert at cs dot ucla dot edu> <alpine dot DEB dot 2 dot 10 dot 1508260930500 dot 26898 at digraph dot polyomino dot org dot uk> <55DFB7C7 dot 50307 at redhat dot com> <alpine dot DEB dot 2 dot 10 dot 1508281350520 dot 5939 at digraph dot polyomino dot org dot uk> <55E06924 dot 2000209 at redhat dot com> <CALoOobMkGafD9zvq9g13TM8_Nd+HmC58_8gMGTQhdefXpko3CA at mail dot gmail dot com> <alpine dot DEB dot 2 dot 10 dot 1508311039110 dot 27932 at digraph dot polyomino dot org dot uk> <CALoOobO2iV9hPNB_S7PDoL=cWVCPrSkKGaUQfqboxUg40fsrVw at mail dot gmail dot com> <alpine dot DEB dot 2 dot 10 dot 1509021004030 dot 3590 at digraph dot polyomino dot org dot uk> <CALoOobN6LcGFEkieN3CJQ7mKeL7m5H3_aaYb17uEW9ZE_zX4yA at mail dot gmail dot com> <alpine dot DEB dot 2 dot 10 dot 1509021427530 dot 27392 at digraph dot polyomino dot org dot uk> <55E73436 dot 1050305 at redhat dot com> <CALoOobMusa6usQCEAR2bs8ES2EbHRa9YuCARd9=ewq1eROPLmQ at mail dot gmail dot com>
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."