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