Module Name: src Committed By: martin Date: Mon Jul 31 16:29:56 UTC 2023
Modified Files: src/sys/kern [netbsd-8]: uipc_domain.c Log Message: Pull up following revision(s) (requested by riastradh in ticket #1867): sys/kern/uipc_domain.c: revision 1.109 sockaddr_alloc(9): Avoid uninitialized buffer in sockaddr_checklen. Manifests only under DIAGNOSTIC because the DIAGNOSTIC check itself uses an uninitialized buffer. To generate a diff of this commit: cvs rdiff -u -r1.96.10.2 -r1.96.10.3 src/sys/kern/uipc_domain.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/kern/uipc_domain.c diff -u src/sys/kern/uipc_domain.c:1.96.10.2 src/sys/kern/uipc_domain.c:1.96.10.3 --- src/sys/kern/uipc_domain.c:1.96.10.2 Tue Jan 16 13:04:33 2018 +++ src/sys/kern/uipc_domain.c Mon Jul 31 16:29:56 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: uipc_domain.c,v 1.96.10.2 2018/01/16 13:04:33 martin Exp $ */ +/* $NetBSD: uipc_domain.c,v 1.96.10.3 2023/07/31 16:29:56 martin Exp $ */ /* * Copyright (c) 1982, 1986, 1993 @@ -32,7 +32,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: uipc_domain.c,v 1.96.10.2 2018/01/16 13:04:33 martin Exp $"); +__KERNEL_RCSID(0, "$NetBSD: uipc_domain.c,v 1.96.10.3 2023/07/31 16:29:56 martin Exp $"); #include <sys/param.h> #include <sys/socket.h> @@ -322,6 +322,15 @@ sockaddr_alloc(sa_family_t af, socklen_t struct sockaddr *sa; socklen_t reallen = MAX(socklen, offsetof(struct sockaddr, sa_data[0])); +#ifdef DIAGNOSTIC + /* + * sockaddr_checklen passes sa to sockaddr_format which + * requires it to be fully initialized. + * + * XXX This should be factored better. + */ + flags |= M_ZERO; +#endif if ((sa = malloc(reallen, M_SOCKADDR, flags)) == NULL) return NULL;