diff options
author | Kent Overstreet <koverstreet@google.com> | 2013-04-05 17:12:28 -0400 |
---|---|---|
committer | Kent Overstreet <koverstreet@google.com> | 2013-04-08 16:33:49 -0400 |
commit | 91bbcfc36142354e316e013449051619c1c7b456 (patch) | |
tree | 1f15ac8564a047d4f2de3f96195aba8898ac5338 | |
parent | 8ef747909cef0dd1ae018beef4bb2e75f26e3f98 (diff) |
bcache: Fix a format string overflow
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Kent Overstreet <koverstreet@google.com>
-rw-r--r-- | drivers/md/bcache/util.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/md/bcache/util.c b/drivers/md/bcache/util.c index a9619d880354..da3a99e85b1e 100644 --- a/drivers/md/bcache/util.c +++ b/drivers/md/bcache/util.c | |||
@@ -76,7 +76,7 @@ STRTO_H(strtoull, unsigned long long) | |||
76 | ssize_t bch_hprint(char *buf, int64_t v) | 76 | ssize_t bch_hprint(char *buf, int64_t v) |
77 | { | 77 | { |
78 | static const char units[] = "?kMGTPEZY"; | 78 | static const char units[] = "?kMGTPEZY"; |
79 | char dec[3] = ""; | 79 | char dec[4] = ""; |
80 | int u, t = 0; | 80 | int u, t = 0; |
81 | 81 | ||
82 | for (u = 0; v >= 1024 || v <= -1024; u++) { | 82 | for (u = 0; v >= 1024 || v <= -1024; u++) { |
@@ -88,7 +88,7 @@ ssize_t bch_hprint(char *buf, int64_t v) | |||
88 | return sprintf(buf, "%llu", v); | 88 | return sprintf(buf, "%llu", v); |
89 | 89 | ||
90 | if (v < 100 && v > -100) | 90 | if (v < 100 && v > -100) |
91 | sprintf(dec, ".%i", t / 100); | 91 | snprintf(dec, sizeof(dec), ".%i", t / 100); |
92 | 92 | ||
93 | return sprintf(buf, "%lli%s%c", v, dec, units[u]); | 93 | return sprintf(buf, "%lli%s%c", v, dec, units[u]); |
94 | } | 94 | } |