[chkrootkit/el6] update chkutmp-outofbounds patch ( grab the one from rawhide )

wolfy wolfy at fedoraproject.org
Tue Feb 25 15:55:26 UTC 2014


commit 53ca82f8963fcbafd8564a4ba606c485c5b28bf4
Author: Manuel Wolfshant <wolfy at fedoraproject.org>
Date:   Tue Feb 25 17:55:33 2014 +0200

    update chkutmp-outofbounds patch ( grab the one from rawhide )

 chkrootkit-0.49-chkutmp-outofbounds.patch |   70 +++++++++++++++++++++++++++--
 chkrootkit.spec                           |    5 ++-
 2 files changed, 70 insertions(+), 5 deletions(-)
---
diff --git a/chkrootkit-0.49-chkutmp-outofbounds.patch b/chkrootkit-0.49-chkutmp-outofbounds.patch
index 367ae26..ffb620a 100644
--- a/chkrootkit-0.49-chkutmp-outofbounds.patch
+++ b/chkrootkit-0.49-chkutmp-outofbounds.patch
@@ -1,12 +1,74 @@
---- chkutmp.c~	2009-07-22 08:09:41.000000000 -0500
-+++ chkutmp.c	2009-07-22 08:11:17.000000000 -0500
-@@ -60,3 +60,3 @@
+diff -Nur chkrootkit-0.49-orig/chkutmp.c chkrootkit-0.49/chkutmp.c
+--- chkrootkit-0.49-orig/chkutmp.c	2009-07-30 15:43:17.000000000 +0200
++++ chkrootkit-0.49/chkutmp.c	2010-10-14 22:31:16.000000000 +0200
+@@ -43,7 +43,6 @@
+ #endif
+ #include <ctype.h>
+ 
+-#define MAXREAD 1024
+ #define MAXBUF 4096
+ #define MAXLENGTH 256
+ #define UT_PIDSIZE 12
+@@ -58,13 +57,13 @@
+ #endif
+ 
+ struct ps_line {
 -    char ps_tty[UT_LINESIZE];
 -    char ps_user[UT_NAMESIZE];
 -    char ps_args[MAXLENGTH];
 +    char ps_tty[UT_LINESIZE+2];
 +    char ps_user[UT_NAMESIZE+2];
 +    char ps_args[MAXLENGTH+2];
-@@ -66 +66 @@
+     int ps_pid;
+ };
+ struct utmp_line {
 -    char ut_tty[UT_LINESIZE];
 +    char ut_tty[UT_LINESIZE+2];
+     int ut_pid;
+     int ut_type;
+ };
+@@ -78,7 +77,9 @@
+ int fetchps(struct ps_line *psl_p)
+ {
+     FILE *ps_fp;
+-    char line[MAXREAD + 1], pid[UT_PIDSIZE];
++    char *line = NULL;
++    size_t linelen = 0;
++    char pid[UT_PIDSIZE+2];
+     char *s, *d;
+     struct ps_line *curp = &psl_p[0];
+     struct ps_line *endp = &psl_p[MAXBUF-1];
+@@ -86,8 +87,8 @@
+ 
+     i = 0;
+     if ((ps_fp = (popen(cmd[PS_CMD], "r"))) != NULL) {
+-	fgets(line, MAXREAD, ps_fp);	/* skip header */
+-	while (fgets(line, MAXREAD, ps_fp)) {
++	getline(&line, &linelen, ps_fp);	/* skip header */
++	while (getline(&line, &linelen, ps_fp) != -1) {
+ 	    s = line;
+ 	    if (*s != '\?' && curp <= endp) {	/* only interested in lines that
+ 						 * have a tty */
+@@ -98,7 +99,7 @@
+ 		while (isspace(*s))	/* skip spaces */
+ 		    s++;
+ 		d = pid;
+-		for (x = 0; (!isspace(*s)) && (*d++ = *s++) && x <= UT_LINESIZE; x++)	/* grab pid */
++		for (x = 0; (!isspace(*s)) && (*d++ = *s++) && x <= UT_PIDSIZE; x++)	/* grab pid */
+ 		    ;
+ 		*d = '\0';
+ 		curp->ps_pid = atoi(pid);
+@@ -113,11 +114,13 @@
+ 		    s++;
+ 		for (x = 0; (*d++ = *s++) && x <= MAXLENGTH; x++)	/* cmd + args */
+ 		    ;
++		*d = '\0';
+ 		i++;
+ 		curp++;
+ 	    }
+ 	}
+ 	pclose(ps_fp);
++    free(line);
+     } else {
+ 	fprintf(stderr, "\nfailed running 'ps' !\n");
+ 	exit(EXIT_FAILURE);
diff --git a/chkrootkit.spec b/chkrootkit.spec
index 814e2a5..4294ad3 100644
--- a/chkrootkit.spec
+++ b/chkrootkit.spec
@@ -1,6 +1,6 @@
 Name:           chkrootkit
 Version:        0.49
-Release:        2%{?dist}
+Release:        3%{?dist}
 Summary:        Tool to locally check for signs of a rootkit
 Group:          Applications/System
 License:        BSD and GPLv2+ and Python
@@ -124,6 +124,9 @@ rm -rf ${RPM_BUILD_ROOT}
 
 
 %changelog
+* Tue Feb 25 2014 Manuel "lonely wolf" Wolfshant <wolfy at fedoraproject.org> - 0.49-3
+- update chkutmp-outofbounds.patch with the one from fedora. should fix #1069632
+
 * Fri Jul 02 2010 Manuel "lonely wolf" Wolfshant <wolfy at fedoraproject.org> - 0.49 -2
 - add BR for glibc-static, allowing to build in EL-6
  


More information about the scm-commits mailing list