X-Git-Url: http://ftp.safe.ca/?a=blobdiff_plain;f=lib%2Fparser.c;h=fb34977246bb052923d5fad6341c2ba80315fdfe;hb=9d3f1881abeae0494a27716b08fcf2d3264bb0fa;hp=b00d02059a5f8acc3a58a6290251aa487f2cca2e;hpb=a447c0932445f92ce6f4c1bd020f62c5097a7842;p=safe%2Fjmp%2Flinux-2.6 diff --git a/lib/parser.c b/lib/parser.c index b00d020..fb34977 100644 --- a/lib/parser.c +++ b/lib/parser.c @@ -56,13 +56,16 @@ static int match_one(char *s, const char *p, substring_t args[]) args[argc].from = s; switch (*p++) { - case 's': - if (strlen(s) == 0) + case 's': { + size_t str_len = strlen(s); + + if (str_len == 0) return 0; - else if (len == -1 || len > strlen(s)) - len = strlen(s); + if (len == -1 || len > str_len) + len = str_len; args[argc].to = s + len; break; + } case 'd': simple_strtol(s, &args[argc].to, 0); goto num;