]> granicus.if.org Git - procps-ng/commitdiff
library: more miscellaneous pids implementation tweaks
authorJim Warner <james.warner@comcast.net>
Tue, 1 Sep 2015 05:00:00 +0000 (00:00 -0500)
committerCraig Small <csmall@enc.com.au>
Thu, 3 Sep 2015 12:37:50 +0000 (22:37 +1000)
A patch containing the following miscellaneous tweaks:

. make a supposedly robust parameter test truly robust
[ ensure the largest enum value used with validation ]

. remove duplicate item test in cleanup_stack function
[ is already subordinate to test of PROCPS_PIDS_noop ]

Signed-off-by: Jim Warner <james.warner@comcast.net>
proc/pids.c

index 54432cccb9c89b5e5725f5f98f34f7c19edaf885..16eac33a865faa16fec252eb8ae47e82e1673a54 100644 (file)
@@ -739,8 +739,7 @@ static inline void cleanup_stack (
         if (p->item < PROCPS_PIDS_noop) {
             if (Item_table[p->item].freefunc)
                 Item_table[p->item].freefunc(p);
-            if (p->item < PROCPS_PIDS_noop)
-                p->result.ull_int = 0;
+            p->result.ull_int = 0;
         }
         ++p;
     }
@@ -802,7 +801,7 @@ static inline int items_check_failed (
      *                               ^~~~~~~~~~~~~~~~
      */
     if (maxitems < 1
-    || (void *)items < (void *)PROCPS_PIDS_physical_end)
+    || (void *)items < (void *)0x8000)      // twice as big as our largest enum
         return -1;
     for (i = 0; i < maxitems; i++) {
         // a pids_item is currently unsigned, but we'll protect our future