This is an automated email from Gerrit.

Antonio Borneo ([email protected]) just uploaded a new patch set to 
Gerrit, which you can find at http://openocd.zylin.com/4924

-- gerrit

commit b83cafa01e18763296e12b88aa2795881b4d3d65
Author: Antonio Borneo <[email protected]>
Date:   Fri Feb 15 21:31:02 2019 +0100

    aarch64: fix a potential memory leak in aarch64_target_create()
    
    If the function aarch64_target_create() exits for an error, the
    value of pointer aarch64 get lost, causing a memory leak.
    
    Move the allocation of aarch64 after the check on the parameters.
    While there, add a check on the value returned by calloc().
    
    Issue highlighted by clang 7.0.0.
    
    Change-Id: Ib9ad27f4acd940da308c01fdbf33cfe51ab0c639
    Signed-off-by: Antonio Borneo <[email protected]>

diff --git a/src/target/aarch64.c b/src/target/aarch64.c
index 63174c2..2357eb2 100644
--- a/src/target/aarch64.c
+++ b/src/target/aarch64.c
@@ -2396,11 +2396,17 @@ static int aarch64_init_arch_info(struct target *target,
 static int aarch64_target_create(struct target *target, Jim_Interp *interp)
 {
        struct aarch64_private_config *pc = target->private_config;
-       struct aarch64_common *aarch64 = calloc(1, sizeof(struct 
aarch64_common));
+       struct aarch64_common *aarch64;
 
        if (adiv5_verify_config(&pc->adiv5_config) != ERROR_OK)
                return ERROR_FAIL;
 
+       aarch64 = calloc(1, sizeof(struct aarch64_common));
+       if (aarch64 == NULL) {
+               LOG_ERROR("Out of memory");
+               return ERROR_FAIL;
+       }
+
        return aarch64_init_arch_info(target, aarch64, pc->adiv5_config.dap);
 }
 

-- 


_______________________________________________
OpenOCD-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openocd-devel

Reply via email to