]> git.ipfire.org Git - thirdparty/lxc.git/commitdiff
coverity: #1425870
authorChristian Brauner <christian.brauner@ubuntu.com>
Sat, 9 Dec 2017 18:16:25 +0000 (19:16 +0100)
committerChristian Brauner <christian.brauner@ubuntu.com>
Sun, 17 Dec 2017 15:33:21 +0000 (16:33 +0100)
check snprintf() return value

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
src/lxc/tools/lxc_top.c

index ef9e5e4a8b0913e64ba13600e1a434f2cd08cad3..0f76abce7987b249f841c77ab76734f6414a71f1 100644 (file)
@@ -186,21 +186,26 @@ static void sig_handler(int sig)
 
 static void size_humanize(unsigned long long val, char *buf, size_t bufsz)
 {
+       int ret;
+
        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 & ((1 << 30) - 1)) / 10737419);
        } else if (val > 1 << 20) {
                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);
        } else if (val > 1 << 10) {
                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);
        } 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)