diff --git a/arogue5/main.c b/arogue5/main.c index 79727fa..73e38d4 100644 --- a/arogue5/main.c +++ b/arogue5/main.c @@ -49,14 +49,14 @@ char **envp; register char *env; int lowtime; time_t now; - char *roguedir = md_getroguedir(); + char *roguedir; + roguedir = md_getroguedir(); md_init(); /* * get home and options from environment */ - strncpy(home,md_gethomedir(),LINELEN); #ifdef SAVEDIR diff --git a/arogue5/mdport.c b/arogue5/mdport.c index d8a9da2..e141de6 100644 --- a/arogue5/mdport.c +++ b/arogue5/mdport.c @@ -234,7 +234,10 @@ md_getusername() pw = getpwuid(getuid()); - l = pw->pw_name; + if (pw != NULL) + l = pw->pw_name; + else + l = ""; #endif if ((l == NULL) || (*l == '\0')) @@ -265,7 +268,10 @@ md_gethomedir() struct passwd *pw; pw = getpwuid(getuid()); - h = pw->pw_dir; + if (pw != NULL) + h = pw->pw_dir; + else + h = ""; if (strcmp(h,"/") == 0) h = NULL; @@ -325,7 +331,10 @@ md_getshell() char *def = "/bin/sh"; struct passwd *pw; pw = getpwuid(getuid()); - s = pw->pw_shell; + if (pw != NULL) + s = pw->pw_shell; + else + s = ""; #endif if ((s == NULL) || (*s == '\0')) if ( (s = getenv("COMSPEC")) == NULL)