[PATCH RESEND] elf2dmp: free memory in failure

luzhipeng posted 1 patch 1 year, 6 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20221007020128.760-1-luzhipeng@cestc.cn
Maintainers: Viktor Prutyanov <viktor.prutyanov@phystech.edu>
contrib/elf2dmp/main.c | 1 +
1 file changed, 1 insertion(+)
[PATCH RESEND] elf2dmp: free memory in failure
Posted by luzhipeng 1 year, 6 months ago
From: lu zhipeng <luzhipeng@cestc.cn>

The 'kdgb' is allocating memory in get_kdbg(), but it is not freed in
error path. So fix that.

Signed-off-by: lu zhipeng <luzhipeng@cestc.cn>
---
 contrib/elf2dmp/main.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/contrib/elf2dmp/main.c b/contrib/elf2dmp/main.c
index b9fc6d230c..d77b8f98f7 100644
--- a/contrib/elf2dmp/main.c
+++ b/contrib/elf2dmp/main.c
@@ -125,6 +125,7 @@ static KDDEBUGGER_DATA64 *get_kdbg(uint64_t KernBase, struct pdb_reader *pdb,
 
     if (va_space_rw(vs, KdDebuggerDataBlock, kdbg, kdbg_hdr.Size, 0)) {
         eprintf("Failed to extract entire KDBG\n");
+        free(kdbg);
         return NULL;
     }
 
-- 
2.31.1
Re: [PATCH RESEND] elf2dmp: free memory in failure
Posted by Laurent Vivier 1 year, 6 months ago
Le 07/10/2022 à 04:01, luzhipeng a écrit :
> From: lu zhipeng <luzhipeng@cestc.cn>
> 
> The 'kdgb' is allocating memory in get_kdbg(), but it is not freed in
> error path. So fix that.
> 
> Signed-off-by: lu zhipeng <luzhipeng@cestc.cn>
> ---
>   contrib/elf2dmp/main.c | 1 +
>   1 file changed, 1 insertion(+)
> 
> diff --git a/contrib/elf2dmp/main.c b/contrib/elf2dmp/main.c
> index b9fc6d230c..d77b8f98f7 100644
> --- a/contrib/elf2dmp/main.c
> +++ b/contrib/elf2dmp/main.c
> @@ -125,6 +125,7 @@ static KDDEBUGGER_DATA64 *get_kdbg(uint64_t KernBase, struct pdb_reader *pdb,
>   
>       if (va_space_rw(vs, KdDebuggerDataBlock, kdbg, kdbg_hdr.Size, 0)) {
>           eprintf("Failed to extract entire KDBG\n");
> +        free(kdbg);
>           return NULL;
>       }
>   

Applied to my trivial-patches branch.

Thanks,
Laurent


Re: [PATCH RESEND] elf2dmp: free memory in failure
Posted by Viktor Prutyanov 1 year, 6 months ago
On 10/7/22 5:01 AM, luzhipeng wrote:
> From: lu zhipeng <luzhipeng@cestc.cn>
> 
> The 'kdgb' is allocating memory in get_kdbg(), but it is not freed in
> error path. So fix that.
> 
> Signed-off-by: lu zhipeng <luzhipeng@cestc.cn>
> ---
>   contrib/elf2dmp/main.c | 1 +
>   1 file changed, 1 insertion(+)
> 
> diff --git a/contrib/elf2dmp/main.c b/contrib/elf2dmp/main.c
> index b9fc6d230c..d77b8f98f7 100644
> --- a/contrib/elf2dmp/main.c
> +++ b/contrib/elf2dmp/main.c
> @@ -125,6 +125,7 @@ static KDDEBUGGER_DATA64 *get_kdbg(uint64_t KernBase, struct pdb_reader *pdb,
>   
>       if (va_space_rw(vs, KdDebuggerDataBlock, kdbg, kdbg_hdr.Size, 0)) {
>           eprintf("Failed to extract entire KDBG\n");
> +        free(kdbg);
>           return NULL;
>       }
>   
> 

I suppose Philippe's R-b should be on this version of the patch, not 
previous one. Also I'm not sure if this patch should go through Paolo's 
branch or QEMU Trivial.

Reviewed-by: Viktor Prutyanov <viktor.prutyanov@phystech.edu>