diff options
-rw-r--r-- | source3/lib/nss_wrapper/nss_wrapper.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/source3/lib/nss_wrapper/nss_wrapper.c b/source3/lib/nss_wrapper/nss_wrapper.c index 72ddd8d5c3..6d26588fff 100644 --- a/source3/lib/nss_wrapper/nss_wrapper.c +++ b/source3/lib/nss_wrapper/nss_wrapper.c @@ -535,7 +535,7 @@ static void nwrap_pw_unload(struct nwrap_cache *nwrap) } static int nwrap_pw_copy_r(const struct passwd *src, struct passwd *dst, - char *buf, size_t buflen, struct passwd **destp) + char *buf, size_t buflen, struct passwd **dstp) { char *first; char *last; @@ -567,6 +567,10 @@ static int nwrap_pw_copy_r(const struct passwd *src, struct passwd *dst, ofs = PTR_DIFF(src->pw_shell, first); dst->pw_shell = buf + ofs; + if (dstp) { + *dstp = dst; + } + return 0; } @@ -719,7 +723,7 @@ static void nwrap_gr_unload(struct nwrap_cache *nwrap) } static int nwrap_gr_copy_r(const struct group *src, struct group *dst, - char *buf, size_t buflen, struct group **destp) + char *buf, size_t buflen, struct group **dstp) { char *first; char **lastm; @@ -759,6 +763,10 @@ static int nwrap_gr_copy_r(const struct group *src, struct group *dst, dst->gr_mem[i] = buf + ofs; } + if (dstp) { + *dstp = dst; + } + return 0; } |