]> granicus.if.org Git - procps-ng/commitdiff
warning directs users to the FAQ
authoralbert <>
Tue, 18 Feb 2003 03:51:03 +0000 (03:51 +0000)
committeralbert <>
Tue, 18 Feb 2003 03:51:03 +0000 (03:51 +0000)
NEWS
proc/readproc.c
procps.lsm
ps/common.h
ps/display.c
ps/parser.c
ps/select.c

diff --git a/NEWS b/NEWS
index 5787a254bf81ffe66509098cebb56d032afa0d6c..0a33583e0233736e2151ec8b5399d8d360d9f1c8 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,14 +1,19 @@
+procps-3.1.6 --> procps-3.1.7
+
+ps: warning directs users to the FAQ
+
 procps-3.1.5 --> procps-3.1.6
 
 handle the 2.5.61 kernel
 top: memory leak fixed
 ps: new --ppid option selects by PPID
-watch: new --no-title option     #179862
+watch: new --no-title option              #179862
 handle SPARC Linux badness
 rare crash fixed
 compile with gcc 2.91.xx again
 more informative "ps --info"
 README update
+ps: compare more with "ps -C verylongname"     #178127
 
 procps-3.1.4 --> procps-3.1.5
 
index 941d7a83b7dabb6b4d4b06af343924377686622f..2c6162fa51761770605406054f710d1c4bb2b49f 100644 (file)
@@ -235,20 +235,21 @@ ENTER(0x220);
         P->fgid = strtol(S,&S,10);
         continue;
     case_Name:{
-        int i = 0;
-        while(i < sizeof P->cmd - 1){
+        unsigned u = 0;
+        while(u < sizeof P->cmd - 1u){
             int c = *S++;
             if(unlikely(c=='\n')) break;
-            if(unlikely(c=='\0')) return; // should never happen
+            if(unlikely(c=='\0')) break; // should never happen
             if(unlikely(c=='\\')){
                 c = *S++;
                 if(c=='\n') break; // should never happen
                 if(!c)      break; // should never happen
                 if(c=='n') c='\n'; // else we assume it is '\\'
             }
-            P->cmd[i++] = c;
+            P->cmd[u++] = c;
         }
-        P->cmd[i] = '\0';
+        P->cmd[u] = '\0';
+        S--;   // put back the '\n' or '\0'
         continue;
     }
     case_PPid:
index 78e06ec694bccaa1a06c02bb549ca10732a5ea3d..6ed2b3b9bdd9eae02d81cd3244a0d6481e4d0ad1 100644 (file)
@@ -1,15 +1,15 @@
 Begin4
 Title: procps
 Version: 3.1.6
-Entered-date: 2002-12-14
+Entered-date: 2003-2-17
 Description: Linux system utilities
 Keywords: procps /proc libproc sysctl pmap
        ps uptime tload free w top vmstat watch skill snice kill pgrep pkill
 Author: Albert Cahalan, Michael K. Johnson, Jim Warner, etc.
 Maintained-by: various <procps-feedback@lists.sf.net>
 Primary-site: http://procps.sf.net/
-       236kB procps-3.1.6.tar.gz
+       238kB procps-3.1.6.tar.gz
 Alternate-site: http://www.debian.org/Packages/unstable/base/procps.html
-       236kB procps-3.1.6.tar.gz
+       238kB procps-3.1.6.tar.gz
 Copying-policy: mixed
 End
index 5cea9341bd205647cac68dfb8d3820219ec0f9ed..48d4cff50978c18d8dcef32c0d65576bd0ecdff6 100644 (file)
@@ -148,7 +148,7 @@ typedef union sel_union {
   uid_t uid;
   gid_t gid;
   dev_t tty;
-  char  cmd[8];  /* this is _not_ \0 terminated */
+  char  cmd[16];  /* this is _not_ \0 terminated */
 } sel_union;
 
 typedef struct selection_node {
index bb791076d635feaf5ab59a20c592327a724dd7aa..2437a215e4412840d14d4ac4369244262704d7b7 100644 (file)
@@ -246,7 +246,6 @@ static void simple_spew(void){
     exit(1);
   }
   memset(&buf, '#', sizeof(proc_t));
-  /* use "ps_" prefix to catch library mismatch */
   while(ps_readproc(ptp,&buf)){
     if(want_this_proc(&buf)) show_one_proc(&buf);
     if(buf.cmdline) free((void*)*buf.cmdline); // ought to reuse
index 6f250043af5a638a90624642efb2fe1f9e96df7c..a0d0edd91ba1772985ebde8ceaf67a975d2e3f6a 100644 (file)
@@ -121,7 +121,7 @@ static const char *parse_gid(char *str, sel_union *ret){
 }
 
 static const char *parse_cmd(char *str, sel_union *ret){
-  strncpy(ret->cmd, str, 8);  /* strncpy pads to end */
+  strncpy(ret->cmd, str, sizeof ret->cmd);  // strncpy pads to end
   return 0;
 }
 
@@ -1130,8 +1130,17 @@ try_bsd:
   err2 = select_bits_setup();
   if(err2) goto total_failure;
 
+  // Feel a need to patch this out? First of all, read the FAQ.
+  // Second of all, talk to me. Without this warning, people can
+  // get seriously confused. Ask yourself if users would freak out
+  // about "ps -aux" suddenly changing behavior if a user "x" were
+  // added to the system.
   if(!(personality & PER_FORCE_BSD))
-    fprintf(stderr, "Bad syntax, perhaps a bogus '-'?\n");
+    fprintf(stderr, "Warning: bad '-'? See http://procps.sf.net/faq.html\n");
+  // Remember: contact albert@users.sf.net or procps-feedback@lists.sf.net
+  // if you should feel tempted. Be damn sure you understand all
+  // the issues. The same goes for other stuff too, BTW. Please ask.
+  // I'm happy to justify various implementation choices.
 
   choose_dimensions();
   return 0;
index aecc59d4b56819eb59ceb7adcb9ae3d209151e2f..ef41972bb1f0df5d8b72e18fb9a5fae1d21366ba 100644 (file)
@@ -106,9 +106,8 @@ static int proc_was_listed(proc_t *buf){
     break; case SEL_TTY : return_if_match(tty,tty);
     break; case SEL_SESS: return_if_match(session,pid);
 
-    /* TODO Should use a long long cast for performance */
     break; case SEL_COMM: i=sn->n; while(i--)
-    if(!strncmp( buf->cmd, (*(sn->u+i)).cmd, 8 )) return 1;
+    if(!strncmp( buf->cmd, (*(sn->u+i)).cmd, 15 )) return 1;