From 8077ae60048bafe6f0f50e82d42dcefec6a9a420 Mon Sep 17 00:00:00 2001 From: Petar Kapris Date: Sat, 19 Dec 2020 09:58:27 +0100 Subject: [PATCH] Replace pstat variable in check_idle --- timeoutd.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/timeoutd.c b/timeoutd.c index 3b67bb4..972059d 100644 --- a/timeoutd.c +++ b/timeoutd.c @@ -832,12 +832,11 @@ void check_idle() { /* Check for exceeded time limits & logoff exceeders */ char user[sizeof(utmpp->ut_user) + 1]; char host[sizeof(utmpp->ut_host) + 1]; - struct stat status, *pstat; + struct stat status; time_t idle, sesstime; - pstat = &status; /* point to status structure */ sprintf(path, "/proc/%d", utmpp->ut_pid); - if (utmpp->ut_type != USER_PROCESS || stat(path, pstat)) /* if not user process, or if proc doesn't exist */ + if (utmpp->ut_type != USER_PROCESS || stat(path, &status)) /* if not user process, or if proc doesn't exist */ return; /* skip the utmp entry */ strncpy(user, utmpp->ut_user, sizeof(user) - 1); /* get user name */ user[sizeof(user) - 1] = '\0'; /* null terminate user name string */ @@ -847,7 +846,7 @@ void check_idle() strncpy(dev, utmpp->ut_line, sizeof(dev) - 1); /* get device name */ dev[sizeof(dev) - 1] = '\0'; sprintf(path, "/dev/%s", dev); - if (stat(path, pstat) && chk_xsession(dev, host) != TIMEOUTD_XSESSION_LOCAL) { /* if can't get status for + if (stat(path, &status) && chk_xsession(dev, host) != TIMEOUTD_XSESSION_LOCAL) { /* if can't get status for port && if it's not a local Xsession */ syslog(LOG_ERR, "Can't get status of user %s's terminal (%s)\n", user, dev); return; @@ -865,7 +864,7 @@ void check_idle() (int) idle, user); } else #endif - idle = (time_now - max(pstat->st_atime, pstat->st_mtime)) / 60; + idle = (time_now - max(status.st_atime, status.st_mtime)) / 60; sesstime = (time_now - utmpp->ut_time) / 60; switch (chk_timeout(user, dev, host, idle, sesstime)) {