]> granicus.if.org Git - procps-ng/commitdiff
library: slab sort derefence after check
authorCraig Small <csmall@dropbear.xyz>
Sat, 14 May 2016 12:32:35 +0000 (22:32 +1000)
committerCraig Small <csmall@dropbear.xyz>
Sat, 14 May 2016 12:32:35 +0000 (22:32 +1000)
procps_slabnode_stacks_sort() would check if stacks was NULL
*after* the pointer was derefenced in the initialisation of
the variable p.

p is now assigned after the check.

References:
 Coverity #99160

proc/slab.c

index a3c5dca6d72827f8f906736dc2cebbffa1140652..b72fcb5d595302542e39b230b2d441a0c76327f1 100644 (file)
@@ -836,11 +836,12 @@ PROCPS_EXPORT struct slabnode_stack **procps_slabnode_stacks_sort (
         enum slabnode_item sort)
 {
  #define QSORT_r  int (*)(const void *, const void *, void *)
-    struct slab_result *p = stacks[0]->head;
+    struct slab_result *p;
     int offset = 0;;
 
     if (info == NULL || stacks == NULL)
         return NULL;
+
     if (sort < 0  || sort > PROCPS_SLABNODE_noop)
         return NULL;
     if (numstacked > info->stacked->depth)
@@ -851,6 +852,7 @@ PROCPS_EXPORT struct slabnode_stack **procps_slabnode_stacks_sort (
     if (numstacked > info->stacked->inuse)
         numstacked = info->stacked->inuse;
 
+    p = stacks[0]->head;
     for (;;) {
         if (p->item == sort)
             break;