diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/providers/proxy/proxy_id.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/providers/proxy/proxy_id.c b/src/providers/proxy/proxy_id.c index 120946b7d..048f2690e 100644 --- a/src/providers/proxy/proxy_id.c +++ b/src/providers/proxy/proxy_id.c @@ -215,6 +215,7 @@ static int save_user(struct sysdb_ctx *sysdb, bool lowercase, const char *alias, uint64_t cache_timeout) { const char *shell; + const char *gecos; char *lower; struct sysdb_attrs *attrs = NULL; errno_t ret; @@ -226,6 +227,12 @@ static int save_user(struct sysdb_ctx *sysdb, bool lowercase, shell = NULL; } + if (pwd->pw_gecos && pwd->pw_gecos[0] != '\0') { + gecos = pwd->pw_gecos; + } else { + gecos = NULL; + } + if (lowercase || alias) { attrs = sysdb_new_attrs(NULL); if (!attrs) { @@ -270,7 +277,7 @@ static int save_user(struct sysdb_ctx *sysdb, bool lowercase, pwd->pw_passwd, pwd->pw_uid, pwd->pw_gid, - pwd->pw_gecos, + gecos, pwd->pw_dir, shell, NULL, |