summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLukas Slebodnik <lslebodn@redhat.com>2013-11-05 17:58:36 +0100
committerJakub Hrozek <jhrozek@redhat.com>2013-11-07 11:28:20 +0100
commit4f9f570e1645c6c4303d8061808d3b1d28b1db88 (patch)
tree6935e7f7bede44c2c1c998b2bdea5c8e84491716
parent3e94cea9351b541dfeac13fed925e0794488f0c6 (diff)
downloadsssd-4f9f570e1645c6c4303d8061808d3b1d28b1db88.tar.gz
sssd-4f9f570e1645c6c4303d8061808d3b1d28b1db88.tar.xz
sssd-4f9f570e1645c6c4303d8061808d3b1d28b1db88.zip
NSS: Set packet length for initgroups
Some groups could be skipped, but packet length was not trimmed. This is a reason why valgrind reported access to uninitialised bytes. Actually, it isn't a problem, because the first uint32 in body is number of sended gids. Resolves: https://fedorahosted.org/sssd/ticket/2138
-rw-r--r--src/responder/nss/nsssrv_cmd.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/responder/nss/nsssrv_cmd.c b/src/responder/nss/nsssrv_cmd.c
index 564d66f0d..550017c0e 100644
--- a/src/responder/nss/nsssrv_cmd.c
+++ b/src/responder/nss/nsssrv_cmd.c
@@ -3558,6 +3558,13 @@ static int fill_initgr(struct sss_packet *packet, struct ldb_result *res)
((uint32_t *)body)[0] = num-skipped; /* num results */
((uint32_t *)body)[1] = 0; /* reserved */
+ blen = (2 + bindex) * sizeof(uint32_t);
+ ret = sss_packet_set_size(packet, blen);
+ if (ret != EOK) {
+ DEBUG(SSSDBG_OP_FAILURE,
+ ("Could not set packet size to value:%zu\n", blen));
+ return ret;
+ }
return EOK;
}