From e116c16170248a39f70755531830b0ea93e8a337 Mon Sep 17 00:00:00 2001 From: Ivan Vershinin Date: Wed, 18 Dec 2013 16:59:43 +0200 Subject: [PATCH] fixed segfault if USER environment variable is empty --- slock.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/slock.c b/slock.c index 467937c..747fc89 100644 --- a/slock.c +++ b/slock.c @@ -73,8 +73,12 @@ getpw(void) { /* only run as root */ #if HAVE_SHADOW_H if (strlen(rval) >= 1) { /* kludge, assumes pw placeholder entry has len >= 1 */ + const char* user; + user = getenv("USER"); + if(!user) + die("slock: USER environment variable is empty!\n"); struct spwd *sp; - sp = getspnam(getenv("USER")); + sp = getspnam(user); if(!sp) die("slock: cannot retrieve shadow entry (make sure to suid or sgid slock)\n"); endspent(); -- 1.8.5.1