diff options
author | Tom Gundersen <teg@jklm.no> | 2015-07-21 20:17:21 +0200 |
---|---|---|
committer | Tom Gundersen <teg@jklm.no> | 2015-07-21 20:17:21 +0200 |
commit | 899c4195c68943dfc6b0323e912077abfef73e7a (patch) | |
tree | e844bbf8cc859305c2e8633f1a79fcddf35b05e0 /src/udev | |
parent | 0a327854f8613b7a52a80c1f3f8fc3100fb9df58 (diff) | |
parent | 3567afa5b4775cf74bc92617cc716b4f4c28a120 (diff) |
Merge pull request #648 from michich/udev-log-priority
udev.log-priority crash fix and cleanup
Diffstat (limited to 'src/udev')
-rw-r--r-- | src/udev/udevd.c | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/src/udev/udevd.c b/src/udev/udevd.c index 0661f7be00..945845d72c 100644 --- a/src/udev/udevd.c +++ b/src/udev/udevd.c @@ -1358,6 +1358,7 @@ static int listen_fds(int *rctrl, int *rnetlink) { * udev.event-timeout=<number of seconds> seconds to wait before terminating an event */ static int parse_proc_cmdline_item(const char *key, const char *value) { + const char *full_key = key; int r; assert(key); @@ -1377,26 +1378,29 @@ static int parse_proc_cmdline_item(const char *key, const char *value) { int prio; prio = util_log_priority(value); + if (prio < 0) + goto invalid; log_set_max_level(prio); } else if (streq(key, "children-max")) { r = safe_atou(value, &arg_children_max); if (r < 0) - log_warning("invalid udev.children-max ignored: %s", value); + goto invalid; } else if (streq(key, "exec-delay")) { r = safe_atoi(value, &arg_exec_delay); if (r < 0) - log_warning("invalid udev.exec-delay ignored: %s", value); + goto invalid; } else if (streq(key, "event-timeout")) { r = safe_atou64(value, &arg_event_timeout_usec); if (r < 0) - log_warning("invalid udev.event-timeout ignored: %s", value); - else { - arg_event_timeout_usec *= USEC_PER_SEC; - arg_event_timeout_warn_usec = (arg_event_timeout_usec / 3) ? : 1; - } + goto invalid; + arg_event_timeout_usec *= USEC_PER_SEC; + arg_event_timeout_warn_usec = (arg_event_timeout_usec / 3) ? : 1; } return 0; +invalid: + log_warning("invalid %s ignored: %s", full_key, value); + return 0; } static void help(void) { |