Date: Tue, 26 Jan 2010 02:16:40 GMT From: Rob Farmer <rfarmer@predatorlabs.net> To: freebsd-gnats-submit@FreeBSD.org Subject: ports/143239: [PATCH] sysutils/msyslogd utmp.h --> utmpx.h Message-ID: <201001260216.o0Q2GeEh082659@www.freebsd.org> Resent-Message-ID: <201001260220.o0Q2K5FJ042920@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 143239 >Category: ports >Synopsis: [PATCH] sysutils/msyslogd utmp.h --> utmpx.h >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: update >Submitter-Id: current-users >Arrival-Date: Tue Jan 26 02:20:05 UTC 2010 >Closed-Date: >Last-Modified: >Originator: Rob Farmer >Release: 9.0-CURRENT >Organization: >Environment: FreeBSD pentium4.predatorlabs.net 9.0-CURRENT FreeBSD 9.0-CURRENT #0 r202659: Tue Jan 19 16:02:39 PST 2010 rfarmer@pentium4.predatorlabs.net:/obj/usr/src/sys/PENTIUM4 i386 >Description: Convert from utmp.h to utmpx.h >How-To-Repeat: >Fix: Patch attached with submission follows: diff -ruN msyslog.old/Makefile msyslog/Makefile --- msyslog.old/Makefile 2010-01-25 16:34:25.000000000 -0800 +++ msyslog/Makefile 2010-01-25 16:43:04.000000000 -0800 @@ -30,6 +30,10 @@ .include <bsd.port.pre.mk> +.if ${OSVERSION} > 900006 +EXTRA_PATCHES= ${PATCHDIR}/utmpx-src-modules-om_classic.c +.endif + .if defined(WITH_MYSQL) USE_MYSQL= yes MAN8+= om_mysql.8 diff -ruN msyslog.old/files/utmpx-src-modules-om_classic.c msyslog/files/utmpx-src-modules-om_classic.c --- msyslog.old/files/utmpx-src-modules-om_classic.c 1969-12-31 16:00:00.000000000 -0800 +++ msyslog/files/utmpx-src-modules-om_classic.c 2010-01-25 16:41:52.000000000 -0800 @@ -0,0 +1,70 @@ +--- src/modules/om_classic.c.orig 2010-01-25 16:36:53.000000000 -0800 ++++ src/modules/om_classic.c 2010-01-25 16:40:31.000000000 -0800 +@@ -66,7 +66,7 @@ + #include <string.h> + #include <syslog.h> + #include <unistd.h> +-#include <utmp.h> ++#include <utmpx.h> + #include <netdb.h> + /* if _PATH_UTMP isn't defined, define it here... */ + #ifndef _PATH_UTMP +@@ -100,7 +100,7 @@ + struct om_classic_ctx { + int fd; + union { +- char f_uname[MAXUNAMES][UT_NAMESIZE+1]; ++ char f_uname[MAXUNAMES][MAXLOGNAME+2]; + struct { + char f_hname[MAXHOSTNAMELEN]; + struct sockaddr f_addr; +@@ -396,9 +396,9 @@ + for (i = 0; i < MAXUNAMES && *p; i++) { + for (q = p; *q && *q != ','; ) + q++; +- (void)strncpy(c->f_un.f_uname[i], p, UT_NAMESIZE); +- if ((q - p) > UT_NAMESIZE) +- c->f_un.f_uname[i][UT_NAMESIZE] = '\0'; ++ (void)strncpy(c->f_un.f_uname[i], p, MAXLOGNAME+1); ++ if ((q - p) > MAXLOGNAME+1) ++ c->f_un.f_uname[i][MAXLOGNAME+1] = '\0'; + else + c->f_un.f_uname[i][q - p] = '\0'; + while (*q == ',' || *q == ' ') +@@ -456,24 +456,19 @@ + { + static int reenter; /* avoid calling ourselves */ + FILE *uf; +- struct utmp ut; ++ struct utmpx ut; + int i; + char *p; + char line[sizeof(ut.ut_line) + 1]; + + if (reenter++) + return; +- if ( (uf = fopen(_PATH_UTMP, "r")) == NULL) { +- dprintf(MSYSLOG_SERIOUS, "om_classic: error opening " +- "%s\n", _PATH_UTMP); +- reenter = 0; +- return; +- } ++ + /* NOSTRICT */ + while (fread(&ut, sizeof(ut), 1, uf) == 1) { + + #ifndef __linux__ +- if (ut.ut_name[0] == '\0') ++ if (ut.ut_user[0] == '\0') + #else + if ((ut.ut_type != USER_PROCESS && ut.ut_type != LOGIN_PROCESS) || + ut.ut_line[0] == ':' /* linux logs users that are not logged in (?!) */) +@@ -494,7 +489,7 @@ + for (i = 0; i < MAXUNAMES; i++) { + if (!c->f_un.f_uname[i][0]) + break; +- if (!strncmp(c->f_un.f_uname[i], ut.ut_name, ++ if (!strncmp(c->f_un.f_uname[i], ut.ut_user, + UT_NAMESIZE)) { + if ((p = ttymsg(iov, 6, line, TTYMSGTIME)) + != NULL) { >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201001260216.o0Q2GeEh082659>