]> git.ipfire.org Git - thirdparty/coreutils.git/commitdiff
Fix a typo in the handling of %x and %X.
authorJim Meyering <jim@meyering.net>
Tue, 20 Mar 2007 14:21:08 +0000 (15:21 +0100)
committerJim Meyering <jim@meyering.net>
Tue, 20 Mar 2007 14:21:08 +0000 (15:21 +0100)
* vasnprintf.c (VASNPRINTF): When adding 2 to buffer length,
don't double it.

lib/ChangeLog
lib/vasnprintf.c

index 49c0e93c895ede409cf7399d5a4bbabee8112dad..e1b4c7aaca0648c973a918bd8903b509f2cacbac 100644 (file)
@@ -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.
index 8be7ac48086b1f9e4e6a98d6e9c23f9b24a5226f..8a9ec9e93c650e444fccef673a8405539ffb1825 100644 (file)
@@ -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':