coverity: #1425870

check snprintf() return value Signed-off-by: 's avatarChristian Brauner <christian.brauner@ubuntu.com>
parent 357d2b3b
...@@ -206,21 +206,26 @@ static void sig_handler(int sig) ...@@ -206,21 +206,26 @@ static void sig_handler(int sig)
static void size_humanize(unsigned long long val, char *buf, size_t bufsz) static void size_humanize(unsigned long long val, char *buf, size_t bufsz)
{ {
int ret;
if (val > 1 << 30) { if (val > 1 << 30) {
snprintf(buf, bufsz, "%u.%2.2u GiB", ret = snprintf(buf, bufsz, "%u.%2.2u GiB",
(unsigned int)(val >> 30), (unsigned int)(val >> 30),
(unsigned int)(val & ((1 << 30) - 1)) / 10737419); (unsigned int)(val & ((1 << 30) - 1)) / 10737419);
} else if (val > 1 << 20) { } else if (val > 1 << 20) {
unsigned int x = val + 5243; /* for rounding */ unsigned int x = val + 5243; /* for rounding */
snprintf(buf, bufsz, "%u.%2.2u MiB", ret = snprintf(buf, bufsz, "%u.%2.2u MiB",
x >> 20, ((x & ((1 << 20) - 1)) * 100) >> 20); x >> 20, ((x & ((1 << 20) - 1)) * 100) >> 20);
} else if (val > 1 << 10) { } else if (val > 1 << 10) {
unsigned int x = val + 5; /* for rounding */ unsigned int x = val + 5; /* for rounding */
snprintf(buf, bufsz, "%u.%2.2u KiB", ret = snprintf(buf, bufsz, "%u.%2.2u KiB",
x >> 10, ((x & ((1 << 10) - 1)) * 100) >> 10); x >> 10, ((x & ((1 << 10) - 1)) * 100) >> 10);
} else { } else {
snprintf(buf, bufsz, "%3u.00 ", (unsigned int)val); ret = snprintf(buf, bufsz, "%3u.00 ", (unsigned int)val);
} }
if (ret < 0 || (size_t)ret >= bufsz)
fprintf(stderr, "Failed to create string\n");
} }
static uint64_t stat_get_int(struct lxc_container *c, const char *item) static uint64_t stat_get_int(struct lxc_container *c, const char *item)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment