]> git.saurik.com Git - apple/xnu.git/blobdiff - bsd/net/kpi_interface.c
xnu-792.25.20.tar.gz
[apple/xnu.git] / bsd / net / kpi_interface.c
index 0ce0359ba8401361cfc3e0c275101bc27623340e..74143ae02c104cde12a701031b4547a20932e756 100644 (file)
@@ -1024,7 +1024,10 @@ errno_t ifnet_get_multicast_list(ifnet_t interface, ifmultiaddr_t **addresses)
        }
        
        MALLOC(*addresses, ifmultiaddr_t*, sizeof(ifmultiaddr_t) * (cmax + 1), M_TEMP, M_NOWAIT);
-       if (*addresses == NULL) return ENOMEM;
+       if (*addresses == NULL) {
+               if (lock) ifnet_lock_done(interface);
+               return ENOMEM;
+       }
        
        LIST_FOREACH(addr, &interface->if_multiaddrs, ifma_link)
        {