summarylogtreecommitdiffstats
path: root/fix_segfault_on_DNS_entries.patch
blob: 930af7949cfa61ab7b832a3692e2b98ec3c2c8e6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
From: Patrizio Tufarolo <patriziotufarolo@gmail.com>
Date: Wed, 25 May 2022 08:11:36 +0200
Subject: fix_segfault_on_DNS_entries

Slightly edited by Wolfram Sang <wsa@kernel.org>
---
 src/modules/nm09.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/modules/nm09.c b/src/modules/nm09.c
index 2b3098b..02d0e20 100644
--- a/src/modules/nm09.c
+++ b/src/modules/nm09.c
@@ -529,7 +529,7 @@ static mmguiconn_t mmgui_module_connection_get_params(mmguicore_t mmguicore, con
 	GVariant *connconsec, *connipv4sec, *conntechsec;
 	GVariant *conndnsvar;
 	gchar *conntypestr, *connparamstr;
-	gint i, addrint;
+	gint i, addrint, n_dns_entries;
 	GVariant *addrvar;
 	gchar *techstr;
 	mmguiconn_t connection;
@@ -630,7 +630,8 @@ static mmguiconn_t mmgui_module_connection_get_params(mmguicore_t mmguicore, con
 					if (connipv4sec != NULL) {
 						/*DNS*/
 						conndnsvar = g_variant_lookup_value(connipv4sec, "dns", G_VARIANT_TYPE_ARRAY);
-						for (i = 0; i < g_variant_n_children(conndnsvar); i++) {
+						n_dns_entries = conndnsvar ? g_variant_n_children(conndnsvar) : 0;
+						for (i = 0; i < n_dns_entries; i++) {
 							addrvar = g_variant_get_child_value(conndnsvar, i);
 							addrint = ntohl(g_variant_get_uint32(addrvar));
 							if (connection->dns1 == NULL) {