summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/responder/nss/nsssrv_cmd.c5
-rw-r--r--src/responder/nss/nsssrv_mmap_cache.c6
-rw-r--r--src/responder/nss/nsssrv_mmap_cache.h2
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);