about summary refs log tree commit diff
diff options
context:
space:
mode:
authorAndreas Schwab <schwab@suse.de>2018-05-15 14:42:37 +0200
committerAndreas Schwab <schwab@suse.de>2018-12-19 11:44:28 +0100
commit61595e3d36ded374f97961503e843a314b0203c2 (patch)
tree6c391220d0411ab19fcac6d6e8914e2417a09258
parentbbb7dc8475b5c06b3e5d1dcf51a1ec6e045bfc6f (diff)
downloadglibc-61595e3d36ded374f97961503e843a314b0203c2.tar.gz
glibc-61595e3d36ded374f97961503e843a314b0203c2.tar.xz
glibc-61595e3d36ded374f97961503e843a314b0203c2.zip
nscd: avoid assertion failure during persistent db check
nscd should not abort when it finds inconsistencies in the persistent db.
-rw-r--r--ChangeLog4
-rw-r--r--nscd/connections.c3
2 files changed, 6 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 2ea7440b5a..89ad526457 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2018-12-19  Andreas Schwab  <schwab@suse.de>
+
+	* nscd/connections.c (check_use): Don't abort on invalid len.
+
 2018-12-18  Samuel Thibault  <samuel.thibault@ens-lyon.org>
 
 	* sysdeps/mach/hurd/fcntl.c (__libc_fcntl): Test against 64bit `cmd'
diff --git a/nscd/connections.c b/nscd/connections.c
index 47fbb9923a..9818200764 100644
--- a/nscd/connections.c
+++ b/nscd/connections.c
@@ -304,7 +304,8 @@ static int
 check_use (const char *data, nscd_ssize_t first_free, uint8_t *usemap,
 	   enum usekey use, ref_t start, size_t len)
 {
-  assert (len >= 2);
+  if (len < 2)
+    return 0;
 
   if (start > first_free || start + len > first_free
       || (start & BLOCK_ALIGN_M1))