Signed-off-by: Nikola Pajkovsky <npajkovs(a)redhat.com>
---
src/lib/event_config.c | 18 +++++++++++++++---
1 files changed, 15 insertions(+), 3 deletions(-)
diff --git a/src/lib/event_config.c b/src/lib/event_config.c
index 7a8b5e3..b855394 100644
--- a/src/lib/event_config.c
+++ b/src/lib/event_config.c
@@ -304,10 +304,22 @@ static char *validate_event_option(event_option_t *opt)
break;
case OPTION_TYPE_NUMBER:
{
- long r = strtol(opt->value, (char **)&s, 10);
- (void) r;
- if (*s || errno)
+ char *endptr;
+ errno = 0;
+ long r = strtol(opt->value, &endptr, 10);
+ if ((errno == ERANGE && (r == LONG_MAX || r == LONG_MIN))
+ || (errno != 0 && r == 0))
+ {
+ perror_msg("strtol");
+ return xasprintf(_("Invalid number '%s'"), opt->value);
+ }
+
+ if (endptr == str)
+ return xasprintf(_("No digits were found '%s'"),
opt->value);
+
+ if (*endptr)
return xasprintf(_("Invalid number '%s'"), opt->value);
+
break;
}
case OPTION_TYPE_BOOL:
--
1.7.1