]> git.ipfire.org Git - thirdparty/libnl.git/commitdiff
qdisc: avoid calling strstr() with a NULL haystack
authorNicolas PLANEL <nicolas.planel@enovance.com>
Tue, 26 Aug 2014 15:21:12 +0000 (11:21 -0400)
committerThomas Haller <thaller@redhat.com>
Wed, 27 Aug 2014 10:56:34 +0000 (12:56 +0200)
Signed-off-by: Thomas Haller <thaller@redhat.com>
lib/cli/qdisc/hfsc.c

index 1e6878a1f3be344cdfb2db46ff836364140e7db2..6a0c960650b2d7e6eca91838f80db2cebd4897d8 100644 (file)
@@ -81,12 +81,13 @@ hfsc_get_sc(char *optarg, struct tc_service_curve *sc)
 {
        unsigned int m1 = 0, d = 0, m2 = 0;
        char *tmp = strdup(optarg);
-       char *p = tmp, *endptr;
+       char *p, *endptr;
+       char *pp = tmp;
 
        if (!tmp)
                return -ENOMEM;
 
-       p = strstr(p, "m1:");
+       p = strstr(pp, "m1:");
        if (p) {
                char *q;
                p += 3;
@@ -99,10 +100,10 @@ hfsc_get_sc(char *optarg, struct tc_service_curve *sc)
                m1 = strtoul(p, &endptr, 10);
                if (endptr == p)
                        goto err;
-               p = q + 1;
-        }
+               pp = q + 1;
+       }
 
-       p = strstr(p, "d:");
+       p = strstr(pp, "d:");
        if (p) {
                char *q;
                p += 2;
@@ -115,10 +116,10 @@ hfsc_get_sc(char *optarg, struct tc_service_curve *sc)
                d = strtoul(p, &endptr, 10);
                if (endptr == p)
                        goto err;
-               p = q + 1;
-        }
+               pp = q + 1;
+       }
 
-       p = strstr(p, "m2:");
+       p = strstr(pp, "m2:");
        if (p) {
                p += 3;
                if (*p == 0)
@@ -126,7 +127,7 @@ hfsc_get_sc(char *optarg, struct tc_service_curve *sc)
                m2 = strtoul(p, &endptr, 10);
                if (endptr == p)
                        goto err;
-        } else
+       } else
                goto err;
 
        free(tmp);