aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog4
-rw-r--r--elf/dl-close.c5
-rw-r--r--inet/getnetgrent_r.c14
3 files changed, 16 insertions, 7 deletions
diff --git a/ChangeLog b/ChangeLog
index 14700e7..270559e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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;