about summary refs log tree commit diff
diff options
context:
space:
mode:
authorAndreas Schwab <schwab@suse.de>2018-05-15 14:42:37 +0200
committerFlorian Weimer <fweimer@redhat.com>2019-10-30 13:59:26 +0100
commita645c48756f04d757c69740be0eaa6ffb5f47e3b (patch)
treebf8e2e073fe4051e148aafe83678f1bc2e5cc99f
parentf88c59f4657ac2e0bab8f51f60022ecbe7f12e2e (diff)
downloadglibc-a645c48756f04d757c69740be0eaa6ffb5f47e3b.tar.gz
glibc-a645c48756f04d757c69740be0eaa6ffb5f47e3b.tar.xz
glibc-a645c48756f04d757c69740be0eaa6ffb5f47e3b.zip
nscd: avoid assertion failure during persistent db check
nscd should not abort when it finds inconsistencies in the persistent db.

(cherry picked from commit 61595e3d36ded374f97961503e843a314b0203c2)
-rw-r--r--ChangeLog4
-rw-r--r--nscd/connections.c3
2 files changed, 6 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 8c5c162f56..f855dbdc20 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.
+
 2019-05-17  Wilco Dijkstra  <wdijkstr@arm.com>
 
 	* malloc/malloc.c (MAX_TCACHE_COUNT): Increase to UINT16_MAX.
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))