rpms/procps/FC-3 procps-3.2.5-sysctl-writeonly.patch, NONE, 1.1 procps-3.2.5-top-rc.patch, NONE, 1.1 procps-3.2.5-top-sigwinch.patch, NONE, 1.1 procps-3.2.5-vmstat-parg.patch, NONE, 1.1 procps.spec, 1.26, 1.27

fedora-cvs-commits at redhat.com fedora-cvs-commits at redhat.com
Mon Jul 11 09:58:43 UTC 2005


Author: kzak

Update of /cvs/dist/rpms/procps/FC-3
In directory cvs.devel.redhat.com:/tmp/cvs-serv14346

Modified Files:
	procps.spec 
Added Files:
	procps-3.2.5-sysctl-writeonly.patch procps-3.2.5-top-rc.patch 
	procps-3.2.5-top-sigwinch.patch procps-3.2.5-vmstat-parg.patch 
Log Message:
- fix #161449 - "top" ignores user and system toprc
- fix #161559 - top segfaults when resizing konsole
- fix #160796 - vmstat crashes when accessing LVM partition.
- fix debuginfo
- fix #144459 - sysctl reports error: unknown error <...> reading key '<key>'
  (now sysctl doesn't read data from write-only /proc/sys files)


procps-3.2.5-sysctl-writeonly.patch:
 sysctl.c |   14 ++++++++++++--
 1 files changed, 12 insertions(+), 2 deletions(-)

--- NEW FILE procps-3.2.5-sysctl-writeonly.patch ---
--- procps-3.2.5/sysctl.c.writeonly	2005-01-05 22:00:47.000000000 +0100
+++ procps-3.2.5/sysctl.c	2005-07-11 10:05:12.000000000 +0200
@@ -127,7 +127,8 @@
    char *restrict tmpname;
    char *restrict outname;
    char inbuf[1025];
-   FILE *restrict fp;
+   FILE *restrict fp = NULL;
+   struct stat st;
 
    if (!name || !*name) {
       fprintf(stderr, ERR_INVALID_KEY, name);
@@ -144,7 +145,13 @@
    outname = strdup(name);
    slashdot(outname,'/','.'); /* change / to . */
 
-   fp = fopen(tmpname, "r");
+   if (stat(tmpname, &st)==0) {
+	if (st.st_mode & (S_IRUSR|S_IROTH|S_IRGRP))	   
+	   	fp = fopen(tmpname, "r");
+	else
+		/* ignore write-only files  */
+		return -1;
+   }
 
    if (!fp) {
       switch(errno) {
@@ -158,6 +165,9 @@
          fprintf(stderr, ERR_PERMISSION_DENIED, outname);
          rc = -1;
          break;
+      case EINVAL:  /* fopen()/stat() invalid argument */
+      case ENOTTY:  /* inappropriate ioctl for device */
+	 break;
       default:
          fprintf(stderr, ERR_UNKNOWN_READING, strerror(errno), outname);
          rc = -1;

procps-3.2.5-top-rc.patch:
 top.c |    5 ++++-
 1 files changed, 4 insertions(+), 1 deletion(-)

--- NEW FILE procps-3.2.5-top-rc.patch ---
--- procps-3.2.5/top.c.rc	2005-06-28 22:36:24.000000000 +0200
+++ procps-3.2.5/top.c	2005-06-28 22:40:27.000000000 +0200
@@ -2393,7 +2393,10 @@
    int i;
 
    for (i = 0; i < GROUPSMAX; i++) {
-      win_names(&Winstk[i], Winstk[i].rc.winname);
+      /* Please, never use something like sprintf(x, "%s", x); ... see win_names() */
+      char buf[WINNAMSIZ];
+      strncpy(buf, Winstk[i].rc.winname, WINNAMSIZ);
+      win_names(&Winstk[i], buf);
       capsmk(&Winstk[i]);
    }
    // rely on this next guy to force a call (eventually) to reframewins

procps-3.2.5-top-sigwinch.patch:
 top.c |   29 ++++++++++++++++++++++-------
 1 files changed, 22 insertions(+), 7 deletions(-)

--- NEW FILE procps-3.2.5-top-sigwinch.patch ---
--- procps-3.2.5/top.c.sigwinch	2005-06-28 14:31:18.607714424 +0200
+++ procps-3.2.5/top.c	2005-06-28 14:53:21.179652928 +0200
@@ -140,6 +140,9 @@
            buffer is used, stdout is flushed at frame end or if interactive. */
 static char *Pseudo_scrn;
 static int   Pseudo_row, Pseudo_cols, Pseudo_size;
+
+static int Screen_resized;
+
 #ifndef STDOUT_IOLBF
         // less than stdout's normal buffer but with luck mostly '\n' anyway
 static char  Stdout_buf[2048];
@@ -2298,14 +2301,18 @@
 // Set the screen dimensions and arrange for the real workhorse.
 // (also) catches:
 //    SIGWINCH and SIGCONT
-static void wins_resize (int dont_care_sig)
+static void wins_resize_handler(int dont_care_sig)
+{
+	(void)dont_care_sig;
+	Screen_resized = 1;
+}
+
+static void wins_resize (void)
 {
    struct winsize wz;
    char *env_columns;  // Unix98 environment variable COLUMNS
    char *env_lines;    // Unix98 environment variable LINES
 
-   (void)dont_care_sig;
-
    Screen_cols = columns;   // <term.h>
    Screen_rows = lines;     // <term.h>
 
@@ -2349,6 +2356,9 @@
 
    // force rebuild of column headers AND libproc/readproc requirements
    Frames_libflags = 0;
+
+   Screen_resized = 0;
+   
    ZAP_TIMEOUT
 }
 
@@ -2397,7 +2407,7 @@
       capsmk(&Winstk[i]);
    }
    // rely on this next guy to force a call (eventually) to reframewins
-   wins_resize(0);
+   wins_resize();
 }
 
 
@@ -2429,7 +2439,7 @@
 
       case 'A':
          Rc.mode_altscr = !Rc.mode_altscr;
-         wins_resize(0);
+         wins_resize();
          break;
 
       case 'b':
@@ -3262,8 +3272,8 @@
    signal(SIGTSTP,  suspend);
    signal(SIGTTIN,  suspend);
    signal(SIGTTOU,  suspend);
-   signal(SIGCONT,  wins_resize);
-   signal(SIGWINCH, wins_resize);
+   signal(SIGCONT,  wins_resize_handler);
+   signal(SIGWINCH, wins_resize_handler);
 
    for (;;) {
       frame_make();
@@ -3277,6 +3287,8 @@
 
       if (Batch) {
          select(0, NULL, NULL, NULL, &tv);  // ought to loop until done
+	 if (Screen_resized)
+		 wins_resize();
       } else {
          long file_flags;
          int rc;
@@ -3298,6 +3310,9 @@
             select(1, &fs, NULL, NULL, &tv);
             fcntl(STDIN_FILENO, F_SETFL, O_NONBLOCK|file_flags);
          }
+	 if (Screen_resized)
+		 /* maybe select() wake up after signal */
+		 wins_resize();
          if (chin(0, &c, 1) > 0) {
             fcntl(STDIN_FILENO, F_SETFL, file_flags);
             do_key((unsigned)c);

procps-3.2.5-vmstat-parg.patch:
 vmstat.c |    2 +-
 1 files changed, 1 insertion(+), 1 deletion(-)

--- NEW FILE procps-3.2.5-vmstat-parg.patch ---
--- procps-3.2.5/vmstat.c.parg	2005-06-28 14:57:15.819982176 +0200
+++ procps-3.2.5/vmstat.c	2005-06-28 14:57:38.801488456 +0200
@@ -608,7 +608,7 @@
         statMode |= PARTITIONSTAT;
 	if (argv[1]){
 	           ++argv;
-		   sprintf(partition, "%s", *argv);
+		   snprintf(partition, sizeof(partition), "%s", *argv);
 	 }else{fprintf(stderr, "-p requires an argument\n");
                exit(EXIT_FAILURE);
 	}


Index: procps.spec
===================================================================
RCS file: /cvs/dist/rpms/procps/FC-3/procps.spec,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -r1.26 -r1.27
--- procps.spec	17 Mar 2005 14:11:25 -0000	1.26
+++ procps.spec	11 Jul 2005 09:58:39 -0000	1.27
@@ -1,7 +1,7 @@
 Summary: System and process monitoring utilities.
 Name: procps
 Version: 3.2.3
-Release: 5.2
+Release: 5.3
 License: GPL
 Group: Applications/System
 Source: http://procps.sourceforge.net/procps-%{version}.tar.gz
@@ -19,6 +19,14 @@
 Patch12: procps-3.2.3-slablong.patch
 Patch13: procps-3.2.3-fullpath.patch
 Patch14: procps-3.2.3-pseudo.patch
+# 157725 - sysctl -A returns an error
+Patch15: procps-3.2.5-sysctl-writeonly.patch
+# 161449 - "top" ignores user and system toprc
+Patch16: procps-3.2.5-top-rc.patch
+# 161559 - top segfaults when resizing konsole
+Patch17: procps-3.2.5-top-sigwinch.patch
+# 160796 - vmstat crashes when accessing LVM partition.
+Patch18: procps-3.2.5-vmstat-parg.patch
 
 BuildRequires: ncurses-devel
 
@@ -55,6 +63,10 @@
 %patch12 -p1 -b .slablong
 %patch13 -p1 -b .fullpath
 %patch14 -p1 -b .pseudo
+%patch15 -p1 -b .writeonly
+%patch16 -p1 -b .rc
+%patch17 -p1 -b .sigwinch
+%patch18 -p1 -b .parg
 
 cp %SOURCE1 .
 
@@ -88,6 +100,14 @@
 %attr(0644,root,root) %{_mandir}/man5/*
 
 %changelog
+* Mon Jul 11 2006 Karel Zak <kzak at redhat.com> 3.2.3-5.3
+- fix #161449 - "top" ignores user and system toprc
+- fix #161559 - top segfaults when resizing konsole
+- fix #160796 - vmstat crashes when accessing LVM partition.
+- fix debuginfo
+- fix #144459 - sysctl reports error: unknown error <...> reading key '<key>'
+  (now sysctl doesn't read data from write-only /proc/sys files)
+
 * Thu Mar 17 2006 Karel Zak <kzak at redhat.com> 3.2.3-5.2
 - fix pmap truncates filenames of mappings (#142751)
 - fix slabtop calculation overflow (#151376)
@@ -315,7 +335,7 @@
 * Mon Apr 15 2002 Bill Nottingham <notting at redhat.com> 2.0.7-12
 - add ldconfig in %postun
 
-* Mon Aug 27 2001 Trond Eivind Glomsrød <teg at redhat.com> 2.0.7-11
+* Mon Aug 27 2001 Trond Eivind Glomsrod <teg at redhat.com> 2.0.7-11
 - Add ncurses-devel as a build dependency (#49562)
 
 * Sat Jul 21 2001 Tim Powers <timp at redhat.com>




More information about the fedora-cvs-commits mailing list