diff options
author | Jan Engelhardt <jengelh@inai.de> | 2012-07-15 22:21:00 +0200 |
---|---|---|
committer | Pablo Neira Ayuso <pablo@netfilter.org> | 2012-07-31 13:32:22 +0200 |
commit | a19988f2795770ce470562c1795e1cf53e3aa54b (patch) | |
tree | c60513cc38e76a4ddaef5a3f651045b45b5949c0 | |
parent | d18b451ec82bbaeaf385241ebdf926912a075ade (diff) | |
download | android_external_iptables-a19988f2795770ce470562c1795e1cf53e3aa54b.tar.gz android_external_iptables-a19988f2795770ce470562c1795e1cf53e3aa54b.tar.bz2 android_external_iptables-a19988f2795770ce470562c1795e1cf53e3aa54b.zip |
libxt_LED: guard against negative numbers
Signed-off-by: Jan Engelhardt <jengelh@inai.de>
-rw-r--r-- | extensions/libxt_LED.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/extensions/libxt_LED.c b/extensions/libxt_LED.c index 9d68fa2..e6cf849 100644 --- a/extensions/libxt_LED.c +++ b/extensions/libxt_LED.c @@ -49,6 +49,7 @@ static void LED_help(void) static void LED_parse(struct xt_option_call *cb) { struct xt_led_info *led = cb->data; + unsigned int delay; xtables_option_parse(cb); switch (cb->entry->id) { @@ -59,8 +60,10 @@ static void LED_parse(struct xt_option_call *cb) case O_LED_DELAY: if (strncasecmp(cb->arg, "inf", 3) == 0) led->delay = -1; - else - led->delay = strtoul(cb->arg, NULL, 0); + else if (!xtables_strtoui(cb->arg, NULL, &delay, 0, UINT32_MAX)) + xtables_error(PARAMETER_PROBLEM, + "Delay value must be within range 0..%u", + UINT32_MAX); break; case O_LED_ALWAYS_BLINK: led->always_blink = 1; |