lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Thu, 25 Aug 2016 13:46:10 -0400 (EDT)
From:   Nicolas Pitre <nicolas.pitre@...aro.org>
To:     SF Markus Elfring <elfring@...rs.sourceforge.net>
cc:     linux-arm-kernel@...ts.infradead.org,
        Al Viro <viro@...iv.linux.org.uk>,
        Dave Weinstein <olorin@...gle.com>,
        Jeff Layton <jeff.layton@...marydata.com>,
        Kees Cook <keescook@...omium.org>,
        Russell King <linux@...linux.org.uk>,
        LKML <linux-kernel@...r.kernel.org>,
        kernel-janitors@...r.kernel.org,
        Julia Lawall <julia.lawall@...6.fr>,
        Paolo Bonzini <pbonzini@...hat.com>
Subject: Re: [PATCH] arm: sys_oabi-compat: Use kmalloc_array() in two
 functions

On Thu, 25 Aug 2016, SF Markus Elfring wrote:

> From: Markus Elfring <elfring@...rs.sourceforge.net>
> Date: Thu, 25 Aug 2016 17:45:23 +0200
> 
> Multiplications for the size determination of memory allocations
> indicated that array data structures should be processed.
> Thus use the corresponding function "kmalloc_array".
> 
> This issue was detected by using the Coccinelle software.
> 
> Signed-off-by: Markus Elfring <elfring@...rs.sourceforge.net>

The use of kmalloc_array() introduces a duplicate of the size capping 
check that already exists in the code.  However it seems that gcc is 
smart enough to figure that out and doesn't emit it twice.

Note that I'm not implying that the existing check should be removed if 
this patch is applied though. Having it there makes the code clearer. 
But if this patch makes a Coccinelle script happier then ...

Acked-by: Nicolas Pitre <nico@...aro.org>

> ---
>  arch/arm/kernel/sys_oabi-compat.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/arch/arm/kernel/sys_oabi-compat.c b/arch/arm/kernel/sys_oabi-compat.c
> index 5f221ac..e624db9 100644
> --- a/arch/arm/kernel/sys_oabi-compat.c
> +++ b/arch/arm/kernel/sys_oabi-compat.c
> @@ -285,7 +285,7 @@ asmlinkage long sys_oabi_epoll_wait(int epfd,
>  		return -EINVAL;
>  	if (!access_ok(VERIFY_WRITE, events, sizeof(*events) * maxevents))
>  		return -EFAULT;
> -	kbuf = kmalloc(sizeof(*kbuf) * maxevents, GFP_KERNEL);
> +	kbuf = kmalloc_array(maxevents, sizeof(*kbuf), GFP_KERNEL);
>  	if (!kbuf)
>  		return -ENOMEM;
>  	fs = get_fs();
> @@ -323,7 +323,7 @@ asmlinkage long sys_oabi_semtimedop(int semid,
>  		return -EINVAL;
>  	if (!access_ok(VERIFY_READ, tsops, sizeof(*tsops) * nsops))
>  		return -EFAULT;
> -	sops = kmalloc(sizeof(*sops) * nsops, GFP_KERNEL);
> +	sops = kmalloc_array(nsops, sizeof(*sops), GFP_KERNEL);
>  	if (!sops)
>  		return -ENOMEM;
>  	err = 0;
> -- 
> 2.9.3
> 
> 

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ