mirror of git://sourceware.org/git/glibc.git
* nis/nis_table.c (nis_list): Optimize freeing and reallocation of
result record.
This commit is contained in:
parent
9069c5e963
commit
56a5719e18
|
@ -1,5 +1,8 @@
|
||||||
2005-12-03 Ulrich Drepper <drepper@redhat.com>
|
2005-12-03 Ulrich Drepper <drepper@redhat.com>
|
||||||
|
|
||||||
|
* nis/nis_table.c (nis_list): Optimize freeing and reallocation of
|
||||||
|
result record.
|
||||||
|
|
||||||
* nis/nss_nisplus/nisplus-network.c (_nss_nisplus_getnetbyaddr_r):
|
* nis/nss_nisplus/nisplus-network.c (_nss_nisplus_getnetbyaddr_r):
|
||||||
Better sized buffers. Correct error case handling.
|
Better sized buffers. Correct error case handling.
|
||||||
* nis/nis_error.c (nis_sperror_r): Let snprintf determine whether
|
* nis/nis_error.c (nis_sperror_r): Let snprintf determine whether
|
||||||
|
|
|
@ -296,6 +296,15 @@ nis_list (const_nis_name name, unsigned int flags,
|
||||||
ibreq->ibr_srch.ibr_srch_val =
|
ibreq->ibr_srch.ibr_srch_val =
|
||||||
NIS_RES_OBJECT (res)->LI_data.li_attrs.li_attrs_val;
|
NIS_RES_OBJECT (res)->LI_data.li_attrs.li_attrs_val;
|
||||||
}
|
}
|
||||||
|
/* The following is a non-obvious optimization. A
|
||||||
|
nis_freeresult call would call xdr_free as the
|
||||||
|
following code. But it also would unnecessarily
|
||||||
|
free the result structure. We avoid this here
|
||||||
|
along with the necessary tests. */
|
||||||
|
#if 1
|
||||||
|
xdr_free ((xdrproc_t) _xdr_nis_result, (char *)res);
|
||||||
|
memset (res, '\0', sizeof (*res));
|
||||||
|
#else
|
||||||
nis_freeresult (res);
|
nis_freeresult (res);
|
||||||
res = calloc (1, sizeof (nis_result));
|
res = calloc (1, sizeof (nis_result));
|
||||||
if (res == NULL)
|
if (res == NULL)
|
||||||
|
@ -306,6 +315,7 @@ nis_list (const_nis_name name, unsigned int flags,
|
||||||
nis_free_directory (dir);
|
nis_free_directory (dir);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
first_try = 1; /* Try at first the old binding */
|
first_try = 1; /* Try at first the old binding */
|
||||||
goto again;
|
goto again;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue