Fix buffer overflow reported by John Darrington.
authorBen Pfaff <blp@gnu.org>
Sat, 11 Nov 2006 19:43:33 +0000 (19:43 +0000)
committerBen Pfaff <blp@gnu.org>
Sat, 11 Nov 2006 19:43:33 +0000 (19:43 +0000)
src/data/ChangeLog
src/data/data-out.c

index 4be64ea96654f430c10c3360de8c0fdad05a6d26..c77770c404e8b5062343d22c9839e26d24e6e706 100644 (file)
@@ -1,3 +1,10 @@
+Sat Nov 11 11:41:26 2006  Ben Pfaff  <blp@gnu.org>
+
+       Fix buffer overflow reported by John Darrington.
+
+       * data-out.c (output_bcd_integer): In case of SYSMIS, etc.,
+       realize that DIGITS is a count of nibbles, not of bytes.
+
 Sat Nov  4 15:59:56 2006  Ben Pfaff  <blp@gnu.org>
 
        * calendar.c (calendar_offset_to_gregorian) Also return the
index ffc79ecc51be62d9ce9b5e1d317ffc03978b28f2..6622c7d4fe8fe05a31f1df5cd93d294395c6de87 100644 (file)
@@ -1026,7 +1026,7 @@ output_bcd_integer (double number, int digits, char *output)
     }
   else 
     {
-      memset (output, 0, digits);
+      memset (output, 0, DIV_RND_UP (digits, 2));
       return false; 
     }
 }