Hi;

On 08/01/2018 02:37, Andrew Turner wrote:
On 7 Jan 2018, at 22:38, Ed Schouten <e...@freebsd.org> wrote:

Author: ed
Date: Sun Jan  7 22:38:45 2018
New Revision: 327684
URL: https://svnweb.freebsd.org/changeset/base/327684

Log:
  Use mallocarray(9) in CloudABI kernel code where possible.

  Submitted by: pfg@

Modified:
  head/sys/compat/cloudabi32/cloudabi32_sock.c
  head/sys/compat/cloudabi64/cloudabi64_sock.c

Modified: head/sys/compat/cloudabi32/cloudabi32_sock.c
==============================================================================
--- head/sys/compat/cloudabi32/cloudabi32_sock.c        Sun Jan  7 22:21:07 
2018        (r327683)
+++ head/sys/compat/cloudabi32/cloudabi32_sock.c        Sun Jan  7 22:38:45 
2018        (r327684)
@@ -60,7 +60,7 @@ cloudabi32_sys_sock_recv(struct thread *td,
        /* Convert iovecs to native format. */
        if (ri.ri_data_len > UIO_MAXIOV)
                return (EINVAL);
-       iov = malloc(ri.ri_data_len * sizeof(struct iovec),
+       iov = mallocarray(ri.ri_data_len, sizeof(struct iovec),
            M_SOCKET, M_WAITOK);
Won’t this lead to a NULL pointer dereference on overflow? mallocarray can 
return NULL even with M_WAITOK.
I think you are right: for the M_WAITOK case we should do the check outside the malloc.

Compilers and static checkers should be giving out a warning since mallocarray() has the __result_use_check attribute (is that working!?). In the case of malloc(9) we should remove the attribute since we can by using M_WAITOK.

And yes, this patch should be reverted.

Pedro.


_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to