summary refs log tree commit diff
path: root/nscd/nscd_helper.c
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2008-03-04 01:54:09 +0000
committerUlrich Drepper <drepper@redhat.com>2008-03-04 01:54:09 +0000
commit27c377dd04f40e4d0a7e11daad059939e94d9367 (patch)
tree25141dbca8580fbb71b210108fa57457830278d8 /nscd/nscd_helper.c
parent0f749099e991ef47514bd635225a89a9c0250b80 (diff)
downloadglibc-27c377dd04f40e4d0a7e11daad059939e94d9367.tar.gz
glibc-27c377dd04f40e4d0a7e11daad059939e94d9367.tar.xz
glibc-27c377dd04f40e4d0a7e11daad059939e94d9367.zip
[BZ #5818]
	* nscd/connections.c (dbs): Add initializers for .suggested_module.
	(verify_persistent_db): Remove one unnecessary test and add a new one
	for bad configuration.
	(nscd_init): Improve error reported when persistent database cannot
	be reused.
	* nscd/nscd.h (DEFAULT_SUGGESTED_MODULE): Define.
	* nscd/nscd_conf.c (nscd_parse_file): Provide default values for
	.suggested_module and .max_db_size and case config file says the
	values are zero.
	* nscd/nscd_helper.c (get_mapping): Fail if hash table module is zero.
Diffstat (limited to 'nscd/nscd_helper.c')
-rw-r--r--nscd/nscd_helper.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/nscd/nscd_helper.c b/nscd/nscd_helper.c
index 866535200f..9828a46df0 100644
--- a/nscd/nscd_helper.c
+++ b/nscd/nscd_helper.c
@@ -1,5 +1,4 @@
-/* Copyright (C) 1998-2002,2003,2004,2005,2006,2007
-   Free Software Foundation, Inc.
+/* Copyright (C) 1998-2007, 2008 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
 
@@ -339,6 +338,9 @@ get_mapping (request_type type, const char *key,
 
       if (__builtin_expect (head->version != DB_VERSION, 0)
 	  || __builtin_expect (head->header_size != sizeof (*head), 0)
+	  /* Catch some misconfiguration.  The server should catch
+	     them now but some older versions did not.  */
+	  || __builtin_expect (head->module == 0, 0)
 	  /* This really should not happen but who knows, maybe the update
 	     thread got stuck.  */
 	  || __builtin_expect (! head->nscd_certainly_running