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) | |
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 9d68fa27..e6cf8497 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; | 
