Building with gcc-4.7.0..., I saw this:

    transform.c: In function 'transform_load':
    transform.c:697:5: warning: 'pathc' may be used uninitialized in
      this function [-Wmaybe-uninitialized]

That warning is legit, since the function looks like this:

    ...
    list_for_each(f, xfm->children) {
        ...
        if (r != 0 && r != GLOB_NOMATCH) {
            ret = -1;
            goto error;
        }
        gl_flags |= GLOB_APPEND;
    }

    ...

    char **pathv = NULL;
    int pathc = globbuf.gl_pathc, pathind = 0;

    ...

 error:
    if (pathv != NULL)
        for (int i=0; i < pathc; i++)
            free(pathv[i]);
    free(pathv);
    ret = -1;
    goto done;
}

So control can reach the uses of pathv and pathc without
before they are initialized.


>From 011238cfb90be0404090c1037fd2757f140d2e06 Mon Sep 17 00:00:00 2001
From: Jim Meyering <meyer...@redhat.com>
Date: Fri, 23 Dec 2011 22:50:24 +0100
Subject: [PATCH] don't use variables uninitialized upon error

* src/transform.c (filter_generate): Move declarations and
initializations of pathv and pathc to precede possible
"goto error;" via which those variables are used.
---
 src/transform.c |    5 ++---
 1 files changed, 2 insertions(+), 3 deletions(-)

diff --git a/src/transform.c b/src/transform.c
index b36b944..de47eb3 100644
--- a/src/transform.c
+++ b/src/transform.c
@@ -179,6 +179,8 @@ static int filter_generate(struct tree *xfm, const char 
*root,
     int gl_flags = glob_flags;
     int r;
     int ret = 0;
+    char **pathv = NULL;
+    int pathc = globbuf.gl_pathc, pathind = 0;

     *nmatches = 0;
     *matches = NULL;
@@ -199,9 +201,6 @@ static int filter_generate(struct tree *xfm, const char 
*root,
         gl_flags |= GLOB_APPEND;
     }

-    char **pathv = NULL;
-    int pathc = globbuf.gl_pathc, pathind = 0;
-
     if (ALLOC_N(pathv, pathc) < 0)
         goto error;

--
1.7.8.1.367.g25ecc

_______________________________________________
augeas-devel mailing list
augeas-devel@redhat.com
https://www.redhat.com/mailman/listinfo/augeas-devel

Reply via email to