connman_inet_ifname() may return a NULL pointer e.g. if the interface
does not exist in the kernel anymore but connman isn't yet aware of
that. Passing a NULL pointer to D-Bus may result in an abort, so check
the return value.
---
 src/ipconfig.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/src/ipconfig.c b/src/ipconfig.c
index b7e4f94..fa4c0d6 100644
--- a/src/ipconfig.c
+++ b/src/ipconfig.c
@@ -2166,9 +2166,11 @@ void __connman_ipconfig_append_ethernet(struct 
connman_ipconfig *ipconfig,
 
        if (ipconfig->index >= 0) {
                char *ifname = connman_inet_ifname(ipconfig->index);
-               connman_dbus_dict_append_basic(iter, "Interface",
-                                       DBUS_TYPE_STRING, &ifname);
-               g_free(ifname);
+               if (ifname) {
+                       connman_dbus_dict_append_basic(iter, "Interface",
+                                               DBUS_TYPE_STRING, &ifname);
+                       g_free(ifname);
+               }
        }
 
        if (ipdevice->address)
-- 
1.9.1

_______________________________________________
connman mailing list
connman@connman.net
https://lists.connman.net/mailman/listinfo/connman

Reply via email to