From e04dc45f2043e8bf0a837eda84a909fa45cadf87 Mon Sep 17 00:00:00 2001 From: Andreas Schneider Date: Mon, 8 Oct 2012 22:38:20 +0200 Subject: misc: Use a fixed buffer for getenv(). --- src/misc.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/misc.c b/src/misc.c index 14ca6162..64d9e0c2 100644 --- a/src/misc.c +++ b/src/misc.c @@ -214,8 +214,14 @@ char *ssh_get_user_home_dir(void) { rc = getpwuid_r(getuid(), &pwd, buf, NSS_BUFLEN_PASSWD, &pwdbuf); if (rc != 0) { - szPath=getenv("HOME"); - return szPath ? strdup(szPath) : NULL; + szPath = getenv("HOME"); + if (szPath == NULL) { + return NULL; + } + memset(buf, 0, sizeof(buf)); + snprintf(buf, sizeof(buf), "%s", getenv("HOME")); + + return strdup(buf); } szPath = strdup(pwd.pw_dir); -- cgit v1.2.3