diff options
author | Pavel Reichl <preichl@redhat.com> | 2014-06-24 09:47:09 +0100 |
---|---|---|
committer | Jakub Hrozek <jhrozek@redhat.com> | 2014-06-25 16:04:21 +0200 |
commit | 8ca1875209325ddeb28fccb421457b76b4b0c7db (patch) | |
tree | 68719a9f322de27aea692c26c7f2cec2674f34a9 | |
parent | 50c009a3d51521880ddf568e7173d1ed9d5c2685 (diff) | |
download | sssd-8ca1875209325ddeb28fccb421457b76b4b0c7db.tar.gz sssd-8ca1875209325ddeb28fccb421457b76b4b0c7db.tar.xz sssd-8ca1875209325ddeb28fccb421457b76b4b0c7db.zip |
NSS: lookup_netgr_step don't access result on ENOENT
Don't access result if return value is not EOK.
Reviewed-by: Lukáš Slebodník <lslebodn@redhat.com>
Reviewed-by: Jakub Hrozek <jhrozek@redhat.com>
-rw-r--r-- | src/responder/nss/nsssrv_netgroup.c | 24 |
1 files changed, 11 insertions, 13 deletions
diff --git a/src/responder/nss/nsssrv_netgroup.c b/src/responder/nss/nsssrv_netgroup.c index 1c9b72ae3..86cb8cd4d 100644 --- a/src/responder/nss/nsssrv_netgroup.c +++ b/src/responder/nss/nsssrv_netgroup.c @@ -514,32 +514,30 @@ static errno_t lookup_netgr_step(struct setent_step_ctx *step_ctx) /* Look up the netgroup in the cache */ ret = sysdb_getnetgr(step_ctx->dctx, dom, name, &step_ctx->dctx->res); - if (ret == ENOENT) { + if (ret == EOK) { + if (step_ctx->dctx->res->count > 1) { + DEBUG(SSSDBG_FATAL_FAILURE, + "getnetgr call returned more than one result !?!\n"); + ret = EMSGSIZE; + goto done; + } + } else if (ret == ENOENT) { /* This netgroup was not found in this domain */ if (!step_ctx->dctx->check_provider) { if (step_ctx->check_next) { dom = get_next_domain(dom, false); continue; + } else { + break; } - else break; } - ret = EOK; - } - - if (ret != EOK) { + } else { DEBUG(SSSDBG_CRIT_FAILURE, "Failed to make request to our cache!\n"); ret = EIO; goto done; } - if (step_ctx->dctx->res->count > 1) { - DEBUG(SSSDBG_FATAL_FAILURE, - "getnetgr call returned more than one result !?!\n"); - ret = EMSGSIZE; - goto done; - } - ret = get_netgroup_entry(step_ctx->nctx, step_ctx->name, &netgr); if (ret != EOK) { |