From 00723dd5e85ce5eb27e189acad3fe76b09ff2890 Mon Sep 17 00:00:00 2001 From: Vojtech Bubela Date: Wed, 29 Sep 2021 12:38:40 +0200 Subject: [PATCH] libnm: fix crash in _nm_ip_route_validate_all for invalid route backtrace from coredump, NetworkManager-1.30.6-1.fc34 #0 verify (setting=0x55d081fe8690, connection=, error=0x7ffe0fa06870) at libnm-core/nm-setting-ip-config.c:5249 #1 0x000055d081ab98d4 in verify (setting=0x55d081fe8690, connection=0x55d0820a2b80, error=0x7ffe0fa06870) at libnm-core/nm-setting-ip4-config.c:119 #2 0x000055d081aa3d54 in _nm_connection_verify (connection=0x55d0820a2b80, error=0x7ffe0fa068c0) at libnm-core/nm-connection.c:1441 #3 0x000055d081aa78ec in nm_connection_normalize (connection=0x55d0820a2b80, parameters=0x0, modified=0x0, error=0x7ffe0fa06de8) at libnm-core/nm-connection.c:1688 #4 0x000055d081aa81f4 in _nm_connection_replace_settings (connection=0x55d0820a2b80, new_settings=, parse_flags=_NM_SETTING_PARSE_FLAGS_LAST, error=0x7ffe0fa06de8) at libnm-core/nm-connection.c:432 #5 0x000055d081aa83a6 in _nm_simple_connection_new_from_dbus (dict=0x55d082089950, error=0x7ffe0fa06de8, parse_flags=_NM_SETTING_PARSE_FLAGS_LAST) at libnm-core/nm-simple-connection.c:77 #6 0x000055d081bbf942 in settings_connection_update (self=0x55d081fdd9f0, is_update2=1, context=0x7fc06c021dd0, new_settings=0x55d082089950, flags=NM_SETTINGS_UPDATE2_FLAG_TO_DISK) at src/core/settings/nm-settings-connection.c:1637 #7 0x000055d081bbfb09 in impl_settings_connection_update2 (obj=0x55d081fdd9f0, interface_info=, method_info=, connection=, sender=, invocation=0x7fc06c021dd0, parameters=0x55d0820f5e60) at src/core/settings/nm-settings-connection.c:1796 #8 0x00007fc08a9db482 in call_in_idle_cb.lto_priv () at /lib64/libgio-2.0.so.0 Conflict:NA Reference:https://gitlab.freedesktop.org/NetworkManager/NetworkManager/commit/00723dd5e85ce5eb27e189acad3fe76b09ff2890 Fixes: bb6c2d73713f ('libnm: ensure stable behavior in _nm_ip_route_attribute_validate_all()') (cherry picked from commit 0ed099374d92d1c4f7472df5fe503f3cd3e67905) --- src/libnm-core-impl/nm-setting-ip-config.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libnm-core-impl/nm-setting-ip-config.c b/src/libnm-core-impl/nm-setting-ip-config.c index f37e9d351e..311babefa1 100644 --- a/src/libnm-core-impl/nm-setting-ip-config.c +++ b/src/libnm-core-impl/nm-setting-ip-config.c @@ -1440,7 +1440,7 @@ _nm_ip_route_attribute_validate_all(const NMIPRoute *route, GError **error) const char *key = attrs[i].name; GVariant * val2 = attrs[i].value_ptr; - if (!nm_ip_route_attribute_validate(key, val2, route->family, NULL, NULL)) + if (!nm_ip_route_attribute_validate(key, val2, route->family, NULL, error)) return FALSE; } -- 2.23.0