X-Git-Url: https://git.rohieb.name/openwrt.git/blobdiff_plain/9eafd1cb17da2076804266cfcc8f9f6b54694352..3b20aec50f6ec53d9e532d6718924f01305e8004:/package/busybox/patches/241-udhcpc-oversized_packets.patch diff --git a/package/busybox/patches/241-udhcpc-oversized_packets.patch b/package/busybox/patches/241-udhcpc-oversized_packets.patch index d041bf5c3..d324d752d 100644 --- a/package/busybox/patches/241-udhcpc-oversized_packets.patch +++ b/package/busybox/patches/241-udhcpc-oversized_packets.patch @@ -1,7 +1,7 @@ -diff -ruN busybox-1.2.1-old/networking/udhcp/packet.c busybox-1.2.1-new/networking/udhcp/packet.c ---- busybox-1.2.1-old/networking/udhcp/packet.c 2006-07-01 00:42:02.000000000 +0200 -+++ busybox-1.2.1-new/networking/udhcp/packet.c 2006-11-19 01:04:40.000000000 +0100 -@@ -111,6 +111,10 @@ +diff -ruN busybox-1.3.1-old/networking/udhcp/packet.c busybox-1.3.1/networking/udhcp/packet.c +--- busybox-1.3.1-old/networking/udhcp/packet.c 2006-12-27 05:52:33.000000000 +0100 ++++ busybox-1.3.1/networking/udhcp/packet.c 2006-12-28 05:38:36.000000000 +0100 +@@ -107,6 +107,10 @@ return ~sum; } @@ -11,16 +11,16 @@ diff -ruN busybox-1.2.1-old/networking/udhcp/packet.c busybox-1.2.1-new/networki +} /* Construct a ip/udp header for a packet, and specify the source and dest hardware address */ - int udhcp_raw_packet(struct dhcpMessage *payload, uint32_t source_ip, int source_port, -@@ -120,6 +124,7 @@ + void BUG_sizeof_struct_udp_dhcp_packet_must_be_576(void); +@@ -118,6 +122,7 @@ int result; struct sockaddr_ll dest; struct udp_dhcp_packet packet; + int p_len = udhcp_get_payload_len(payload); - if ((fd = socket(PF_PACKET, SOCK_DGRAM, htons(ETH_P_IP))) < 0) { - DEBUG(LOG_ERR, "socket call failed: %m"); -@@ -128,6 +133,7 @@ + fd = socket(PF_PACKET, SOCK_DGRAM, htons(ETH_P_IP)); + if (fd < 0) { +@@ -127,6 +132,7 @@ memset(&dest, 0, sizeof(dest)); memset(&packet, 0, sizeof(packet)); @@ -28,7 +28,7 @@ diff -ruN busybox-1.2.1-old/networking/udhcp/packet.c busybox-1.2.1-new/networki dest.sll_family = AF_PACKET; dest.sll_protocol = htons(ETH_P_IP); -@@ -145,18 +151,19 @@ +@@ -144,12 +150,13 @@ packet.ip.daddr = dest_ip; packet.udp.source = htons(source_port); packet.udp.dest = htons(dest_port); @@ -46,14 +46,16 @@ diff -ruN busybox-1.2.1-old/networking/udhcp/packet.c busybox-1.2.1-new/networki packet.ip.ihl = sizeof(packet.ip) >> 2; packet.ip.version = IPVERSION; packet.ip.ttl = IPDEFTTL; - packet.ip.check = udhcp_checksum(&(packet.ip), sizeof(packet.ip)); +@@ -158,7 +165,7 @@ + if (sizeof(struct udp_dhcp_packet) != 576) + BUG_sizeof_struct_udp_dhcp_packet_must_be_576(); -- result = sendto(fd, &packet, sizeof(struct udp_dhcp_packet), 0, (struct sockaddr *) &dest, sizeof(dest)); -+ result = sendto(fd, &packet, p_len, 0, (struct sockaddr *) &dest, sizeof(dest)); +- result = sendto(fd, &packet, sizeof(struct udp_dhcp_packet), 0, ++ result = sendto(fd, &packet, p_len, 0, + (struct sockaddr *) &dest, sizeof(dest)); if (result <= 0) { - DEBUG(LOG_ERR, "write on socket failed: %m"); - } -@@ -201,7 +208,7 @@ + bb_perror_msg("sendto"); +@@ -205,7 +212,7 @@ return -1; } @@ -62,10 +64,10 @@ diff -ruN busybox-1.2.1-old/networking/udhcp/packet.c busybox-1.2.1-new/networki close(fd); return result; } -diff -ruN busybox-1.2.1-old/networking/udhcp/packet.h busybox-1.2.1-new/networking/udhcp/packet.h ---- busybox-1.2.1-old/networking/udhcp/packet.h 2006-07-01 00:42:02.000000000 +0200 -+++ busybox-1.2.1-new/networking/udhcp/packet.h 2006-11-19 00:49:38.000000000 +0100 -@@ -4,6 +4,8 @@ +diff -ruN busybox-1.3.1-old/networking/udhcp/common.h busybox-1.3.1/networking/udhcp/common.h +--- busybox-1.3.1-old/networking/udhcp/common.h 2006-12-27 05:52:33.000000000 +0100 ++++ busybox-1.3.1/networking/udhcp/common.h 2006-12-28 05:17:06.000000000 +0100 +@@ -26,6 +26,8 @@ #include #include @@ -74,7 +76,7 @@ diff -ruN busybox-1.2.1-old/networking/udhcp/packet.h busybox-1.2.1-new/networki struct dhcpMessage { uint8_t op; uint8_t htype; -@@ -20,7 +22,7 @@ +@@ -42,7 +44,7 @@ uint8_t sname[64]; uint8_t file[128]; uint32_t cookie;