[PATCH] powerpc/nvram: Fix a memory leak in err path
Subsystems:
linux for powerpc (32-bit and 64-bit) , the rest
STALE3640d
4 messages,
4 authors,
2016-09-20 · open the first message on its own page
If kmemdup fails, We need kfree *buff* first then return -ENOMEM.
Otherwise there is a memory leak.
Signed-off-by: Pan Xinhui <redacted>
---
arch/powerpc/kernel/nvram_64.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/powerpc/kernel/nvram_64.c b/arch/powerpc/kernel/nvram_64.c
index 32e2652..21a278b7 100644
--- a/arch/powerpc/kernel/nvram_64.c
+++ b/arch/powerpc/kernel/nvram_64.c @@ -542,9 +542,9 @@ static ssize_t nvram_pstore_read(u64 *id, enum pstore_type_id *type,
time -> tv_nsec = 0 ;
}
* buf = kmemdup ( buff + hdr_size , length , GFP_KERNEL );
+ kfree ( buff );
if ( * buf == NULL )
return - ENOMEM ;
- kfree ( buff );
if ( err_type == ERR_TYPE_KERNEL_PANIC_GZ )
* compressed = true ; --
2.5.0
On 12/09/2015 04:00 AM, xinhui wrote:
If kmemdup fails, We need kfree *buff* first then return -ENOMEM.
Otherwise there is a memory leak.
Signed-off-by: Pan Xinhui <redacted>
Reviewed-by: Nathan Fontenot <redacted>
quoted hunk ---
arch/powerpc/kernel/nvram_64.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/powerpc/kernel/nvram_64.c b/arch/powerpc/kernel/nvram_64.c
index 32e2652..21a278b7 100644
--- a/arch/powerpc/kernel/nvram_64.c
+++ b/arch/powerpc/kernel/nvram_64.c @@ -542,9 +542,9 @@ static ssize_t nvram_pstore_read(u64 *id, enum pstore_type_id *type,
time -> tv_nsec = 0 ;
}
* buf = kmemdup ( buff + hdr_size , length , GFP_KERNEL );
+ kfree ( buff );
if ( * buf == NULL )
return - ENOMEM ;
- kfree ( buff );
if ( err_type == ERR_TYPE_KERNEL_PANIC_GZ )
* compressed = true ;
On 2015/12/9 23:21, Nathan Fontenot wrote: On 12/09/2015 04:00 AM, xinhui wrote: quoted
If kmemdup fails, We need kfree *buff* first then return -ENOMEM.
Otherwise there is a memory leak.
Signed-off-by: Pan Xinhui <redacted>
Reviewed-by: Nathan Fontenot <redacted>
Hi Nathan,
thank you for doing that :)
thanks
xinhui
quoted ---
arch/powerpc/kernel/nvram_64.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/powerpc/kernel/nvram_64.c b/arch/powerpc/kernel/nvram_64.c
index 32e2652..21a278b7 100644
--- a/arch/powerpc/kernel/nvram_64.c
+++ b/arch/powerpc/kernel/nvram_64.c @@ -542,9 +542,9 @@ static ssize_t nvram_pstore_read(u64 *id, enum pstore_type_id *type,
time -> tv_nsec = 0 ;
}
* buf = kmemdup ( buff + hdr_size , length , GFP_KERNEL );
+ kfree ( buff );
if ( * buf == NULL )
return - ENOMEM ;
- kfree ( buff );
if ( err_type == ERR_TYPE_KERNEL_PANIC_GZ )
* compressed = true ;
On Wed, 2015-09-12 at 10:00:53 UTC, xinhui wrote: If kmemdup fails, We need kfree *buff* first then return -ENOMEM.
Otherwise there is a memory leak.
Signed-off-by: Pan Xinhui <redacted>
Reviewed-by: Nathan Fontenot <redacted>
Applied to powerpc next, thanks.
https://git.kernel.org/powerpc/c/0d0fecc5b5bfddb0e67bef985c
cheers