From fc0f2fbb76e45e14db7968d5079e63b7a981135c Mon Sep 17 00:00:00 2001 From: Ludwig Krispenz Date: Wed, 30 May 2018 10:40:23 +0200 Subject: [PATCH] fix coverity issue, ensure that be is in the range of allocated backends --- ldap/servers/slapd/backend_manager.c | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/ldap/servers/slapd/backend_manager.c b/ldap/servers/slapd/backend_manager.c index 401ab5b..16c7c4b 100644 --- a/ldap/servers/slapd/backend_manager.c +++ b/ldap/servers/slapd/backend_manager.c @@ -42,19 +42,17 @@ slapi_be_new(const char *type, const char *name, int isprivate, int logchanges) } } - /* Find the first open slot */ - for (i = 0; ((i < maxbackends) && (backends[i])); i++) - ; - - PR_ASSERT(i < maxbackends); - be = (Slapi_Backend *)slapi_ch_calloc(1, sizeof(Slapi_Backend)); be->be_lock = slapi_new_rwlock(); be_init(be, type, name, isprivate, logchanges, defsize, deftime); - backends[i] = be; - nbackends++; - + for (size_t i = 0; i < maxbackends; i++) { + if (backends[i] == NULL) { + backends[i] = be; + nbackends++; + break; + } + } slapi_log_err(SLAPI_LOG_TRACE, "slapi_be_new", "Added new backend name [%s] type [%s] nbackends [%d]\n", name, type, nbackends); -- 2.9.5