]> granicus.if.org Git - procps-ng/commitdiff
library: tweak new interface code and improve comments
authorJim Warner <james.warner@comcast.net>
Mon, 13 Jul 2015 05:00:00 +0000 (00:00 -0500)
committerCraig Small <csmall@enc.com.au>
Wed, 15 Jul 2015 11:25:09 +0000 (21:25 +1000)
With a little help from smatch, this commit eliminates
some inappropriate code. Also some programmer comments
were (barely) improved (i hope) in some small measure.

Reference(s):
smatch: 406 procps_meminfo_chain_fill() warn: variable dereferenced before check 'chain' (see line 403)

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

index 61d180b8aad2d58cbf7e6f535f32a7b10ea30595..494524694e53b0c91ac61abab6609ddb9dffc8a1 100644 (file)
@@ -400,16 +400,14 @@ PROCPS_EXPORT int procps_meminfo_chain_fill (
         struct procps_meminfo *info,
         struct meminfo_chain *chain)
 {
-    struct meminfo_result *these = chain->head;
     int rc;
 
-    if (info == NULL || chain == NULL || these == NULL)
+    if (info == NULL || chain == NULL || chain->head == NULL)
         return -EINVAL;
-
     if ((rc == procps_meminfo_read(info)) < 0)
         return rc;
 
-    return procps_meminfo_getchain(info, these);
+    return procps_meminfo_getchain(info, chain->head);
 }
 
 static void chains_validate (struct meminfo_chain **v, const char *who)
@@ -535,7 +533,7 @@ static struct meminfo_chain **procps_meminfo_chains_alloc (
  * Allocate and initialize a single result chain under a simplified interface.
  *
  * Such a chain will will have its result structures properly primed with
- * 'items' and 'next' pointers, while the result itself is set to zero.
+ * 'items' and 'next' pointers, while the result itself will be zeroed.
  *
  */
 PROCPS_EXPORT struct meminfo_chain *procps_meminfo_chain_alloc (
index 3c39feda34bfa8ad6cad88a45aa77d4790742762..2029d172dc25d20cfe5e6f3b73a478fd182fca70 100644 (file)
@@ -565,12 +565,10 @@ PROCPS_EXPORT int procps_slabnode_chain_fill (
     struct slabnode_chain *chain,
     int nodeid)
 {
-    struct slabnode_result *these = chain->head;
-
-    if (info == NULL || these == NULL)
+    if (info == NULL || chain == NULL || chain->head == NULL)
         return -EINVAL;
 
-    return procps_slabnode_getchain(info, these, nodeid);
+    return procps_slabnode_getchain(info, chain->head, nodeid);
 }
 
 /*
@@ -746,7 +744,7 @@ PROCPS_EXPORT struct slabnode_chain **procps_slabnode_chains_alloc (
  * Allocate and initialize a single result chain under a simplified interface.
  *
  * Such a chain will will have its result structures properly primed with
- * 'items' and 'next' pointers, while the result itself is set to zero.
+ * 'items' and 'next' pointers, while the result itself will be zeroed.
  *
  */
 PROCPS_EXPORT struct slabnode_chain *procps_slabnode_chain_alloc (
@@ -772,7 +770,7 @@ static int chains_sort (
 {
     const struct slabnode_result *a = (*A)->head + *offset;
     const struct slabnode_result *b = (*B)->head + *offset;
-    // note: strings are sorted normally, but numbers will be high-to-low
+    // note: everything will be sorted high-to-low
     if (a->item == PROCPS_SLABNODE_NAME)
         return strcoll(a->result.str, b->result.str);
     if ( a->result.num > b->result.num ) return -1;
@@ -786,7 +784,7 @@ static int chains_sort (
  * Sort chains anchored as 'heads' in the passed slabnode_chain pointers
  * array based on the designated sort enumerator.
  *
- * Returns the same structure with those pointers sorted.
+ * Returns those same addresses sorted.
  *
  * Note: all of the chains must be homogeneous (of equal length and content).
  */