From 47865f9ca465d33ca94d57b14121db428f0df68f Mon Sep 17 00:00:00 2001
From: phil <me@filou.se>
Date: Wed, 20 Oct 2021 08:07:47 +0200
Subject: [PATCH] segfault fix

---
 src/utils/mdns-avahi.c | 23 ++++++++++++-----------
 1 file changed, 12 insertions(+), 11 deletions(-)

diff --git a/src/utils/mdns-avahi.c b/src/utils/mdns-avahi.c
index 060453d..6af511a 100644
--- a/src/utils/mdns-avahi.c
+++ b/src/utils/mdns-avahi.c
@@ -324,6 +324,8 @@ static void resolve_callback(
 
     char * txtstr = NULL;
     uint16_t txtlen = 0;
+    enum aes67_net_ipver ipver = aes67_net_ipver_undefined;
+    const uint8_t * ip = NULL;
 
     enum aes67_mdns_result result = aes67_mdns_result_error;
 
@@ -342,21 +344,20 @@ static void resolve_callback(
                 result = aes67_mdns_result_discovered;
             }
             txtstr = avahi_string_list_to_raw(txt, &txtlen);
+
+            if (address){
+                if (address->proto == AVAHI_PROTO_INET){
+                    ipver = aes67_net_ipver_4;
+                    ip = (uint8_t*)&address->data.ipv4.address;
+                } else if (address->proto == AVAHI_PROTO_INET6){
+                    ipver = aes67_net_ipver_6;
+                    ip = address->data.ipv6.address;
+                }
+            }
             break;
         }
     }
 
-
-    enum aes67_net_ipver ipver = aes67_net_ipver_undefined;
-    const uint8_t * ip = NULL;
-    if (address->proto == AVAHI_PROTO_INET){
-        ipver = aes67_net_ipver_4;
-        ip = (uint8_t*)&address->data.ipv4.address;
-    } else if (address->proto == AVAHI_PROTO_INET6){
-        ipver = aes67_net_ipver_6;
-        ip = address->data.ipv6.address;
-    }
-
     uint16_t ttl = 0;
 
     ((aes67_mdns_resolve_callback) res->callback)(res, result, type, name, host_name,
-- 
GitLab