about summary refs log tree commit diff
path: root/src/nm-initrd-generator
diff options
context:
space:
mode:
authorSebastien Bacher <seb128@ubuntu.com>2021-09-27 13:36:59 +0200
committerSebastien Bacher <seb128@ubuntu.com>2021-09-27 13:38:47 +0200
commit77097921e09de99e0b66b43a541ec35004e64630 (patch)
treec36633d782404ea31955254a2133cf9cf036d81e /src/nm-initrd-generator
parent0e7561c087918ef6b0e8a64155109d3b005e700c (diff)
parent2bfcbfb13b1672c072e4f902260d2122b3e3c122 (diff)
Update upstream source from tag 'upstream/1.32.12'
Update to upstream version '1.32.12'
with Debian dir 8a9c3ca7f117acef29e7880aa507a1c3ab742155
Diffstat (limited to 'src/nm-initrd-generator')
-rw-r--r--src/nm-initrd-generator/nmi-cmdline-reader.c8
-rw-r--r--src/nm-initrd-generator/tests/test-cmdline-reader.c35
2 files changed, 39 insertions, 4 deletions
diff --git a/src/nm-initrd-generator/nmi-cmdline-reader.c b/src/nm-initrd-generator/nmi-cmdline-reader.c
index 5c42f83c..a8501336 100644
--- a/src/nm-initrd-generator/nmi-cmdline-reader.c
+++ b/src/nm-initrd-generator/nmi-cmdline-reader.c
@@ -1221,7 +1221,9 @@ nmi_cmdline_reader_parse(const char *       sysfs_dir,
 
         tag = get_word(&argument, '=');
 
-        if (nm_streq(tag, "net.ifnames"))
+        if (!tag) {
+            /* pass */
+        } else if (nm_streq(tag, "net.ifnames"))
             net_ifnames = !nm_streq(argument, "0");
         else if (nm_streq(tag, "rd.peerdns"))
             reader->ignore_auto_dns = !_nm_utils_ascii_str_to_bool(argument, TRUE);
@@ -1255,7 +1257,9 @@ nmi_cmdline_reader_parse(const char *       sysfs_dir,
         argument       = argument_clone;
 
         tag = get_word(&argument, '=');
-        if (nm_streq(tag, "ip"))
+        if (!tag) {
+            /* pass */
+        } else if (nm_streq(tag, "ip"))
             reader_parse_ip(reader, sysfs_dir, argument);
         else if (nm_streq(tag, "rd.route")) {
             if (!routes)
diff --git a/src/nm-initrd-generator/tests/test-cmdline-reader.c b/src/nm-initrd-generator/tests/test-cmdline-reader.c
index b0dcf06d..e2a37c58 100644
--- a/src/nm-initrd-generator/tests/test-cmdline-reader.c
+++ b/src/nm-initrd-generator/tests/test-cmdline-reader.c
@@ -74,6 +74,16 @@
         NM_CONNECTION(g_object_ref(_1_connection));                              \
     })
 
+#define _parse_no_con(ARGV)                                        \
+    G_STMT_START                                                   \
+    {                                                              \
+        gs_unref_hashtable GHashTable *_0_connections = NULL;      \
+                                                                   \
+        _0_connections = _parse_cons(ARGV);                        \
+        g_assert_cmpint(g_hash_table_size(_0_connections), ==, 0); \
+    }                                                              \
+    G_STMT_END
+
 /*****************************************************************************/
 
 static void
@@ -290,7 +300,7 @@ test_dhcp_timeout(void)
 static void
 test_if_auto_with_mtu(void)
 {
-    const char *const *ARGV                  = NM_MAKE_STRV("ip=eth0:auto:1666");
+    const char *const *ARGV                  = NM_MAKE_STRV("ip=eth0:auto:1666", "=");
     gs_unref_object NMConnection *connection = NULL;
     NMSettingConnection *         s_con;
     NMSettingWired *              s_wired;
@@ -461,7 +471,7 @@ test_if_ip4_manual(void)
 static void
 test_if_ip4_manual_no_dev(void)
 {
-    const char *const *  ARGV = NM_MAKE_STRV("ip=192.0.2.2::192.0.2.1:24:::");
+    const char *const *  ARGV = NM_MAKE_STRV("ip=192.0.2.2::192.0.2.1:24:::", "=foo");
     NMConnection *       connection;
     NMSettingConnection *s_con;
     NMSettingIPConfig *  s_ip4;
@@ -2461,6 +2471,26 @@ test_rd_ethtool(void)
     g_hash_table_unref(connections);
 }
 
+/*****************************************************************************/
+
+static void
+test_plain_equal_char(void)
+{
+    _parse_no_con(NM_MAKE_STRV("="));
+    _parse_no_con(NM_MAKE_STRV("=foo"));
+    _parse_no_con(NM_MAKE_STRV("BOOT_IMAGE=(hd0,msdos2)/boot/vmlinuz-5.13.10-100.fc33.x86_64",
+                               "root=UUID=ff252b4a-8294-4961-abcb-74c8fc868db7",
+                               "ro",
+                               "rhgb",
+                               "quiet",
+                               "pci",
+                               "=",
+                               "nomsi,",
+                               "noaer"));
+}
+
+/*****************************************************************************/
+
 NMTST_DEFINE();
 
 int
@@ -2516,6 +2546,7 @@ main(int argc, char **argv)
     g_test_add_func("/initrd/cmdline/infiniband/pkey", test_infiniband_pkey);
     g_test_add_func("/initrd/cmdline/carrier_timeout", test_carrier_timeout);
     g_test_add_func("/initrd/cmdline/rd_ethtool", test_rd_ethtool);
+    g_test_add_func("/initrd/cmdline/plain_equal_char", test_plain_equal_char);
 
     return g_test_run();
 }