nscd: avoid assertion failure during persistent db check
Commit Message
nscd should not abort when it finds inconsistencies in the persistent db.
* nscd/connections.c (check_use): Don't abort on invalid len.
---
nscd/connections.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
Comments
* Andreas Schwab:
> nscd should not abort when it finds inconsistencies in the persistent db.
>
> * nscd/connections.c (check_use): Don't abort on invalid len.
> ---
> nscd/connections.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> 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;
This looks okay to me. (nscd_init logs a message if verification of a
persistent database fails.)
Thanks,
Florian
@@ -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))