From: Zbigniew Jędrzejewski-Szmek Date: Wed, 31 Mar 2021 15:46:04 +0000 (+0200) Subject: shared/pretty-print: silence gcc warning X-Git-Tag: v249-rc1~490^2~3 X-Git-Url: http://git-history.diyao.me/?a=commitdiff_plain;h=1c93632ead00e04b76900966104c17419234dea1;p=systemd%2F.git shared/pretty-print: silence gcc warning gcc was very unhappy for some reason: [988/1664] Compiling C object systemd-oomd.p/src_oom_oomd.c.o In file included from ../src/basic/path-util.h:10, from ../src/shared/pretty-print.c:14, from ../src/oom/oomd.c:15: ../src/shared/pretty-print.c: In function ‘conf_files_cat’: ../src/basic/strv.h:123:32: warning: ‘prefixes’ may be used uninitialized [-Wmaybe-uninitialized] 123 | for ((s) = (l); (s) && *(s); (s)++) | ^ In file included from ../src/oom/oomd.c:15: ../src/shared/pretty-print.c:283:16: note: ‘prefixes’ was declared here 283 | char **prefixes, **prefix; | ^~~~~~~~ ../src/shared/pretty-print.c:305:12: warning: ‘is_collection’ may be used uninitialized in this function [-Wmaybe-uninitialized] 305 | if (!is_collection) { | ^ ../src/shared/pretty-print.c:301:13: warning: ‘extension’ may be used uninitialized in this function [-Wmaybe-uninitialized] 301 | r = conf_files_list_strv(&files, extension, root, 0, (const char* const*) dirs); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Maybe this is caused by the statis char** variables? --- diff --git a/src/shared/pretty-print.c b/src/shared/pretty-print.c index 0f02f32760..137ba77b3a 100644 --- a/src/shared/pretty-print.c +++ b/src/shared/pretty-print.c @@ -280,7 +280,7 @@ static int guess_type(const char **name, char ***prefixes, bool *is_collection, int conf_files_cat(const char *root, const char *name) { _cleanup_strv_free_ char **dirs = NULL, **files = NULL; _cleanup_free_ char *path = NULL; - char **prefixes, **prefix; + char **prefix, **prefixes = NULL; /* explicit initialization to appease gcc */ bool is_collection; const char *extension; char **t; @@ -289,6 +289,8 @@ int conf_files_cat(const char *root, const char *name) { r = guess_type(&name, &prefixes, &is_collection, &extension); if (r < 0) return r; + assert(prefixes); + assert(extension); STRV_FOREACH(prefix, prefixes) { assert(endswith(*prefix, "/"));