Просмотр исходного кода

check for + in the broadcast address before attempting a dns lookup

SVN-Revision: 7767
Felix Fietkau 18 лет назад
Родитель
Сommit
fc649db702
1 измененных файлов с 29 добавлено и 0 удалено
  1. 29 0
      package/busybox/patches/260-broadcast_plus.patch

+ 29 - 0
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;