Module Name: src
Committed By: christos
Date: Tue Oct 12 17:06:26 UTC 2021
Modified Files:
src/sys/sys: socket.h
Log Message:
Revert previous change because it causes uninitialized warnings with KMSAN.
The previous code was correct. Add a comment explaining why. Requested by chuq@
To generate a diff of this commit:
cvs rdiff -u -r1.129 -r1.130 src/sys/sys/socket.h
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/sys/socket.h
diff -u src/sys/sys/socket.h:1.129 src/sys/sys/socket.h:1.130
--- src/sys/sys/socket.h:1.129 Sun Nov 4 11:30:29 2018
+++ src/sys/sys/socket.h Tue Oct 12 13:06:26 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: socket.h,v 1.129 2018/11/04 16:30:29 christos Exp $ */
+/* $NetBSD: socket.h,v 1.130 2021/10/12 17:06:26 christos Exp $ */
/*
* Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
@@ -392,10 +392,13 @@ struct sockcred {
/*
* Compute size of a sockcred structure with groups.
+ *
+ * The (ngrps - 1) is to account for struct sockcred being defined with
+ * already one group member. This code works correctly when ngroups == 0
+ * because of unsigned arithmetic wrap-around.
*/
#define SOCKCREDSIZE(ngrps) \
- (/*CONSTCOND*/sizeof(struct sockcred) + (sizeof(gid_t) * \
- ((ngrps) ? ((ngrps) - 1) : 0)))
+ (/*LINTED*/sizeof(struct sockcred) + (sizeof(gid_t) * ((ngrps) - 1)))
#endif /* _NETBSD_SOURCE */