From fc01644d533fb23c4019262304e477cd634f290d Mon Sep 17 00:00:00 2001 From: Karel Zak Date: Tue, 31 Jan 2012 14:23:26 +0100 Subject: [PATCH] login: more robust sysconf() usage [coverity scan] Signed-off-by: Karel Zak --- login-utils/login.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/login-utils/login.c b/login-utils/login.c index e80b137ba3..3a904f2f88 100644 --- a/login-utils/login.c +++ b/login-utils/login.c @@ -644,18 +644,19 @@ static struct passwd *get_passwd_entry(const char *username, struct passwd *pwd) { struct passwd *res = NULL; - size_t sz; + size_t sz = 16384; int x; if (!pwdbuf || !username) return NULL; #ifdef _SC_GETPW_R_SIZE_MAX - sz = sysconf(_SC_GETPW_R_SIZE_MAX); - if (sz <= 0) + { + long xsz = sysconf(_SC_GETPW_R_SIZE_MAX); + if (xsz > 0) + sz = (size_t) xsz; + } #endif - sz = 16384; - *pwdbuf = xrealloc(*pwdbuf, sz); x = getpwnam_r(username, pwd, *pwdbuf, sz, &res); -- 2.47.3