diff options
Diffstat (limited to 'src/responder')
-rw-r--r-- | src/responder/nss/nsssrv_cmd.c | 5 | ||||
-rw-r--r-- | src/responder/nss/nsssrv_mmap_cache.c | 6 | ||||
-rw-r--r-- | src/responder/nss/nsssrv_mmap_cache.h | 2 |
3 files changed, 9 insertions, 4 deletions
diff --git a/src/responder/nss/nsssrv_cmd.c b/src/responder/nss/nsssrv_cmd.c index 2ad9194c..387408a7 100644 --- a/src/responder/nss/nsssrv_cmd.c +++ b/src/responder/nss/nsssrv_cmd.c @@ -433,7 +433,7 @@ static int fill_pwent(struct sss_packet *packet, if (pw_mmap_cache && nctx->pwd_mc_ctx) { ret = sss_mmap_cache_pw_store(&nctx->pwd_mc_ctx, - &fullname, &pwfield, + &fullname, NULL, &pwfield, uid, gid, &gecos, &homedir, &shell); if (ret != EOK && ret != ENOMEM) { @@ -2186,7 +2186,8 @@ static int fill_grent(struct sss_packet *packet, * where body used to be, not where it is */ to_sized_string(&fullname, (const char *)&body[rzero+STRS_ROFFSET]); ret = sss_mmap_cache_gr_store(&nctx->grp_mc_ctx, - &fullname, &pwfield, gid, memnum, + &fullname, NULL, &pwfield, + gid, memnum, (char *)&body[rzero] + STRS_ROFFSET + fullname.len + pwfield.len, rsize - STRS_ROFFSET - diff --git a/src/responder/nss/nsssrv_mmap_cache.c b/src/responder/nss/nsssrv_mmap_cache.c index cdedf47b..3823d065 100644 --- a/src/responder/nss/nsssrv_mmap_cache.c +++ b/src/responder/nss/nsssrv_mmap_cache.c @@ -517,6 +517,7 @@ static errno_t sss_mmap_cache_invalidate(struct sss_mc_ctx *mcc, errno_t sss_mmap_cache_pw_store(struct sss_mc_ctx **_mcc, struct sized_string *name, + struct sized_string *alias, struct sized_string *pw, uid_t uid, gid_t gid, struct sized_string *gecos, @@ -565,7 +566,7 @@ errno_t sss_mmap_cache_pw_store(struct sss_mc_ctx **_mcc, /* header */ sss_mmap_set_rec_header(mcc, rec, rec_len, mcc->valid_time_slot, name->str, name->len, uidkey.str, uidkey.len, - NULL, 0); + alias ? alias->str:NULL, alias ? alias->len:0); /* passwd struct */ data->name = MC_PTR_DIFF(data->strs, data); @@ -655,6 +656,7 @@ done: int sss_mmap_cache_gr_store(struct sss_mc_ctx **_mcc, struct sized_string *name, + struct sized_string *alias, struct sized_string *pw, gid_t gid, size_t memnum, char *membuf, size_t memsize) @@ -701,7 +703,7 @@ int sss_mmap_cache_gr_store(struct sss_mc_ctx **_mcc, /* header */ sss_mmap_set_rec_header(mcc, rec, rec_len, mcc->valid_time_slot, name->str, name->len, gidkey.str, gidkey.len, - NULL, 0); + alias ? alias->str:NULL, alias ? alias->len:0); /* group struct */ data->name = MC_PTR_DIFF(data->strs, data); diff --git a/src/responder/nss/nsssrv_mmap_cache.h b/src/responder/nss/nsssrv_mmap_cache.h index 25cec40c..cf87e3b3 100644 --- a/src/responder/nss/nsssrv_mmap_cache.h +++ b/src/responder/nss/nsssrv_mmap_cache.h @@ -38,6 +38,7 @@ errno_t sss_mmap_cache_init(TALLOC_CTX *mem_ctx, const char *name, errno_t sss_mmap_cache_pw_store(struct sss_mc_ctx **_mcc, struct sized_string *name, + struct sized_string *alias, struct sized_string *pw, uid_t uid, gid_t gid, struct sized_string *gecos, @@ -46,6 +47,7 @@ errno_t sss_mmap_cache_pw_store(struct sss_mc_ctx **_mcc, errno_t sss_mmap_cache_gr_store(struct sss_mc_ctx **_mcc, struct sized_string *name, + struct sized_string *alias, struct sized_string *pw, gid_t gid, size_t memnum, char *membuf, size_t memsize); |