diff options
Diffstat (limited to 'sysutils/blimitd/files/extra-patch-utmpx')
-rw-r--r-- | sysutils/blimitd/files/extra-patch-utmpx | 71 |
1 files changed, 0 insertions, 71 deletions
diff --git a/sysutils/blimitd/files/extra-patch-utmpx b/sysutils/blimitd/files/extra-patch-utmpx deleted file mode 100644 index a6bd694a4622..000000000000 --- a/sysutils/blimitd/files/extra-patch-utmpx +++ /dev/null @@ -1,71 +0,0 @@ ---- blimitd.c -+++ blimitd.c -@@ -15,7 +15,7 @@ - #include <sysexits.h> - #include <syslog.h> - #include <unistd.h> --#include <utmp.h> -+#include <utmpx.h> - - #include "blimitd.h" - #include "config.h" -@@ -35,7 +35,7 @@ - pid_t pid; - char *name; - FILE *utmp_fh; -- struct utmp utmp_record; -+ struct utmpx *utmp_record; - struct passwd *pw; - struct user_instance ui; - -@@ -115,23 +115,19 @@ - - /* actually do stuff */ - while (sig_no == 0) { -- /* get the logged in users */ -- if ((utmp_fh = fopen(_PATH_UTMP, "r")) == NULL) { -- syslog(LOG_ERR, "failed to open %s for reading: %m", _PATH_UTMP); -- continue; -- } - /* prepare for pw access */ - if (! setpassent(1)) { - syslog(LOG_ERR, "setpassent: %m"); - } - /* for each entry */ -- while (fread(&utmp_record, sizeof(utmp_record), 1, utmp_fh)) { -- if (utmp_record.ut_name[0] == '\0') { -+ setutxent(); -+ while ((utmp_record = getutxent()) != NULL) { -+ if (utmp_record->ut_type != USER_PROCESS) { - /* this entry has been removed */ - continue; - } - /* get their name in a char *\0 */ -- if ((name = strndup(utmp_record.ut_name, UT_NAMESIZE)) == NULL) { -+ if ((name = strndup(utmp_record->ut_user, sizeof utmp_record->ut_user)) == NULL) { - syslog(LOG_ERR, "strndup failed: %m"); - continue; - } -@@ -150,7 +146,7 @@ - - /* initialise ui for passing to enforcement functions */ - ui.pw = pw; -- if ((ui.tty = find_tty(utmp_record.ut_line, UT_LINESIZE)) == NULL) { -+ if ((ui.tty = find_tty(utmp_record->ut_line, sizeof utmp_record->ut_line)) == NULL) { - syslog(LOG_ERR, "find_tty failed: %m"); - continue; - } -@@ -163,12 +159,7 @@ - free(ui.tty); - } - -- if (ferror(utmp_fh)) { -- syslog(LOG_ERR, "error reading from %s: %m", _PATH_UTMP); -- } -- if (fclose(utmp_fh) != 0) { -- syslog(LOG_ERR, "error closing %s: %m", _PATH_UTMP); -- } -+ endutxent(); - - /* finished with the password database till next time */ - endpwent(); |