- check whether 'mask' is NULL before dereferencing it
- on OpenBSD netmasks returned by getifaddrs(3) may have a zero af_family

Index: libgssdp/gssdp-net-posix.c
--- libgssdp/gssdp-net-posix.c.orig
+++ libgssdp/gssdp-net-posix.c
@@ -324,10 +324,11 @@ get_netmask (struct sockaddr *address,
         GError *error = NULL;
 
         g_return_val_if_fail (address != NULL, NULL);
-        g_return_val_if_fail (address->sa_family == mask->sa_family, NULL);
+        g_return_val_if_fail (mask != NULL, NULL);
+        g_return_val_if_fail (address->sa_family == mask->sa_family ||
+                              mask->sa_family == 0, NULL);
         g_return_val_if_fail (address->sa_family == G_SOCKET_FAMILY_IPV4 ||
                               address->sa_family == G_SOCKET_FAMILY_IPV6, NULL);
-        g_return_val_if_fail (mask != NULL, NULL);
 
         if (address->sa_family == G_SOCKET_FAMILY_IPV4) {
                 struct sockaddr_in *s4  = (struct sockaddr_in *) address;
