From: Antonio Borneo Date: Sun, 19 Jun 2022 20:10:47 +0000 (+0200) Subject: helper: fix build with mingw gcc 12.1.0 X-Git-Url: https://git.gag.com/?a=commitdiff_plain;h=a70bab9e5185c8853882748737ceebabde7c4781;p=fw%2Fopenocd helper: fix build with mingw gcc 12.1.0 New mingw compiler correctly complains for using a freed memory area: src/helper/configuration.c: In function 'get_home_dir': src/helper/configuration.c:182:29: error: dangling pointer 'home' to 'homepath' may be used [-Werror=dangling-pointer=] 182 | home_path = alloc_printf("%s/%s", home, append_path); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In fact the variable 'homepath' is declared inside an 'if' branch and is not available outside. Move the declaration of 'homepath' to have it available in a wider context. Change-Id: I4a43a03c007c9f0d5c4cee962a9f7cc83ca49637 Signed-off-by: Antonio Borneo Reported-by: Dietmar May Reviewed-on: https://review.openocd.org/c/openocd/+/7038 Tested-by: jenkins Reviewed-by: Dietmar May --- diff --git a/src/helper/configuration.c b/src/helper/configuration.c index 7e791d084..614892c8a 100644 --- a/src/helper/configuration.c +++ b/src/helper/configuration.c @@ -148,6 +148,10 @@ int parse_config_file(struct command_context *cmd_ctx) char *get_home_dir(const char *append_path) { +#ifdef _WIN32 + char homepath[MAX_PATH]; +#endif + char *home = getenv("HOME"); if (!home) { @@ -156,8 +160,6 @@ char *get_home_dir(const char *append_path) home = getenv("USERPROFILE"); if (!home) { - - char homepath[MAX_PATH]; char *drive = getenv("HOMEDRIVE"); char *path = getenv("HOMEPATH"); if (drive && path) {