Module Name: src Committed By: christos Date: Mon Sep 7 19:37:21 UTC 2020
Modified Files: src/external/bsd/nsd/dist: options.c Log Message: Simplify to avoid packed struct alignment issue. To generate a diff of this commit: cvs rdiff -u -r1.1.1.5 -r1.2 src/external/bsd/nsd/dist/options.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/external/bsd/nsd/dist/options.c diff -u src/external/bsd/nsd/dist/options.c:1.1.1.5 src/external/bsd/nsd/dist/options.c:1.2 --- src/external/bsd/nsd/dist/options.c:1.1.1.5 Sun Dec 15 11:00:54 2019 +++ src/external/bsd/nsd/dist/options.c Mon Sep 7 15:37:21 2020 @@ -1432,17 +1432,18 @@ acl_addr_matches_ipv6host(struct acl_opt int acl_addr_matches_ipv4host(struct acl_options* acl, struct sockaddr_in* addr, unsigned int port) { + uint32_t saddr = addr->sin_addr.s_addr; if(acl->port != 0 && acl->port != port) return 0; switch(acl->rangetype) { case acl_range_mask: case acl_range_subnet: - if(!acl_addr_match_mask((uint32_t*)&acl->addr.addr, (uint32_t*)&addr->sin_addr, + if(!acl_addr_match_mask((uint32_t*)&acl->addr.addr, &saddr, (uint32_t*)&acl->range_mask.addr, sizeof(struct in_addr))) return 0; break; case acl_range_minmax: - if(!acl_addr_match_range((uint32_t*)&acl->addr.addr, (uint32_t*)&addr->sin_addr, + if(!acl_addr_match_range((uint32_t*)&acl->addr.addr, &saddr, (uint32_t*)&acl->range_mask.addr, sizeof(struct in_addr))) return 0; break;