diff options
author | Ulrich Drepper <drepper@redhat.com> | 2004-12-13 21:50:20 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2004-12-13 21:50:20 +0000 |
commit | e1b27ffbf604546725eca78ef498b88fd60c4f42 (patch) | |
tree | f7dfd2321f16eaf4e8f2ab1797927a435259d2f3 | |
parent | 13d91a6eec2114fdfe8fac60323347335a1e0697 (diff) | |
download | glibc-e1b27ffbf604546725eca78ef498b88fd60c4f42.zip glibc-e1b27ffbf604546725eca78ef498b88fd60c4f42.tar.gz glibc-e1b27ffbf604546725eca78ef498b88fd60c4f42.tar.bz2 |
2004-12-13 Ulrich Drepper <drepper@redhat.com>
* nss/getnssent.c (__nss_getent): Double buffer size each round to
avoid problems with delays for some people's huge entries.
* nss/getXXbyYY.c (FUNCTION_NAME): Likewise.
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | nss/getXXbyYY.c | 2 | ||||
-rw-r--r-- | nss/getnssent.c | 4 |
3 files changed, 9 insertions, 3 deletions
@@ -1,3 +1,9 @@ +2004-12-13 Ulrich Drepper <drepper@redhat.com> + + * nss/getnssent.c (__nss_getent): Double buffer size each round to + avoid problems with delays for some people's huge entries. + * nss/getXXbyYY.c (FUNCTION_NAME): Likewise. + 2004-12-13 Jakub Jelinek <jakub@redhat.com> * posix/getconf.c (main): Prepend just $GETCONF_DIR/ instead of diff --git a/nss/getXXbyYY.c b/nss/getXXbyYY.c index 854a3e8..dd0ac84 100644 --- a/nss/getXXbyYY.c +++ b/nss/getXXbyYY.c @@ -123,7 +123,7 @@ FUNCTION_NAME (ADD_PARAMS) ) { char *new_buf; - buffer_size += BUFLEN; + buffer_size *= 2; new_buf = (char *) realloc (buffer, buffer_size); if (new_buf == NULL) { diff --git a/nss/getnssent.c b/nss/getnssent.c index a56d34d..1f7573d 100644 --- a/nss/getnssent.c +++ b/nss/getnssent.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 Free Software Foundation, Inc. +/* Copyright (C) 2000, 2004 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -38,7 +38,7 @@ __nss_getent (getent_r_function func, void **resbuf, char **buffer, && (h_errnop == NULL || *h_errnop == NETDB_INTERNAL)) { char *new_buf; - *buffer_size += buflen; + *buffer_size *= 2; new_buf = realloc (*buffer, *buffer_size); if (new_buf == NULL) { |