]> granicus.if.org Git - procps-ng/commitdiff
pgrep: some coverity fixes
authorCraig Small <csmall@enc.com.au>
Wed, 27 Apr 2016 12:50:25 +0000 (22:50 +1000)
committerCraig Small <csmall@enc.com.au>
Wed, 27 Apr 2016 12:50:25 +0000 (22:50 +1000)
procps_ns_get_id should be checked for < 0 not -1
strncpy should copy only to buflen-1 not buflen

References:
  Coverity 99117, 99108, 99107

.gitignore
pgrep.c

index 5b27ad8520b4371f04fec9d58259a3715feafab7..4333f549465c0aa187387f85f6eb8e5c7cd6adc7 100644 (file)
@@ -20,6 +20,7 @@ config.rpath
 config.status
 config.sub
 configure
+cov-int
 depcomp
 free
 INSTALL
diff --git a/pgrep.c b/pgrep.c
index 85e703ad86b02fd99a5f2f1590880b5a6b3d6bc8..dc782875a2c7b5d91cfe32736c04283a22a2f9fd 100644 (file)
--- a/pgrep.c
+++ b/pgrep.c
@@ -264,7 +264,7 @@ static struct el *read_pidfile(void)
     if (n<1)
         goto out;
     pid = strtoul(buf+1,&endp,10);
-    if(endp<=buf+1 || pid<1 || pid>0x7fffffff)
+    if(endp<=buf+1 || pid<1 )
         goto out;
     if(*endp && !isspace(*endp))
         goto out;
@@ -359,7 +359,7 @@ static int conv_ns (const char *restrict name, struct el *restrict e)
 
     ns_flags = 0;
     id = procps_ns_get_id(name);
-    if (id == -1)
+    if (id < 0)
         return 0;
     ns_flags |= (1 << id);
 
@@ -545,16 +545,16 @@ static struct el * select_procs (int *num)
 
         if (opt_long || opt_longlong || (match && opt_pattern)) {
             if (opt_longlong)
-                strncpy (cmdoutput, task_cmdline, CMDSTRSIZE);
+                strncpy (cmdoutput, task_cmdline, CMDSTRSIZE-1);
             else
-                strncpy (cmdoutput, PIDS_GETSTR(CMD), CMDSTRSIZE);
+                strncpy (cmdoutput, PIDS_GETSTR(CMD), CMDSTRSIZE-1);
         }
 
         if (match && opt_pattern) {
             if (opt_full)
-                strncpy (cmdsearch, task_cmdline, CMDSTRSIZE);
+                strncpy (cmdsearch, task_cmdline, CMDSTRSIZE-1);
             else
-                strncpy (cmdsearch, PIDS_GETSTR(CMD), CMDSTRSIZE);
+                strncpy (cmdsearch, PIDS_GETSTR(CMD), CMDSTRSIZE-1);
 
             if (regexec (preg, cmdsearch, 0, NULL, 0) != 0)
                 match = 0;