From 9573a6fe5b945ae4acd126cb8f285ee3434c2296 Mon Sep 17 00:00:00 2001 From: Jim Warner Date: Fri, 13 Jan 2012 16:07:40 -0600 Subject: [PATCH] top: properly handle an improper $HOME environment variable Since its inception, this top has improperly handled an empty HOME environment variable. Under those conditions a path to the root directory would have been constructed. That caused no real harm upon startup since the display defaults would have been employed. However, except for root, it would have been impossible to save the rc file. This commit keeps the promise made in the documentation. --- top/top.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/top/top.c b/top/top.c index ae059657..856d8560 100644 --- a/top/top.c +++ b/top/top.c @@ -2148,13 +2148,13 @@ static void configs_read (void) { RCF_t rcdef = DEF_RCFILE; #endif float tmp_delay = DEF_DELAY; - char fbuf[LRGBUFSIZ]; + char fbuf[LRGBUFSIZ], *p; FILE *fp; int i, x; char id; - if (!getenv("HOME")) snprintf(Rc_name, sizeof(Rc_name), ".%src", Myname); - else snprintf(Rc_name, sizeof(Rc_name), "%s/.%src", getenv("HOME"), Myname); + p = getenv("HOME"); + snprintf(Rc_name, sizeof(Rc_name), "%s/.%src", (p && *p) ? p : ".", Myname); fp = fopen(SYS_RCFILESPEC, "r"); if (fp) {