]> granicus.if.org Git - shadow/commitdiff
* libmisc/utmp.c: Only set ut_time and ut_tv if gettimeofday()
authornekral-guest <nekral-guest@5a98b0ae-9ef6-0310-add3-de5d479b70d7>
Wed, 22 Apr 2009 21:06:13 +0000 (21:06 +0000)
committernekral-guest <nekral-guest@5a98b0ae-9ef6-0310-add3-de5d479b70d7>
Wed, 22 Apr 2009 21:06:13 +0000 (21:06 +0000)
succeeds.

ChangeLog
libmisc/utmp.c

index f37e2a87db5ef9027cd02615017e004b19a20d7b..9547816a075b2e06f7122043a73a17912ca82e9e 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2009-04-22  Nicolas François  <nicolas.francois@centraliens.net>
+
+       * libmisc/utmp.c: Only set ut_time and ut_tv if gettimeofday()
+       succeeds.
+
 2009-04-22  Nicolas François  <nicolas.francois@centraliens.net>
 
        * libmisc/utmp.c: Fix the check for empty host in prepare_utmp()
index 8030908aba932921fbb7dcb351592df9b56c8999..2c98982798da8e9830cc34daeadf3d3cb5ad852f 100644 (file)
@@ -284,17 +284,18 @@ struct utmp *prepare_utmp (const char *name,
        }
        /* ut_exit is only for DEAD_PROCESS */
        utent->ut_session = getsid (0);
-       gettimeofday (&tv, NULL);
+       if (gettimeofday (&tv, NULL) == 0) {
 #ifdef HAVE_STRUCT_UTMP_UT_TIME
-       utent->ut_time = tv.tv_sec;
+               utent->ut_time = tv.tv_sec;
 #endif                         /* HAVE_STRUCT_UTMP_UT_TIME */
 #ifdef HAVE_STRUCT_UTMP_UT_XTIME
-       utent->ut_xtime = tv.tv_usec;
+               utent->ut_xtime = tv.tv_usec;
 #endif                         /* HAVE_STRUCT_UTMP_UT_XTIME */
 #ifdef HAVE_STRUCT_UTMP_UT_TV
-       utent->ut_tv.tv_sec  = tv.tv_sec;
-       utent->ut_tv.tv_usec = tv.tv_usec;
+               utent->ut_tv.tv_sec  = tv.tv_sec;
+               utent->ut_tv.tv_usec = tv.tv_usec;
 #endif                         /* HAVE_STRUCT_UTMP_UT_TV */
+       }
 
        return utent;
 }
@@ -423,15 +424,16 @@ struct utmpx *prepare_utmpx (const char *name,
        }
        /* ut_exit is only for DEAD_PROCESS */
        utxent->ut_session = getsid (0);
-       gettimeofday (&tv, NULL);
+       if (gettimeofday (&tv, NULL) == 0) {
 #ifdef HAVE_STRUCT_UTMPX_UT_TIME
-       utxent->ut_time = tv.tv_sec;
+               utxent->ut_time = tv.tv_sec;
 #endif                         /* HAVE_STRUCT_UTMPX_UT_TIME */
 #ifdef HAVE_STRUCT_UTMPX_UT_XTIME
-       utxent->ut_xtime = tv.tv_usec;
+               utxent->ut_xtime = tv.tv_usec;
 #endif                         /* HAVE_STRUCT_UTMPX_UT_XTIME */
-       utxent->ut_tv.tv_sec  = tv.tv_sec;
-       utxent->ut_tv.tv_usec = tv.tv_usec;
+               utxent->ut_tv.tv_sec  = tv.tv_sec;
+               utxent->ut_tv.tv_usec = tv.tv_usec;
+       }
 
        return utxent;
 }