chiark / gitweb /
units: kill the emergency shell with SIGHUP
[elogind.git] / src / utmp-wtmp.c
index 5aafb7b722272b411c051746a2bc834f64e0475f..45da79c681c8e3d92bf1abf2db75630593462ae6 100644 (file)
@@ -291,17 +291,19 @@ finish:
 int utmp_wall(const char *message) {
         struct utmpx *u;
         char date[26];
-        char *text, *hn, *un, *tty;
+        char *text = NULL, *hn = NULL, *un = NULL, *tty = NULL;
         int r;
         time_t t;
 
         if (!(hn = gethostname_malloc()) ||
-            !(un = getlogname_malloc()) ||
-            !(tty = getttyname_malloc())) {
+            !(un = getlogname_malloc())) {
                 r = -ENOMEM;
                 goto finish;
         }
 
+        if ((r = getttyname_malloc(&tty)) < 0)
+                goto finish;
+
         time(&t);
         assert_se(ctime_r(&t, date));
         delete_chars(date, "\n\r");