Replace pstat variable in check_idle
This commit is contained in:
		
							parent
							
								
									e680e16ff8
								
							
						
					
					
						commit
						8077ae6004
					
				
					 1 changed files with 4 additions and 5 deletions
				
			
		|  | @ -832,12 +832,11 @@ void check_idle() | ||||||
| {                               /* Check for exceeded time limits & logoff exceeders */ | {                               /* Check for exceeded time limits & logoff exceeders */ | ||||||
|     char user[sizeof(utmpp->ut_user) + 1]; |     char user[sizeof(utmpp->ut_user) + 1]; | ||||||
|     char host[sizeof(utmpp->ut_host) + 1]; |     char host[sizeof(utmpp->ut_host) + 1]; | ||||||
|     struct stat status, *pstat; |     struct stat status; | ||||||
|     time_t idle, sesstime; |     time_t idle, sesstime; | ||||||
| 
 | 
 | ||||||
|     pstat = &status;            /* point to status structure */ |  | ||||||
|     sprintf(path, "/proc/%d", utmpp->ut_pid); |     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 */ |         return;                 /* skip the utmp entry */ | ||||||
|     strncpy(user, utmpp->ut_user, sizeof(user) - 1);    /* get user name */ |     strncpy(user, utmpp->ut_user, sizeof(user) - 1);    /* get user name */ | ||||||
|     user[sizeof(user) - 1] = '\0';      /* null terminate user name string */ |     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 */ |     strncpy(dev, utmpp->ut_line, sizeof(dev) - 1);      /* get device name */ | ||||||
|     dev[sizeof(dev) - 1] = '\0'; |     dev[sizeof(dev) - 1] = '\0'; | ||||||
|     sprintf(path, "/dev/%s", dev); |     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 */ |                                                                                            port && if it's not a local Xsession */ | ||||||
|         syslog(LOG_ERR, "Can't get status of user %s's terminal (%s)\n", user, dev); |         syslog(LOG_ERR, "Can't get status of user %s's terminal (%s)\n", user, dev); | ||||||
|         return; |         return; | ||||||
|  | @ -865,7 +864,7 @@ void check_idle() | ||||||
|                (int) idle, user); |                (int) idle, user); | ||||||
|     } else |     } else | ||||||
| #endif | #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; |     sesstime = (time_now - utmpp->ut_time) / 60; | ||||||
|     switch (chk_timeout(user, dev, host, idle, sesstime)) { |     switch (chk_timeout(user, dev, host, idle, sesstime)) { | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 Petar Kapris
						Petar Kapris