BUG/MINOR: tools: fix parsing "us" unit for timers
authorThayne McCombs <thayne@lucidchart.com>
Fri, 2 Apr 2021 20:12:43 +0000 (14:12 -0600)
committerChristopher Faulet <cfaulet@haproxy.com>
Mon, 12 Apr 2021 20:31:53 +0000 (22:31 +0200)
Commit c20ad0d8dbd1bb5707bbfe23632415c3062e046c (BUG/MINOR: tools:  make
parse_time_err() more strict on the timer validity) broke parsing the "us"
unit in timers. It caused `parse_time_err()` to return the string "s",
which indicates an error.

Now if the "u" is followed by an "s" we properly continue processing the
time instead of immediately failing.

This fixes #1209. It must be backported to all stable versions.

(cherry picked from commit a68380524b5b47cd77f5f4a47c1441b3c5b2cf93)
Signed-off-by: Christopher Faulet <cfaulet@haproxy.com>

src/tools.c

index 075f61f..5d67bd7 100644 (file)
@@ -2260,6 +2260,7 @@ const char *parse_time_err(const char *text, unsigned *ret, unsigned unit_flags)
                if (text[1] == 's') {
                        idiv = 1000000;
                        text++;
+                       break;
                }
                return text;
        case 'm': /* millisecond : "ms" or minute: "m" */