diff options
author | Jakub Hrozek <jhrozek@redhat.com> | 2011-07-21 10:55:11 +0200 |
---|---|---|
committer | Stephen Gallagher <sgallagh@redhat.com> | 2011-08-04 10:46:25 -0400 |
commit | e1b01b5e278d68984a97fce5bf1b653b96dbd47a (patch) | |
tree | f6480a253a16b8e81a866e286bc1f6308e72dadd /src/responder | |
parent | bd2695cc4732f307b47a9cb567a68f67a992fd8f (diff) | |
download | sssd-e1b01b5e278d68984a97fce5bf1b653b96dbd47a.tar.gz sssd-e1b01b5e278d68984a97fce5bf1b653b96dbd47a.tar.xz sssd-e1b01b5e278d68984a97fce5bf1b653b96dbd47a.zip |
Fix indexing of skipped groups
https://fedorahosted.org/sssd/ticket/928
Diffstat (limited to 'src/responder')
-rw-r--r-- | src/responder/nss/nsssrv_cmd.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/responder/nss/nsssrv_cmd.c b/src/responder/nss/nsssrv_cmd.c index db7edd023..aa1b471d5 100644 --- a/src/responder/nss/nsssrv_cmd.c +++ b/src/responder/nss/nsssrv_cmd.c @@ -2921,7 +2921,7 @@ static int fill_initgr(struct sss_packet *packet, struct ldb_result *res) uint8_t *body; size_t blen; gid_t gid; - int ret, i, num; + int ret, i, num, bindex; int skipped = 0; const char *posix; @@ -2939,6 +2939,7 @@ static int fill_initgr(struct sss_packet *packet, struct ldb_result *res) sss_packet_get_body(packet, &body, &blen); /* skip first entry, it's the user entry */ + bindex = 0; for (i = 0; i < num; i++) { gid = ldb_msg_find_attr_as_uint64(res->msgs[i + 1], SYSDB_GIDNUM, 0); posix = ldb_msg_find_attr_as_string(res->msgs[i + 1], SYSDB_POSIX, NULL); @@ -2951,7 +2952,8 @@ static int fill_initgr(struct sss_packet *packet, struct ldb_result *res) return EFAULT; } } - ((uint32_t *)body)[2 + i] = gid; + ((uint32_t *)body)[2 + bindex] = gid; + bindex++; } ((uint32_t *)body)[0] = num-skipped; /* num results */ |