This is an automated email from Gerrit.

"Antonio Borneo <borneo.anto...@gmail.com>" just uploaded a new patch set to 
Gerrit, which you can find at https://review.openocd.org/c/openocd/+/7038

-- gerrit

commit 32348220eea3aec24e9bece61d333cb9e3009246
Author: Antonio Borneo <borneo.anto...@gmail.com>
Date:   Sun Jun 19 22:10:47 2022 +0200

    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.anto...@gmail.com>
    Reported-by: Dietmar May <dietmar....@outlook.com>

diff --git a/src/helper/configuration.c b/src/helper/configuration.c
index 7e791d0848..614892c8a9 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) {

-- 

Reply via email to