]> granicus.if.org Git - shadow/commitdiff
* src/login.c: utent might be NULL after get_current_utmp().
authornekral-guest <nekral-guest@5a98b0ae-9ef6-0310-add3-de5d479b70d7>
Wed, 22 Apr 2009 20:07:34 +0000 (20:07 +0000)
committernekral-guest <nekral-guest@5a98b0ae-9ef6-0310-add3-de5d479b70d7>
Wed, 22 Apr 2009 20:07:34 +0000 (20:07 +0000)
ChangeLog
src/login.c

index 492d31d00729189dd7670bb73ec06a4bd72bee44..4f4ae8994054d9f282ddfc2b3de44db5004038b7 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2009-04-22  Paul Szabo  <psz@maths.usyd.edu.au>
+
+       * src/login.c: utent might be NULL after get_current_utmp().
+
 2009-04-22  Nicolas François  <nicolas.francois@centraliens.net>
 
        * src/login.c: Removed temp_shell. No more used.
index 970180cb4c01c7f665b75c818be56ab79da4afeb..251b526ce0e4e303bdc9069fd279cbbbd28e6932 100644 (file)
@@ -563,6 +563,7 @@ int main (int argc, char **argv)
                (void) puts (_("No utmp entry.  You must exec \"login\" from the lowest level \"sh\""));
                exit (1);
        }
+       /* NOTE: utent might be NULL afterwards */
 
        tmptty = ttyname (0);
        if (NULL == tmptty) {
@@ -655,15 +656,12 @@ int main (int argc, char **argv)
 
        if (rflg || hflg) {
                cp = hostname;
-       } else {
 #ifdef HAVE_STRUCT_UTMP_UT_HOST
-               if ('\0' != utent->ut_host[0]) {
-                       cp = utent->ut_host;
-               } else
+       } else if ((NULL != utent) && ('\0' != utent->ut_host[0])) {
+               cp = utent->ut_host;
 #endif                         /* HAVE_STRUCT_UTMP_UT_HOST */
-               {
-                       cp = "";
-               }
+       } else {
+               cp = "";
        }
 
        if ('\0' != *cp) {