From d85bc347d3274e4457c4c2d19d4f12c8a6434e46 Mon Sep 17 00:00:00 2001 From: Jakub Jelen Date: Tue, 30 Oct 2018 16:02:39 +0100 Subject: misc: Properly check for errors returned from getpwuid_r() Resolves: T118 Signed-off-by: Jakub Jelen Reviewed-by: Andreas Schneider --- src/misc.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/misc.c b/src/misc.c index 90b63330..782b7bc0 100644 --- a/src/misc.c +++ b/src/misc.c @@ -217,12 +217,12 @@ char *ssh_get_user_home_dir(void) { char *szPath = NULL; struct passwd pwd; - struct passwd *pwdbuf; + struct passwd *pwdbuf = NULL; char buf[NSS_BUFLEN_PASSWD] = {0}; int rc; rc = getpwuid_r(getuid(), &pwd, buf, NSS_BUFLEN_PASSWD, &pwdbuf); - if (rc != 0) { + if (rc != 0 || pwdbuf == NULL ) { szPath = getenv("HOME"); if (szPath == NULL) { return NULL; @@ -250,13 +250,13 @@ int ssh_file_readaccess_ok(const char *file) char *ssh_get_local_username(void) { struct passwd pwd; - struct passwd *pwdbuf; + struct passwd *pwdbuf = NULL; char buf[NSS_BUFLEN_PASSWD]; char *name; int rc; rc = getpwuid_r(getuid(), &pwd, buf, NSS_BUFLEN_PASSWD, &pwdbuf); - if (rc != 0) { + if (rc != 0 || pwdbuf == NULL) { return NULL; } -- cgit v1.2.3