From: Colin Ian King Date: Tue, 24 Jan 2017 14:38:38 +0000 (+0000) Subject: eeprom: fix memory leak on buf when failed allocation of csraddr_str X-Git-Tag: v5.15~11843^2~98 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=acf50ec773703f7043944aaf957b625a82fc9ce0;p=platform%2Fkernel%2Flinux-starfive.git eeprom: fix memory leak on buf when failed allocation of csraddr_str The error return path When csraddr_str fails to free buf, causing a memory leak. Fix this by returning via the free_buf label that performs the necessary cleanup. Signed-off-by: Colin Ian King Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/misc/eeprom/idt_89hpesx.c b/drivers/misc/eeprom/idt_89hpesx.c index 25d47d0..56bc5c2 100644 --- a/drivers/misc/eeprom/idt_89hpesx.c +++ b/drivers/misc/eeprom/idt_89hpesx.c @@ -965,8 +965,10 @@ static ssize_t idt_dbgfs_csr_write(struct file *filep, const char __user *ubuf, csraddr_len = colon_ch - buf; csraddr_str = kmalloc(sizeof(char)*(csraddr_len + 1), GFP_KERNEL); - if (csraddr_str == NULL) - return -ENOMEM; + if (csraddr_str == NULL) { + ret = -ENOMEM; + goto free_buf; + } /* Copy the register address to the substring buffer */ strncpy(csraddr_str, buf, csraddr_len); csraddr_str[csraddr_len] = '\0';