changeset 1496:a2796b4cef49 draft

Respond to two static analysis issues in dirtree_path() reported by Ashwini Sharma. dirtree->name is an array, not a pointer, so can't be zero. Remove the test. We dereference plen without checking it for null but calling dirtree_path(0, 0) is pilot error: only the _first_ call can have plen = 0. Add a comment.
author Rob Landley <rob@landley.net>
date Mon, 22 Sep 2014 07:52:15 -0500
parents 4542db35efd8
children f64ca21ed444
files lib/dirtree.c
diffstat 1 files changed, 5 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/lib/dirtree.c	Sun Sep 21 22:44:20 2014 -0500
+++ b/lib/dirtree.c	Mon Sep 22 07:52:15 2014 -0500
@@ -71,12 +71,16 @@
 
 // Return path to this node, assembled recursively.
 
+// Initial call can pass in NULL to plen, or point to an int initialized to 0
+// to return the length of the path, or a value greater than 0 to allocate
+// extra space if you want to append your own text to the string.
+
 char *dirtree_path(struct dirtree *node, int *plen)
 {
   char *path;
   int len;
 
-  if (!node || !node->name) {
+  if (!node) {
     path = xmalloc(*plen);
     *plen = 0;
     return path;