summaryrefslogtreecommitdiff
path: root/src/shared/user-record-nss.c
diff options
context:
space:
mode:
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2020-01-15 10:04:30 +0100
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2020-01-16 21:57:00 +0100
commit192aee3cae72bf4ca36c849061894e07250b93b0 (patch)
tree2d36817a5e7d47ed40b2c8d12daa2a1a50608f19 /src/shared/user-record-nss.c
parentc7d26acce6dcb0e72be6160873fac758e9b7c440 (diff)
downloadsystemd-192aee3cae72bf4ca36c849061894e07250b93b0.tar.gz
shared/user-record-nss: shorten code a bit
free_and_strdup() already does comparison internally.
Diffstat (limited to 'src/shared/user-record-nss.c')
-rw-r--r--src/shared/user-record-nss.c31
1 files changed, 10 insertions, 21 deletions
diff --git a/src/shared/user-record-nss.c b/src/shared/user-record-nss.c
index 11c085d63d..cf273653de 100644
--- a/src/shared/user-record-nss.c
+++ b/src/shared/user-record-nss.c
@@ -31,29 +31,18 @@ int nss_passwd_to_user_record(
if (r < 0)
return r;
- if (isempty(pwd->pw_gecos) || streq_ptr(pwd->pw_gecos, hr->user_name))
- hr->real_name = mfree(hr->real_name);
- else {
- r = free_and_strdup(&hr->real_name, pwd->pw_gecos);
- if (r < 0)
- return r;
- }
+ r = free_and_strdup(&hr->real_name,
+ streq_ptr(pwd->pw_gecos, hr->user_name) ? NULL : empty_to_null(pwd->pw_gecos));
+ if (r < 0)
+ return r;
- if (isempty(pwd->pw_dir))
- hr->home_directory = mfree(hr->home_directory);
- else {
- r = free_and_strdup(&hr->home_directory, pwd->pw_dir);
- if (r < 0)
- return r;
- }
+ r = free_and_strdup(&hr->home_directory, empty_to_null(pwd->pw_dir));
+ if (r < 0)
+ return r;
- if (isempty(pwd->pw_shell))
- hr->shell = mfree(hr->shell);
- else {
- r = free_and_strdup(&hr->shell, pwd->pw_shell);
- if (r < 0)
- return r;
- }
+ r = free_and_strdup(&hr->shell, empty_to_null(pwd->pw_shell));
+ if (r < 0)
+ return r;
hr->uid = pwd->pw_uid;
hr->gid = pwd->pw_gid;