From a90a7b2d5fde8f975f91cd148aeadab2d3da1f02 Mon Sep 17 00:00:00 2001 From: Simon McVittie Date: Thu, 10 Jun 2021 14:14:09 +0100 Subject: [PATCH] libnm: Don't crash if service tells us a new key management mode The NetworkManager service sometimes adds new key management modes. If it does, an older client library (perhaps in a container, or loaded into a pre-existing process before an upgrade) shouldn't crash when talking to a newer NetworkManager service over D-Bus. https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/issues/744 Signed-off-by: Simon McVittie https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/887 Fixes: 4c4f59674a23 ('2007-10-23 Dan Williams ') (cherry picked from commit 18c76388f05f54f47100470c47593568ecfd1987) --- src/libnm-core-impl/nm-setting-wireless-security.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/libnm-core-impl/nm-setting-wireless-security.c b/src/libnm-core-impl/nm-setting-wireless-security.c index f085f2c33a..74881b5888 100644 --- a/src/libnm-core-impl/nm-setting-wireless-security.c +++ b/src/libnm-core-impl/nm-setting-wireless-security.c @@ -866,8 +866,9 @@ need_secrets(NMSetting *setting) goto no_secrets; } - g_assert_not_reached(); - return secrets; + /* If we get here, we're an older libnm talking to a newer NetworkManager + * service (perhaps from a container or during an upgrade). Assume that + * unknown/future key management modes don't need any extra secrets. */ no_secrets: if (secrets)