diff options
| -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);          } | 
