diff --git a/lib/nss.c b/lib/nss.c index 0f414e18..dcb8160b 100644 --- a/lib/nss.c +++ b/lib/nss.c @@ -133,8 +133,8 @@ void nss_init(const char *nsswitch_path) { } subid_nss->free = dlsym(h, "shadow_subid_free"); if (!subid_nss->free) { - // Fallback to free(3) for backward compatibility. - subid_nss->free = free; + fprintf(shadow_logfd, "%s did not provide @subid_free@\n", libname); + goto close_lib; } subid_nss->handle = h; goto done; diff --git a/tests/libsubid/04_nss/libsubid_zzz.c b/tests/libsubid/04_nss/libsubid_zzz.c index 1a9de237..06cb38b4 100644 --- a/tests/libsubid/04_nss/libsubid_zzz.c +++ b/tests/libsubid/04_nss/libsubid_zzz.c @@ -138,3 +138,7 @@ enum subid_status shadow_subid_list_owner_ranges(const char *owner, enum subid_t return SUBID_STATUS_SUCCESS; } + +void shadow_subid_free(void *ptr) { + free(ptr); +}