diff options
Diffstat (limited to 'avahi-client/resolver.c')
-rw-r--r-- | avahi-client/resolver.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/avahi-client/resolver.c b/avahi-client/resolver.c index 66208cf..f23f9d7 100644 --- a/avahi-client/resolver.c +++ b/avahi-client/resolver.c @@ -93,8 +93,7 @@ static void pending_call_callback(DBusPendingCall *pending, void *userdata) { for (;;) { DBusMessageIter sub2; - int at, n; - uint8_t *k; + int at; if ((at = dbus_message_iter_get_arg_type(&sub)) == DBUS_TYPE_INVALID) break; @@ -107,8 +106,14 @@ static void pending_call_callback(DBusPendingCall *pending, void *userdata) { } dbus_message_iter_recurse(&sub, &sub2); - dbus_message_iter_get_fixed_array(&sub2, &k, &n); - strlst = avahi_string_list_add_arbitrary(strlst, k, n); + + if (dbus_message_iter_get_array_len(&sub2) > 0) { + uint8_t *k; + int n; + + dbus_message_iter_get_fixed_array(&sub2, &k, &n); + strlst = avahi_string_list_add_arbitrary(strlst, k, n); + } dbus_message_iter_next(&sub); } |