]> granicus.if.org Git - xz/commitdiff
Fix too small static buffer in util.c.
authorLasse Collin <lasse.collin@tukaani.org>
Tue, 26 Jan 2010 13:42:24 +0000 (15:42 +0200)
committerLasse Collin <lasse.collin@tukaani.org>
Tue, 26 Jan 2010 13:42:24 +0000 (15:42 +0200)
This was introduced in
0dd6d007669b946543ca939a44243833c79e08f4 two days ago.

src/xz/util.c

index a962421f513d9a4f87138401d8de3607560e6f6b..784f6d300ce74e3646cba14d2dbc4f8b0e7b99de 100644 (file)
@@ -175,13 +175,14 @@ uint64_to_nicestr(uint64_t value, enum nicestr_unit unit_min,
        static const char suffix[5][4] = { "B", "KiB", "MiB", "GiB", "TiB" };
 
        // Minimum buffer size:
-       // 11   "1,234.5 MiB"
+       // 26   2^64 with thousand separators
+       //  4   " KiB"
        //  2   " ("
        // 26   2^64 with thousand separators
        //  3   " B)"
        //  1   '\0'
-       // 43   Total
-       static char buf[4][44];
+       // 62   Total
+       static char buf[4][64];
        char *pos = buf[slot];
        size_t left = sizeof(buf[slot]);
        my_snprintf(&pos, &left, "%s %s", str, suffix[unit]);
@@ -196,8 +197,6 @@ uint64_to_nicestr(uint64_t value, enum nicestr_unit unit_min,
 extern const char *
 double_to_str(double value)
 {
-       // 64 bytes is surely enough, since it won't fit in some other
-       // fields anyway.
        static char buf[64];
 
        static enum { UNKNOWN, WORKS, BROKEN } thousand = UNKNOWN;