To avoid future stack content leaks in the various protocols, pre-clear
the returned memory.

Signed-off-by: Kees Cook <keesc...@chromium.org>
Suggested-by: Brad Spengler <spen...@grsecurity.net>
---
 net/socket.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/net/socket.c b/net/socket.c
index 88f759a..4d2af0d 100644
--- a/net/socket.c
+++ b/net/socket.c
@@ -1838,7 +1838,7 @@ SYSCALL_DEFINE6(recvfrom, int, fd, void __user *, ubuf, 
size_t, size,
        struct socket *sock;
        struct iovec iov;
        struct msghdr msg;
-       struct sockaddr_storage address;
+       struct sockaddr_storage address = { };
        int err, err2;
        int fput_needed;
 
@@ -2185,7 +2185,7 @@ static int __sys_recvmsg(struct socket *sock, struct 
msghdr __user *msg,
        int err, total_len, len;
 
        /* kernel mode address */
-       struct sockaddr_storage addr;
+       struct sockaddr_storage addr = { };
 
        /* user mode address pointers */
        struct sockaddr __user *uaddr;
-- 
1.7.9.5


-- 
Kees Cook
Chrome OS Security
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to