Module Name: src Committed By: maya Date: Wed Feb 14 16:07:55 UTC 2018
Modified Files: src/sys/dist/pf/net: pf_table.c Log Message: Don't invoke UB. Heads up by John D. Baker. To generate a diff of this commit: cvs rdiff -u -r1.17 -r1.18 src/sys/dist/pf/net/pf_table.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/dist/pf/net/pf_table.c diff -u src/sys/dist/pf/net/pf_table.c:1.17 src/sys/dist/pf/net/pf_table.c:1.18 --- src/sys/dist/pf/net/pf_table.c:1.17 Wed May 11 12:22:34 2011 +++ src/sys/dist/pf/net/pf_table.c Wed Feb 14 16:07:55 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: pf_table.c,v 1.17 2011/05/11 12:22:34 hauke Exp $ */ +/* $NetBSD: pf_table.c,v 1.18 2018/02/14 16:07:55 maya Exp $ */ /* $OpenBSD: pf_table.c,v 1.70 2007/05/23 11:53:45 markus Exp $ */ /* @@ -32,7 +32,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: pf_table.c,v 1.17 2011/05/11 12:22:34 hauke Exp $"); +__KERNEL_RCSID(0, "$NetBSD: pf_table.c,v 1.18 2018/02/14 16:07:55 maya Exp $"); #ifdef _KERNEL_OPT #include "opt_inet.h" @@ -984,14 +984,14 @@ pfr_prepare_network(union sockaddr_union if (af == AF_INET) { sa->sin.sin_len = sizeof(sa->sin); sa->sin.sin_family = AF_INET; - sa->sin.sin_addr.s_addr = net ? htonl(-1 << (32-net)) : 0; + sa->sin.sin_addr.s_addr = net ? htonl(~0U << (32-net)) : 0; } else if (af == AF_INET6) { sa->sin6.sin6_len = sizeof(sa->sin6); sa->sin6.sin6_family = AF_INET6; for (i = 0; i < 4; i++) { if (net <= 32) { sa->sin6.sin6_addr.s6_addr32[i] = - net ? htonl(-1 << (32-net)) : 0; + net ? htonl(~0U << (32-net)) : 0; break; } sa->sin6.sin6_addr.s6_addr32[i] = 0xFFFFFFFF;