diff options
author | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2020-03-13 15:46:30 +0100 |
---|---|---|
committer | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2020-03-13 15:54:27 +0100 |
commit | cd57038a30aa9447bde3af7111ac8dc517b38bbf (patch) | |
tree | b1f80d13d4b8a968f47d20582a3fc64ad8952162 /src | |
parent | 8d0726fcd7b72f2a6f75dd731cbf7c8d4df107ef (diff) | |
download | systemd-cd57038a30aa9447bde3af7111ac8dc517b38bbf.tar.gz |
core: consistently emit oom warning when parsing args
In practice we are very unlikely to fail at this point, but for
consistency, we should always warn when allocation fails, and
we have free_and_strdup_warn() for this.
Diffstat (limited to 'src')
-rw-r--r-- | src/core/main.c | 17 |
1 files changed, 6 insertions, 11 deletions
diff --git a/src/core/main.c b/src/core/main.c index 1a1e09035b..f7cda72fdd 100644 --- a/src/core/main.c +++ b/src/core/main.c @@ -318,7 +318,6 @@ static int set_machine_id(const char *m) { } static int parse_proc_cmdline_item(const char *key, const char *value, void *data) { - int r; assert(key); @@ -330,10 +329,8 @@ static int parse_proc_cmdline_item(const char *key, const char *value, void *dat if (!unit_name_is_valid(value, UNIT_NAME_PLAIN|UNIT_NAME_INSTANCE)) log_warning("Unit name specified on %s= is not valid, ignoring: %s", key, value); - else if (in_initrd() == !!startswith(key, "rd.")) { - if (free_and_strdup(&arg_default_unit, value) < 0) - return log_oom(); - } + else if (in_initrd() == !!startswith(key, "rd.")) + return free_and_strdup_warn(&arg_default_unit, value); } else if (proc_cmdline_key_streq(key, "systemd.dump_core")) { @@ -510,7 +507,7 @@ static int parse_proc_cmdline_item(const char *key, const char *value, void *dat /* SysV compatibility */ target = runlevel_to_target(key); if (target) - return free_and_strdup(&arg_default_unit, target); + return free_and_strdup_warn(&arg_default_unit, target); } return 0; @@ -987,11 +984,9 @@ static int parse_argv(int argc, char *argv[]) { case 'b': case 's': case 'z': - /* Just to eat away the sysvinit kernel - * cmdline args without getopt() error - * messages that we'll parse in - * parse_proc_cmdline_word() or ignore. */ - + /* Just to eat away the sysvinit kernel cmdline args that we'll parse in + * parse_proc_cmdline_item() or ignore, without any getopt() error messages. + */ case '?': if (getpid_cached() != 1) return -EINVAL; |