diff options
author | Antonio Borneo <borneo.antonio@gmail.com> | 2022-06-19 22:10:47 +0200 |
---|---|---|
committer | Antonio Borneo <borneo.antonio@gmail.com> | 2022-06-24 21:54:46 +0000 |
commit | a70bab9e5185c8853882748737ceebabde7c4781 (patch) | |
tree | 2b95d9e505ae92ac3fd86bc99b84c7931a8ba407 /src/helper | |
parent | 573a39b36cf133bb7403b12337301a5616112f1a (diff) | |
download | riscv-openocd-a70bab9e5185c8853882748737ceebabde7c4781.zip riscv-openocd-a70bab9e5185c8853882748737ceebabde7c4781.tar.gz riscv-openocd-a70bab9e5185c8853882748737ceebabde7c4781.tar.bz2 |
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 <borneo.antonio@gmail.com>
Reported-by: Dietmar May <dietmar.may@outlook.com>
Reviewed-on: https://review.openocd.org/c/openocd/+/7038
Tested-by: jenkins
Reviewed-by: Dietmar May <dietmar.may@outlook.com>
Diffstat (limited to 'src/helper')
-rw-r--r-- | src/helper/configuration.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/helper/configuration.c b/src/helper/configuration.c index 7e791d0..614892c 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) { |