]> git.ipfire.org Git - thirdparty/iproute2.git/commitdiff
tc: u32: check return value from snprintf
authorStephen Hemminger <stephen@networkplumber.org>
Sun, 11 Feb 2024 00:47:25 +0000 (16:47 -0800)
committerStephen Hemminger <stephen@networkplumber.org>
Sun, 11 Feb 2024 00:47:25 +0000 (16:47 -0800)
Add assertion to check for case of snprintf failing (bad format?)
or buffer getting full.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
tc/f_u32.c

index 913ec1de435d200091df9ea2e10fb11d9cd98556..8a24131039066ba1a092f28251cabbbfe053e6b4 100644 (file)
@@ -7,6 +7,7 @@
  *
  */
 
+#include <assert.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <unistd.h>
@@ -87,6 +88,7 @@ static char *sprint_u32_handle(__u32 handle, char *buf)
        if (htid) {
                int l = snprintf(b, bsize, "%x:", htid>>20);
 
+               assert(l > 0 && l < bsize);
                bsize -= l;
                b += l;
        }
@@ -94,12 +96,14 @@ static char *sprint_u32_handle(__u32 handle, char *buf)
                if (hash) {
                        int l = snprintf(b, bsize, "%x", hash);
 
+                       assert(l > 0 && l < bsize);
                        bsize -= l;
                        b += l;
                }
                if (nodeid) {
                        int l = snprintf(b, bsize, ":%x", nodeid);
 
+                       assert(l > 0 && l < bsize);
                        bsize -= l;
                        b += l;
                }