X-Git-Url: http://git.rohieb.name/openwrt.git/blobdiff_plain/9eafd1cb17da2076804266cfcc8f9f6b54694352..f2a91858ac9fb6fcb23aa6625973a37af464888f:/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..93794916c 100644 --- a/package/busybox/patches/241-udhcpc-oversized_packets.patch +++ b/package/busybox/patches/241-udhcpc-oversized_packets.patch @@ -1,7 +1,8 @@ -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 @@ +Index: busybox-1.7.2/networking/udhcp/packet.c +=================================================================== +--- busybox-1.7.2.orig/networking/udhcp/packet.c 2007-10-30 15:35:00.000000000 -0500 ++++ busybox-1.7.2/networking/udhcp/packet.c 2007-10-30 15:35:01.000000000 -0500 +@@ -121,6 +121,10 @@ return ~sum; } @@ -11,16 +12,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); +@@ -132,6 +136,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) { +@@ -141,6 +146,7 @@ memset(&dest, 0, sizeof(dest)); memset(&packet, 0, sizeof(packet)); @@ -28,7 +29,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 @@ +@@ -158,12 +164,13 @@ packet.ip.daddr = dest_ip; packet.udp.source = htons(source_port); packet.udp.dest = htons(dest_port); @@ -46,14 +47,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)); +@@ -172,7 +179,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"); +@@ -216,7 +223,7 @@ return -1; } @@ -62,10 +65,11 @@ 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 @@ +Index: busybox-1.7.2/networking/udhcp/common.h +=================================================================== +--- busybox-1.7.2.orig/networking/udhcp/common.h 2007-10-30 15:35:00.000000000 -0500 ++++ busybox-1.7.2/networking/udhcp/common.h 2007-10-30 15:35:01.000000000 -0500 +@@ -21,6 +21,8 @@ #include #include @@ -74,7 +78,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 @@ +@@ -37,7 +39,7 @@ uint8_t sname[64]; uint8_t file[128]; uint32_t cookie;