summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>2007-06-29 00:07:43 +0000
committernbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>2007-06-29 00:07:43 +0000
commit547500075f52d1ceae048c934248816fb7312006 (patch)
treec2f0769ebf34dcfbd33bfe64ef72fee8a495f18f
parenta9d4da075e6de66dafa00cac0554bb48d38de053 (diff)
check for + in the broadcast address before attempting a dns lookup
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@7767 3c298f89-4303-0410-b956-a3cf2f4a3e73
-rw-r--r--package/busybox/patches/260-broadcast_plus.patch29
1 files changed, 29 insertions, 0 deletions
diff --git a/package/busybox/patches/260-broadcast_plus.patch b/package/busybox/patches/260-broadcast_plus.patch
new file mode 100644
index 0000000000..60b2afc242
--- /dev/null
+++ b/package/busybox/patches/260-broadcast_plus.patch
@@ -0,0 +1,29 @@
+Index: busybox-1.4.2/networking/ifconfig.c
+===================================================================
+--- busybox-1.4.2.orig/networking/ifconfig.c 2007-06-29 02:03:17.046772952 +0200
++++ busybox-1.4.2/networking/ifconfig.c 2007-06-29 02:03:49.938772608 +0200
+@@ -376,18 +376,18 @@
+ #endif
+ sai.sin_family = AF_INET;
+ sai.sin_port = 0;
+- if (!strcmp(host, bb_str_default)) {
+- /* Default is special, meaning 0.0.0.0. */
+- sai.sin_addr.s_addr = INADDR_ANY;
+- }
+ #if ENABLE_FEATURE_IFCONFIG_BROADCAST_PLUS
+- else if ((host[0] == '+' && !host[1]) && (mask & A_BROADCAST)
++ if ((host[0] == '+' && !host[1]) && (mask & A_BROADCAST)
+ && (did_flags & (A_NETMASK|A_HOSTNAME)) == (A_NETMASK|A_HOSTNAME)
+ ) {
+ /* + is special, meaning broadcast is derived. */
+ sai.sin_addr.s_addr = (~sai_netmask) | (sai_hostname & sai_netmask);
+- }
++ } else
+ #endif
++ if (!strcmp(host, bb_str_default)) {
++ /* Default is special, meaning 0.0.0.0. */
++ sai.sin_addr.s_addr = INADDR_ANY;
++ }
+ #if ENABLE_FEATURE_IPV6
+ else if (inet_pton(AF_INET6, host, &sai6.sin6_addr) > 0) {
+ int sockfd6;