diff options
author | Denis Vlasenko <vda.linux@googlemail.com> | 2006-11-20 01:13:09 +0000 |
---|---|---|
committer | Denis Vlasenko <vda.linux@googlemail.com> | 2006-11-20 01:13:09 +0000 |
commit | c9cdeaa3fef3f93eb259957d36c760ec8902e0c1 (patch) | |
tree | 18eb5bb7b7fa9a3ceb9c607eefb571ddb0c5e95b /networking/udhcp | |
parent | 4a5cf16a368bf513a2c2e3b27821a37d3df3cf89 (diff) | |
download | busybox-w32-c9cdeaa3fef3f93eb259957d36c760ec8902e0c1.tar.gz busybox-w32-c9cdeaa3fef3f93eb259957d36c760ec8902e0c1.tar.bz2 busybox-w32-c9cdeaa3fef3f93eb259957d36c760ec8902e0c1.zip |
add compile-time check for correct DHCP packet size
Diffstat (limited to 'networking/udhcp')
-rw-r--r-- | networking/udhcp/packet.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/networking/udhcp/packet.c b/networking/udhcp/packet.c index e79542d08..85910447b 100644 --- a/networking/udhcp/packet.c +++ b/networking/udhcp/packet.c | |||
@@ -109,6 +109,7 @@ uint16_t udhcp_checksum(void *addr, int count) | |||
109 | 109 | ||
110 | 110 | ||
111 | /* Construct a ip/udp header for a packet, and specify the source and dest hardware address */ | 111 | /* Construct a ip/udp header for a packet, and specify the source and dest hardware address */ |
112 | void BUG_sizeof_struct_udp_dhcp_packet_must_be_576(void); | ||
112 | int udhcp_raw_packet(struct dhcpMessage *payload, | 113 | int udhcp_raw_packet(struct dhcpMessage *payload, |
113 | uint32_t source_ip, int source_port, | 114 | uint32_t source_ip, int source_port, |
114 | uint32_t dest_ip, int dest_port, uint8_t *dest_arp, int ifindex) | 115 | uint32_t dest_ip, int dest_port, uint8_t *dest_arp, int ifindex) |
@@ -154,6 +155,9 @@ int udhcp_raw_packet(struct dhcpMessage *payload, | |||
154 | packet.ip.ttl = IPDEFTTL; | 155 | packet.ip.ttl = IPDEFTTL; |
155 | packet.ip.check = udhcp_checksum(&(packet.ip), sizeof(packet.ip)); | 156 | packet.ip.check = udhcp_checksum(&(packet.ip), sizeof(packet.ip)); |
156 | 157 | ||
158 | if (sizeof(struct udp_dhcp_packet) != 576) | ||
159 | BUG_sizeof_struct_udp_dhcp_packet_must_be_576(); | ||
160 | |||
157 | result = sendto(fd, &packet, sizeof(struct udp_dhcp_packet), 0, | 161 | result = sendto(fd, &packet, sizeof(struct udp_dhcp_packet), 0, |
158 | (struct sockaddr *) &dest, sizeof(dest)); | 162 | (struct sockaddr *) &dest, sizeof(dest)); |
159 | if (result <= 0) { | 163 | if (result <= 0) { |