Re: [Linux-kernel-mentees] [PATCH] net: fix uninit value error in __sys_sendmmsg
From: Anant Thazhemadam <hidden>
Date: 2020-09-13 06:21:03
Also in:
lkml, netdev
On 13/09/20 11:43 am, Greg KH wrote:
On Sun, Sep 13, 2020 at 11:26:39AM +0530, Anant Thazhemadam wrote:quoted
The crash report showed that there was a local variable; ----iovstack.i@__sys_sendmmsg created at: ___sys_sendmsg net/socket.c:2388 [inline] __sys_sendmmsg+0x6db/0xc90 net/socket.c:2480 that was left uninitialized. The contents of iovstack are of interest, since the respective pointer is passed down as an argument to sendmsg_copy_msghdr as well. Initializing this contents of this stack prevents this bug from happening. Since the memory that was initialized is freed at the end of the function call, memory leaks are not likely to be an issue. syzbot seems to have triggered this error by passing an array of 0's as a parameter while making the initial system call. Reported-by: syzbot+09a5d591c1f98cf5efcb@syzkaller.appspotmail.com Tested-by: syzbot+09a5d591c1f98cf5efcb@syzkaller.appspotmail.com Signed-off-by: Anant Thazhemadam <redacted> --- net/socket.c | 1 + 1 file changed, 1 insertion(+)diff --git a/net/socket.c b/net/socket.c index 0c0144604f81..d74443dfd73b 100644 --- a/net/socket.c +++ b/net/socket.c@@ -2396,6 +2396,7 @@ static int ___sys_sendmsg(struct socket *sock, struct user_msghdr __user *msg, { struct sockaddr_storage address; struct iovec iovstack[UIO_FASTIOV], *iov = iovstack; + memset(iov, 0, UIO_FASTIOV); ssize_t err; msg_sys->msg_name = &address;I don't think you built this code change, otherwise you would have seen that it adds a build warning to the system, right? :(
My apologies. I think I ended up overlooking the build warning. Thank you for pointing that out. If everything else looks good, I'd be happy to send in a v2 that fixes this build warning. Thanks, Anant _______________________________________________ Linux-kernel-mentees mailing list Linux-kernel-mentees@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/linux-kernel-mentees