X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fudev%2Fudevd.c;h=9210da6c4798caf48ebaa3804b79617a7b802094;hb=d457ff8319b1e7c522c146f75e272f1226f4720c;hp=cd517931d342f8599bf42d9e098915bbc61857f7;hpb=f1e8664e4a86f9b9b8d8a001d886d69f1ac42e9b;p=elogind.git diff --git a/src/udev/udevd.c b/src/udev/udevd.c index cd517931d..9210da6c4 100644 --- a/src/udev/udevd.c +++ b/src/udev/udevd.c @@ -1048,17 +1048,23 @@ static int parse_argv(int argc, char *argv[]) { arg_daemonize = true; break; case 'c': - safe_atoi(optarg, &arg_children_max); + r = safe_atoi(optarg, &arg_children_max); + if (r < 0) + log_warning("Invalid --children-max ignored: %s", optarg); break; case 'e': - safe_atoi(optarg, &arg_exec_delay); + r = safe_atoi(optarg, &arg_exec_delay); + if (r < 0) + log_warning("Invalid --exec-delay ignored: %s", optarg); break; case 't': r = safe_atou64(optarg, &arg_event_timeout_usec); if (r < 0) - break; - arg_event_timeout_usec *= USEC_PER_SEC; - arg_event_timeout_warn_usec = (arg_event_timeout_usec / 3) ? : 1; + log_warning("Invalig --event-timeout ignored: %s", optarg); + else { + arg_event_timeout_usec *= USEC_PER_SEC; + arg_event_timeout_warn_usec = (arg_event_timeout_usec / 3) ? : 1; + } break; case 'D': arg_debug = true; @@ -1133,13 +1139,26 @@ int main(int argc, char *argv[]) { goto exit; } - label_init("/dev"); + r = label_init("/dev"); + if (r < 0) { + log_error("could not initialize labelling: %s", strerror(-r)); + goto exit; + } /* set umask before creating any file/directory */ - chdir("/"); + r = chdir("/"); + if (r < 0) { + log_error("could not change dir to /: %m"); + goto exit; + } + umask(022); - mkdir("/run/udev", 0755); + r = mkdir("/run/udev", 0755); + if (r < 0) { + log_error("could not create /run/udev: %m"); + goto exit; + } dev_setup(NULL);