---
 utmp.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/utmp.c b/utmp.c
index d0d556c..53429a8 100644
--- a/utmp.c
+++ b/utmp.c
@@ -41,6 +41,7 @@ main(int argc, char *argv[])
        int status;
        uid_t uid;
        sigset_t set;
+       char *err;
        extern void addutmp(void), delutmp(void);
 
        egid = getegid();
@@ -58,15 +59,16 @@ main(int argc, char *argv[])
 
        sigfillset(&set);
        sigprocmask(SIG_BLOCK, &set, NULL);
+       err = "error spawning child:%s";
 
        switch (fork()) {
        case 0:
                sigprocmask(SIG_UNBLOCK, &set, NULL);
                argv[0] = getenv("SHELL");
                execv(argv[0], argv);
-               die("error executing shell:%s", strerror(errno));
+               err = "error executing shell:%s" ;
        case -1:
-               die("error spawning child:%s", strerror(errno));
+               die(err, strerror(errno));
        default:
                addutmp();
                signal(SIGINT, SIG_IGN);
-- 
1.9.3


Reply via email to