Use strtok_r() instead of strtok().
authorBen Pfaff <blp@nicira.com>
Fri, 9 Jan 2009 00:49:31 +0000 (16:49 -0800)
committerBen Pfaff <blp@nicira.com>
Tue, 13 Jan 2009 01:00:28 +0000 (17:00 -0800)
Not a bug but a style issue, since this code doesn't call and isn't called
by other code that uses strtok().

Found by Chris Eagle via Fortify.

utilities/dpctl.c

index 99065141979bea8cceb7ff5a9251018577297e68..c6de5a1e4a225e3c404c67a2c27e7bc9d26a1b35 100644 (file)
@@ -786,7 +786,7 @@ str_to_flow(char *string, struct ofp_match *match,
             uint8_t *table_idx, uint16_t *out_port, uint16_t *priority, 
             uint16_t *idle_timeout, uint16_t *hard_timeout)
 {
-
+    char *save_ptr = NULL;
     char *name;
     uint32_t wildcards;
 
@@ -823,8 +823,8 @@ str_to_flow(char *string, struct ofp_match *match,
     }
     memset(match, 0, sizeof *match);
     wildcards = OFPFW_ALL;
-    for (name = strtok(string, "=, \t\r\n"); name;
-         name = strtok(NULL, "=, \t\r\n")) {
+    for (name = strtok_r(string, "=, \t\r\n", &save_ptr); name;
+         name = strtok_r(NULL, "=, \t\r\n", &save_ptr)) {
         const struct protocol *p;
 
         if (parse_protocol(name, &p)) {
@@ -838,7 +838,7 @@ str_to_flow(char *string, struct ofp_match *match,
             const struct field *f;
             char *value;
 
-            value = strtok(NULL, ", \t\r\n");
+            value = strtok_r(NULL, ", \t\r\n", &save_ptr);
             if (!value) {
                 ofp_fatal(0, "field %s missing value", name);
             }