From 0a10468d79774aad9ad155f1f877f77cfb90ffbd Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Wed, 1 Apr 2020 12:50:53 +0200 Subject: [PATCH] initrd: fix setting VLan ID in reader_parse_vlan() g_ascii_strtoull() returns a guint64, which is very wrong to directly pass to the variadic argument list of g_object_set(). We expect a guint there and need to cast. While at it, use _nm_utils_ascii_str_to_int64() to parse and validate the input. (cherry picked from commit d506823d4f21f67d2c388e79982ebac170bce3e3) (cherry picked from commit 24177569c1bd166fe20f0556bf55a976d6e53437) --- src/initrd/nmi-cmdline-reader.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/initrd/nmi-cmdline-reader.c b/src/initrd/nmi-cmdline-reader.c index c305cd4dbe..862d39a645 100644 --- a/src/initrd/nmi-cmdline-reader.c +++ b/src/initrd/nmi-cmdline-reader.c @@ -640,7 +640,7 @@ parse_vlan (GHashTable *connections, char *argument) s_vlan = nm_connection_get_setting_vlan (connection); g_object_set (s_vlan, NM_SETTING_VLAN_PARENT, phy, - NM_SETTING_VLAN_ID, g_ascii_strtoull (vlanid, NULL, 10), + NM_SETTING_VLAN_ID, (guint) _nm_utils_ascii_str_to_int64 (vlanid, 10, 0, G_MAXUINT, G_MAXUINT), NULL); if (argument && *argument)