From: Jim Meyering Date: Tue, 20 Mar 2007 14:21:08 +0000 (+0100) Subject: Fix a typo in the handling of %x and %X. X-Git-Tag: COREUTILS-6_9~9 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=13e4c87ff60b74b4401e4d6fa33823da5125f15a;p=thirdparty%2Fcoreutils.git Fix a typo in the handling of %x and %X. * vasnprintf.c (VASNPRINTF): When adding 2 to buffer length, don't double it. --- diff --git a/lib/ChangeLog b/lib/ChangeLog index 49c0e93c89..e1b4c7aaca 100644 --- a/lib/ChangeLog +++ b/lib/ChangeLog @@ -1,3 +1,9 @@ +2007-03-20 Jim Meyering + + Fix a typo in the handling of %x and %X. + * vasnprintf.c (VASNPRINTF): When adding 2 to buffer length, + don't double it. + 2007-03-04 Jim Meyering * vasnprintf.c (VASNPRINTF): Add missing semicolon. diff --git a/lib/vasnprintf.c b/lib/vasnprintf.c index 8be7ac4808..8a9ec9e93c 100644 --- a/lib/vasnprintf.c +++ b/lib/vasnprintf.c @@ -415,8 +415,9 @@ VASNPRINTF (CHAR_T *resultbuf, size_t *lengthp, const CHAR_T *format, va_list ar if (tmp_length < precision) tmp_length = precision; /* Add 2, to account for a leading sign or alternate form. */ - if (tmp_length <= SIZE_MAX / 2) - tmp_length *= 2; + tmp_length += 2; + if (tmp_length < 2) + goto out_of_memory; break; case 'f': case 'F':