* nscd/nscd_gethst_r.c (nscd_gethst_r): Set *h_errnop to
authorUlrich Drepper <drepper@redhat.com>
Mon, 21 Feb 2005 23:43:21 +0000 (23:43 +0000)
committerUlrich Drepper <drepper@redhat.com>
Mon, 21 Feb 2005 23:43:21 +0000 (23:43 +0000)
NETDB_INTERNAL if buffer is too small.

* nscd/hstcache.c (INCR): Remove.
(addhstbyX): Double buflen in each iteration rather than add INCR.
* nscd/grpcache.c: Likewise.
* nscd/pwdcache.c: Likewise.

ChangeLog
nscd/grpcache.c
nscd/hstcache.c
nscd/nscd_gethst_r.c
nscd/pwdcache.c

index c828841..2425840 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2005-02-21  Jakub Jelinek  <jakub@redhat.com>
+
+       * nscd/nscd_gethst_r.c (nscd_gethst_r): Set *h_errnop to
+       NETDB_INTERNAL if buffer is too small.
+
+       * nscd/hstcache.c (INCR): Remove.
+       (addhstbyX): Double buflen in each iteration rather than add INCR.
+       * nscd/grpcache.c: Likewise.
+       * nscd/pwdcache.c: Likewise.
+
 2005-02-21  Ulrich Drepper  <drepper@redhat.com>
 
        * sysdeps/unix/sysv/linux/libc_fatal.c: Print backtrace and memory
index c565f5a..ed84d92 100644 (file)
@@ -1,5 +1,5 @@
 /* Cache handling for group lookup.
-   Copyright (C) 1998-2002, 2003, 2004 Free Software Foundation, Inc.
+   Copyright (C) 1998-2002, 2003, 2004, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
 
@@ -429,11 +429,10 @@ addgrbyX (struct database_dyn *db, int fd, request_header *req,
     {
       char *old_buffer = buffer;
       errno = 0;
-#define INCR 1024
 
       if (__builtin_expect (buflen > 32768, 0))
        {
-         buflen += INCR;
+         buflen *= 2;
          buffer = (char *) realloc (use_malloc ? buffer : NULL, buflen);
          if (buffer == NULL)
            {
@@ -454,7 +453,7 @@ addgrbyX (struct database_dyn *db, int fd, request_header *req,
       else
        /* Allocate a new buffer on the stack.  If possible combine it
           with the previously allocated buffer.  */
-       buffer = (char *) extend_alloca (buffer, buflen, buflen + INCR);
+       buffer = (char *) extend_alloca (buffer, buflen, 2 * buflen);
     }
 
 #if 0
index 99d2998..a18860a 100644 (file)
@@ -1,5 +1,5 @@
 /* Cache handling for host lookup.
-   Copyright (C) 1998-2002, 2003, 2004 Free Software Foundation, Inc.
+   Copyright (C) 1998-2002, 2003, 2004, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
 
@@ -453,11 +453,10 @@ addhstbyX (struct database_dyn *db, int fd, request_header *req,
     {
       char *old_buffer = buffer;
       errno = 0;
-#define INCR 1024
 
       if (__builtin_expect (buflen > 32768, 0))
        {
-         buflen += INCR;
+         buflen *= 2;
          buffer = (char *) realloc (use_malloc ? buffer : NULL, buflen);
          if (buffer == NULL)
            {
@@ -478,7 +477,7 @@ addhstbyX (struct database_dyn *db, int fd, request_header *req,
       else
        /* Allocate a new buffer on the stack.  If possible combine it
           with the previously allocated buffer.  */
-       buffer = (char *) extend_alloca (buffer, buflen, buflen + INCR);
+       buffer = (char *) extend_alloca (buffer, buflen, 2 * buflen);
     }
 
 #if 0
index 5d9d569..ef27e68 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2002, 2003, 2004 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2002, 2003, 2004, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
 
@@ -218,6 +218,7 @@ nscd_gethst_r (const char *key, size_t keylen, request_type type,
                                                   ? INADDRSZ : IN6ADDRSZ)))
        {
        no_room:
+         *h_errnop = NETDB_INTERNAL;
          __set_errno (ERANGE);
          retval = ERANGE;
          goto out_close;
index e8b9578..b67b0f2 100644 (file)
@@ -1,5 +1,5 @@
 /* Cache handling for passwd lookup.
-   Copyright (C) 1998-2002, 2003, 2004 Free Software Foundation, Inc.
+   Copyright (C) 1998-2002, 2003, 2004, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
 
@@ -425,11 +425,10 @@ addpwbyX (struct database_dyn *db, int fd, request_header *req,
     {
       char *old_buffer = buffer;
       errno = 0;
-#define INCR 1024
 
       if (__builtin_expect (buflen > 32768, 0))
        {
-         buflen += INCR;
+         buflen *= 2;
          buffer = (char *) realloc (use_malloc ? buffer : NULL, buflen);
          if (buffer == NULL)
            {
@@ -450,7 +449,7 @@ addpwbyX (struct database_dyn *db, int fd, request_header *req,
       else
        /* Allocate a new buffer on the stack.  If possible combine it
           with the previously allocated buffer.  */
-       buffer = (char *) extend_alloca (buffer, buflen, buflen + INCR);
+       buffer = (char *) extend_alloca (buffer, buflen, 2 * buflen);
     }
 
 #if 0