From: Karel Zak Date: Wed, 1 Feb 2012 11:41:25 +0000 (+0100) Subject: vipw: don't modify environment, check strtok() return value X-Git-Tag: v2.21-rc2~36 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=467d50fa92174f6d066e98ada928163077d7df21;p=thirdparty%2Futil-linux.git vipw: don't modify environment, check strtok() return value Signed-off-by: Karel Zak --- diff --git a/login-utils/vipw.c b/login-utils/vipw.c index 4dfcfce9e9..1926db8c81 100644 --- a/login-utils/vipw.c +++ b/login-utils/vipw.c @@ -215,11 +215,13 @@ static void pw_edit(int notsetuid) { int pstat; pid_t pid; - char *p, *editor; + char *p, *editor, *tk; - if (!(editor = getenv("EDITOR"))) - editor = strdup(_PATH_VI); /* adia@egnatia.ee.auth.gr */ - if ((p = strrchr(strtok(editor, " \t"), '/')) != NULL) + editor = getenv("EDITOR"); + editor = strdup(editor ? editor : _PATH_VI); + + tk = strtok(editor, " \t"); + if (tk && (p = strrchr(tk, '/')) != NULL) ++p; else p = editor;