소스 검색

Fix byte alignment issue

Nick Peng 6 년 전
부모
커밋
aaca1c013b
1개의 변경된 파일5개의 추가작업 그리고 5개의 파일을 삭제
  1. 5 5
      src/dns.c

+ 5 - 5
src/dns.c

@@ -622,15 +622,15 @@ int dns_add_SOA(struct dns_packet *packet, dns_rr_type type, char *domain, int t
 	ptr += strnlen(soa->mname, DNS_MAX_CNAME_LEN - 1) + 1;
 	safe_strncpy((char *)ptr, soa->rname, DNS_MAX_CNAME_LEN);
 	ptr += strnlen(soa->rname, DNS_MAX_CNAME_LEN - 1) + 1;
-	*((unsigned int *)ptr) = soa->serial;
+	memcpy(ptr, &soa->serial, sizeof(unsigned int));
 	ptr += 4;
-	*((unsigned int *)ptr) = soa->refresh;
+	memcpy(ptr, &soa->refresh, sizeof(unsigned int));
 	ptr += 4;
-	*((unsigned int *)ptr) = soa->retry;
+	memcpy(ptr, &soa->retry, sizeof(unsigned int));
 	ptr += 4;
-	*((unsigned int *)ptr) = soa->expire;
+	memcpy(ptr, &soa->expire, sizeof(unsigned int));
 	ptr += 4;
-	*((unsigned int *)ptr) = soa->minimum;
+	memcpy(ptr, &soa->minimum, sizeof(unsigned int));
 	ptr += 4;
 	len = ptr - data;