summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/nm-initrd-generator/nmi-cmdline-reader.c30
1 files changed, 16 insertions, 14 deletions
diff --git a/src/nm-initrd-generator/nmi-cmdline-reader.c b/src/nm-initrd-generator/nmi-cmdline-reader.c
index 2f50426d8d..d6b84c2e57 100644
--- a/src/nm-initrd-generator/nmi-cmdline-reader.c
+++ b/src/nm-initrd-generator/nmi-cmdline-reader.c
@@ -969,23 +969,25 @@ reader_parse_rd_znet(Reader *reader, char *argument, gboolean net_ifnames)
NULL);
while ((tmp = get_word(&argument, ',')) != NULL) {
- char *val;
+ const char *key;
+ char * val;
val = strchr(tmp, '=');
- if (val) {
- gs_free char *key = NULL;
-
- key = g_strndup(tmp, val - tmp);
- val[0] = '\0';
- val++;
- if (!_nm_setting_wired_is_valid_s390_option(key)
- || !_nm_setting_wired_is_valid_s390_option_value(key, val)) {
- /* Invalid setting. Silently ignore, but also ensure we
- * didn't already set it. */
- nm_setting_wired_remove_s390_option(s_wired, key);
- } else
- nm_setting_wired_add_s390_option(s_wired, key, val);
+ if (!val) {
+ /* an invalid (or empty) entry. Ignore. */
+ continue;
}
+
+ key = tmp;
+ val[0] = '\0';
+ val++;
+ if (!_nm_setting_wired_is_valid_s390_option(key)
+ || !_nm_setting_wired_is_valid_s390_option_value(key, val)) {
+ /* Invalid setting. Silently ignore, but also ensure we
+ * didn't already set it. */
+ nm_setting_wired_remove_s390_option(s_wired, key);
+ } else
+ nm_setting_wired_add_s390_option(s_wired, key, val);
}
}