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;

Reply via email to