diff options
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | elf/dl-close.c | 5 | ||||
-rw-r--r-- | inet/getnetgrent_r.c | 14 |
3 files changed, 16 insertions, 7 deletions
@@ -1,3 +1,7 @@ +2011-06-21 Ulrich Drepper <drepper@gmail.com> + + * inet/getnetgrent_r.c: Use DL_CALL_FCT in several places. + 2011-06-20 David S. Miller <davem@davemloft.net> * sysdeps/sparc/sparc32/dl-plt.h: Protect against multiple diff --git a/elf/dl-close.c b/elf/dl-close.c index 229e288..6f8d9d2 100644 --- a/elf/dl-close.c +++ b/elf/dl-close.c @@ -123,12 +123,15 @@ _dl_close_worker (struct link_map *map) { if (map->l_type == lt_loaded) dl_close_state = rerun; - else if (map->l_type == lt_library) +#if 1 + else if (map->l_type == lt_library && map->l_initfini != map->l_orig_initfini) { struct link_map **oldp = map->l_initfini; map->l_initfini = map->l_orig_initfini; + _dl_printf("aaa\n"); _dl_scope_free (oldp); } +#endif } /* There are still references to this object. Do nothing more. */ diff --git a/inet/getnetgrent_r.c b/inet/getnetgrent_r.c index 0bac7b7..7e13e3b 100644 --- a/inet/getnetgrent_r.c +++ b/inet/getnetgrent_r.c @@ -133,7 +133,7 @@ __internal_setnetgrent_reuse (const char *group, struct __netgrent *datap, assert (datap->data == NULL); /* Ignore status, we force check in `__nss_next2'. */ - status = (*fct.f) (group, datap); + status = DL_CALL_FCT (*fct.f, (group, datap)); service_user *old_nip = datap->nip; no_more = __nss_next2 (&datap->nip, "setnetgrent", NULL, &fct.ptr, @@ -145,7 +145,7 @@ __internal_setnetgrent_reuse (const char *group, struct __netgrent *datap, endfct = __nss_lookup_function (old_nip, "endnetgrent"); if (endfct != NULL) - (void) (*endfct) (datap); + (void) DL_CALL_FCT (*endfct, (datap)); } } @@ -244,7 +244,7 @@ internal_getnetgrent_r (char **hostp, char **userp, char **domainp, == NULL); while (! no_more) { - status = (*fct) (datap, buffer, buflen, &errno); + status = DL_CALL_FCT (*fct, (datap, buffer, buflen, &errno)); if (status == NSS_STATUS_RETURN) { @@ -362,7 +362,8 @@ innetgr (const char *netgroup, const char *host, const char *user, assert (entry.data == NULL); /* Open netgroup. */ - enum nss_status status = (*setfct.f) (current_group, &entry); + enum nss_status status = DL_CALL_FCT (*setfct.f, + (current_group, &entry)); if (status == NSS_STATUS_SUCCESS && (getfct = __nss_lookup_function (entry.nip, "getnetgrent_r")) @@ -370,7 +371,8 @@ innetgr (const char *netgroup, const char *host, const char *user, { char buffer[1024]; - while ((*getfct) (&entry, buffer, sizeof buffer, &errno) + while (DL_CALL_FCT (*getfct, + (&entry, buffer, sizeof buffer, &errno)) == NSS_STATUS_SUCCESS) { if (entry.type == group_val) @@ -425,7 +427,7 @@ innetgr (const char *netgroup, const char *host, const char *user, /* Free all resources of the service. */ endfct = __nss_lookup_function (entry.nip, "endnetgrent"); if (endfct != NULL) - (*endfct) (&entry); + DL_CALL_FCT (*endfct, (&entry)); if (result != 0) break; |