summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorJim Meyering <jim@meyering.net>2007-03-20 15:21:08 +0100
committerJim Meyering <jim@meyering.net>2007-03-20 15:21:08 +0100
commit13e4c87ff60b74b4401e4d6fa33823da5125f15a (patch)
treeb93382182061e1b59da43e9b41dd1bed4c0b8923 /lib
parentde540a76eb7c2cbb95ac84ea31cdf0e4cf0013a5 (diff)
downloadcoreutils-13e4c87ff60b74b4401e4d6fa33823da5125f15a.tar.xz
Fix a typo in the handling of %x and %X.
* vasnprintf.c (VASNPRINTF): When adding 2 to buffer length, don't double it.
Diffstat (limited to 'lib')
-rw-r--r--lib/ChangeLog6
-rw-r--r--lib/vasnprintf.c5
2 files changed, 9 insertions, 2 deletions
diff --git a/lib/ChangeLog b/lib/ChangeLog
index 49c0e93c8..e1b4c7aac 100644
--- a/lib/ChangeLog
+++ b/lib/ChangeLog
@@ -1,3 +1,9 @@
+2007-03-20 Jim Meyering <jim@meyering.net>
+
+ 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 <jim@meyering.net>
* vasnprintf.c (VASNPRINTF): Add missing semicolon.
diff --git a/lib/vasnprintf.c b/lib/vasnprintf.c
index 8be7ac480..8a9ec9e93 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':