summaryrefslogtreecommitdiffstats
path: root/src/sss_client
diff options
context:
space:
mode:
authorMichal Zidek <mzidek@redhat.com>2013-09-13 17:41:28 +0200
committerJakub Hrozek <jhrozek@redhat.com>2013-09-23 17:11:57 +0200
commitf1dba8ec85896530431c3f9069394e83d9c1b0cc (patch)
tree6463cca8c3d13fac8a20436530271ab29073e597 /src/sss_client
parent3be9a74d0acd35430c060322903c29efc3fef9fe (diff)
downloadsssd-f1dba8ec85896530431c3f9069394e83d9c1b0cc.tar.gz
sssd-f1dba8ec85896530431c3f9069394e83d9c1b0cc.tar.xz
sssd-f1dba8ec85896530431c3f9069394e83d9c1b0cc.zip
Check slot validity before MC_SLOT_TO_PTR.
resolves: https://fedorahosted.org/sssd/ticket/2049
Diffstat (limited to 'src/sss_client')
-rw-r--r--src/sss_client/nss_mc_common.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/sss_client/nss_mc_common.c b/src/sss_client/nss_mc_common.c
index a0a70abc0..6764d801f 100644
--- a/src/sss_client/nss_mc_common.c
+++ b/src/sss_client/nss_mc_common.c
@@ -190,6 +190,10 @@ errno_t sss_nss_mc_get_record(struct sss_cli_mc_ctx *ctx,
int count;
int ret;
+ if (!MC_SLOT_WITHIN_BOUNDS(slot, ctx->dt_size)) {
+ return EINVAL;
+ }
+
/* try max 5 times */
for (count = 5; count > 0; count--) {
rec = MC_SLOT_TO_PTR(ctx->data_table, slot, struct sss_mc_rec);