upgrade busybox to v1.1.1

SVN-Revision: 3578
This commit is contained in:
Imre Kaloz 2006-04-02 15:16:27 +00:00
parent 45b8c7eff7
commit e0919eb2a8
7 changed files with 337 additions and 121 deletions

View File

@ -13,11 +13,11 @@ PKG_SOURCE:=$(PKG_NAME)-snapshot.tar.bz2
PKG_SOURCE_URL:=http://www.busybox.net/downloads/snapshots
PKG_MD5SUM:=x
else
PKG_VERSION:=1.1.0
PKG_VERSION:=1.1.1
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
PKG_SOURCE_URL:=http://www.busybox.net/downloads
PKG_MD5SUM:=855e12c7c9dc90e16b014a788925e4cb
PKG_MD5SUM:=ff1ade47255c643b68c9113c267ce712
endif
PKG_CAT:=bzcat

View File

@ -1,20 +1,18 @@
diff -urN busybox-dist/include/applets.h busybox/include/applets.h
--- busybox-dist/include/applets.h 2004-03-13 02:33:09.000000000 -0600
+++ busybox/include/applets.h 2004-03-16 09:45:29.000000000 -0600
@@ -313,6 +313,9 @@
#ifdef CONFIG_KILLALL
APPLET(killall, kill_main, _BB_DIR_USR_BIN, _BB_SUID_NEVER)
#endif
+#ifdef CONFIG_KILLALL5
+ APPLET(killall5, kill_main, _BB_DIR_USR_BIN, _BB_SUID_NEVER)
+#endif
#ifdef CONFIG_KLOGD
APPLET(klogd, klogd_main, _BB_DIR_SBIN, _BB_SUID_NEVER)
#endif
diff -urN busybox-dist/include/usage.h busybox/include/usage.h
--- busybox-dist/include/usage.h 2004-03-13 02:33:09.000000000 -0600
+++ busybox/include/usage.h 2004-03-16 09:45:29.000000000 -0600
@@ -1389,6 +1389,13 @@
diff -Nur busybox-1.1.1/include/applets.h busybox-1.1.1-owrt/include/applets.h
--- busybox-1.1.1/include/applets.h 2006-03-22 22:16:24.000000000 +0100
+++ busybox-1.1.1-owrt/include/applets.h 2006-04-01 18:23:43.000000000 +0200
@@ -154,6 +154,7 @@
USE_IPTUNNEL(APPLET(iptunnel, iptunnel_main, _BB_DIR_BIN, _BB_SUID_NEVER))
USE_KILL(APPLET(kill, kill_main, _BB_DIR_BIN, _BB_SUID_NEVER))
USE_KILLALL(APPLET(killall, kill_main, _BB_DIR_USR_BIN, _BB_SUID_NEVER))
+USE_KILLALL5(APPLET(killall5, kill_main, _BB_DIR_USR_BIN, _BB_SUID_NEVER))
USE_KLOGD(APPLET(klogd, klogd_main, _BB_DIR_SBIN, _BB_SUID_NEVER))
USE_LASH(APPLET(lash, lash_main, _BB_DIR_BIN, _BB_SUID_NEVER))
USE_LAST(APPLET(last, last_main, _BB_DIR_USR_BIN, _BB_SUID_NEVER))
diff -Nur busybox-1.1.1/include/usage.h busybox-1.1.1-owrt/include/usage.h
--- busybox-1.1.1/include/usage.h 2006-03-22 22:16:24.000000000 +0100
+++ busybox-1.1.1-owrt/include/usage.h 2006-04-01 18:22:53.000000000 +0200
@@ -1598,6 +1598,13 @@
#define killall_example_usage \
"$ killall apache\n"
@ -28,10 +26,10 @@ diff -urN busybox-dist/include/usage.h busybox/include/usage.h
#define klogd_trivial_usage \
"[-c n] [-n]"
#define klogd_full_usage \
diff -urN busybox-dist/procps/Config.in busybox/procps/Config.in
--- busybox-dist/procps/Config.in 2003-12-24 00:02:11.000000000 -0600
+++ busybox/procps/Config.in 2004-03-16 09:45:29.000000000 -0600
@@ -30,6 +30,11 @@
diff -Nur busybox-1.1.1/procps/Config.in busybox-1.1.1-owrt/procps/Config.in
--- busybox-1.1.1/procps/Config.in 2006-03-22 22:16:25.000000000 +0100
+++ busybox-1.1.1-owrt/procps/Config.in 2006-04-01 18:22:53.000000000 +0200
@@ -38,6 +38,11 @@
specified commands. If no signal name is specified, SIGTERM is
sent.
@ -43,18 +41,18 @@ diff -urN busybox-dist/procps/Config.in busybox/procps/Config.in
config CONFIG_PIDOF
bool "pidof"
default n
diff -urN busybox-dist/procps/kill.c busybox/procps/kill.c
--- busybox-dist/procps/kill.c 2004-03-15 02:29:03.000000000 -0600
+++ busybox/procps/kill.c 2004-03-16 09:45:29.000000000 -0600
diff -Nur busybox-1.1.1/procps/kill.c busybox-1.1.1-owrt/procps/kill.c
--- busybox-1.1.1/procps/kill.c 2006-03-22 22:16:25.000000000 +0100
+++ busybox-1.1.1-owrt/procps/kill.c 2006-04-01 18:22:53.000000000 +0200
@@ -34,6 +34,7 @@
#define KILL 0
#define KILLALL 1
+#define KILLALL5 2
extern int kill_main(int argc, char **argv)
int kill_main(int argc, char **argv)
{
@@ -47,6 +48,9 @@
@@ -48,6 +49,9 @@
#else
whichApp = KILL;
#endif
@ -64,7 +62,7 @@ diff -urN busybox-dist/procps/kill.c busybox/procps/kill.c
/* Parse any options */
if (argc < 2)
@@ -119,6 +123,20 @@
@@ -126,6 +130,20 @@
}
}

View File

@ -1,18 +1,18 @@
diff -Nur busybox-1.1.0-pre1/include/usage.h busybox-1.1.0-pre1.openwrt/include/usage.h
--- busybox-1.1.0-pre1/include/usage.h 2005-11-01 00:55:34.000000000 +0100
+++ busybox-1.1.0-pre1.openwrt/include/usage.h 2005-11-30 11:10:24.000000000 +0100
@@ -3119,6 +3119,7 @@
diff -Nur busybox-1.1.1/include/usage.h busybox-1.1.1-owrt/include/usage.h
--- busybox-1.1.1/include/usage.h 2006-04-01 18:26:21.000000000 +0200
+++ busybox-1.1.1-owrt/include/usage.h 2006-04-01 18:27:45.000000000 +0200
@@ -3268,6 +3268,7 @@
"\t-n,\t--now\tExit with failure if lease cannot be immediately negotiated\n" \
"\t-p,\t--pidfile=file\tStore process ID of daemon in file\n" \
"\t-q,\t--quit\tQuit after obtaining lease\n" \
+ "\t-R,\t--release\tRelease IP on quit\n" \
"\t-r,\t--request=IP\tIP address to request (default: none)\n" \
"\t-s,\t--script=file\tRun file at dhcp events (default: /usr/share/udhcpc/default.script)\n" \
"\t-v,\t--version\tDisplay version"
diff -Nur busybox-1.1.0-pre1/networking/udhcp/dhcpc.c busybox-1.1.0-pre1.openwrt/networking/udhcp/dhcpc.c
--- busybox-1.1.0-pre1/networking/udhcp/dhcpc.c 2005-11-01 00:55:15.000000000 +0100
+++ busybox-1.1.0-pre1.openwrt/networking/udhcp/dhcpc.c 2005-11-30 11:17:22.000000000 +0100
@@ -61,6 +61,7 @@
"\t-t,\t--retries=NUM\tSend up to NUM request packets\n"\
diff -Nur busybox-1.1.1/networking/udhcp/dhcpc.c busybox-1.1.1-owrt/networking/udhcp/dhcpc.c
--- busybox-1.1.1/networking/udhcp/dhcpc.c 2006-03-22 22:16:19.000000000 +0100
+++ busybox-1.1.1-owrt/networking/udhcp/dhcpc.c 2006-04-01 18:28:19.000000000 +0200
@@ -49,6 +49,7 @@
.abort_if_no_lease = 0,
.foreground = 0,
.quit_after_lease = 0,
@ -20,7 +20,7 @@ diff -Nur busybox-1.1.0-pre1/networking/udhcp/dhcpc.c busybox-1.1.0-pre1.openwrt
.background_if_no_lease = 0,
.interface = "eth0",
.pidfile = NULL,
@@ -92,6 +93,7 @@
@@ -82,6 +83,7 @@
" immediately negotiated.\n"
" -p, --pidfile=file Store process ID of daemon in file\n"
" -q, --quit Quit after obtaining lease\n"
@ -28,24 +28,24 @@ diff -Nur busybox-1.1.0-pre1/networking/udhcp/dhcpc.c busybox-1.1.0-pre1.openwrt
" -r, --request=IP IP address to request (default: none)\n"
" -s, --script=file Run file at dhcp events (default:\n"
" " DEFAULT_SCRIPT ")\n"
@@ -211,6 +213,7 @@
{"now", no_argument, 0, 'n'},
@@ -203,6 +205,7 @@
{"now", no_argument, 0, 'n'},
{"pidfile", required_argument, 0, 'p'},
{"quit", no_argument, 0, 'q'},
+ {"release", no_argument, 0, 'R'},
{"request", required_argument, 0, 'r'},
{"script", required_argument, 0, 's'},
{"version", no_argument, 0, 'v'},
@@ -220,7 +223,7 @@
{"timeout", required_argument, 0, 'T'},
@@ -214,7 +217,7 @@
/* get options */
while (1) {
int option_index = 0;
- c = getopt_long(argc, argv, "c:CV:fbH:h:F:i:np:qr:s:v", arg_options, &option_index);
+ c = getopt_long(argc, argv, "c:CV:fbH:h:F:i:np:qRr:s:v", arg_options, &option_index);
- c = getopt_long(argc, argv, "c:CV:fbH:h:F:i:np:qr:s:T:t:v", arg_options, &option_index);
+ c = getopt_long(argc, argv, "c:CV:fbH:h:F:i:np:qRr:s:T:t:v", arg_options, &option_index);
if (c == -1) break;
switch (c) {
@@ -290,6 +293,9 @@
@@ -284,6 +287,9 @@
case 'q':
client_config.quit_after_lease = 1;
break;
@ -85,9 +85,9 @@ diff -Nur busybox-1.1.0-pre1/networking/udhcp/dhcpc.c busybox-1.1.0-pre1.openwrt
}
} else if (retval == -1 && errno == EINTR) {
/* a signal was caught */
diff -Nur busybox-1.1.0-pre1/networking/udhcp/dhcpc.h busybox-1.1.0-pre1.openwrt/networking/udhcp/dhcpc.h
--- busybox-1.1.0-pre1/networking/udhcp/dhcpc.h 2005-11-01 00:55:15.000000000 +0100
+++ busybox-1.1.0-pre1.openwrt/networking/udhcp/dhcpc.h 2005-11-30 11:18:00.000000000 +0100
diff -Nur busybox-1.1.1/networking/udhcp/dhcpc.h busybox-1.1.1-owrt/networking/udhcp/dhcpc.h
--- busybox-1.1.1/networking/udhcp/dhcpc.h 2006-03-22 22:16:19.000000000 +0100
+++ busybox-1.1.1-owrt/networking/udhcp/dhcpc.h 2006-04-01 18:27:45.000000000 +0200
@@ -19,6 +19,7 @@
struct client_config_t {
char foreground; /* Do not fork */

View File

@ -1,20 +1,18 @@
diff -urN busybox.old/include/applets.h busybox.dev/include/applets.h
--- busybox.old/include/applets.h 2006-01-11 01:32:47.302791000 +0100
+++ busybox.dev/include/applets.h 2006-01-11 01:33:18.744756250 +0100
@@ -475,6 +475,9 @@
#ifdef CONFIG_NC
APPLET(nc, nc_main, _BB_DIR_USR_BIN, _BB_SUID_NEVER)
#endif
+#ifdef CONFIG_NETMSG
+ APPLET_NOUSAGE("netmsg", netmsg_main, _BB_DIR_BIN, _BB_SUID_ALWAYS)
+#endif
#ifdef CONFIG_NETSTAT
APPLET(netstat, netstat_main, _BB_DIR_BIN, _BB_SUID_NEVER)
#endif
diff -urN busybox.old/networking/Config.in busybox.dev/networking/Config.in
--- busybox.old/networking/Config.in 2005-11-01 00:55:15.000000000 +0100
+++ busybox.dev/networking/Config.in 2006-01-11 01:33:18.744756250 +0100
@@ -435,6 +435,12 @@
diff -Nur busybox-1.1.1/include/applets.h busybox-1.1.1-owrt/include/applets.h
--- busybox-1.1.1/include/applets.h 2006-04-01 18:26:21.000000000 +0200
+++ busybox-1.1.1-owrt/include/applets.h 2006-04-01 18:36:28.000000000 +0200
@@ -197,6 +197,7 @@
USE_MV(APPLET(mv, mv_main, _BB_DIR_BIN, _BB_SUID_NEVER))
USE_NAMEIF(APPLET(nameif, nameif_main, _BB_DIR_SBIN, _BB_SUID_NEVER))
USE_NC(APPLET(nc, nc_main, _BB_DIR_USR_BIN, _BB_SUID_NEVER))
+USE_NETMSG(APPLET_NOUSAGE("netmsg", netmsg_main, _BB_DIR_BIN, _BB_SUID_ALWAYS))
USE_NETSTAT(APPLET(netstat, netstat_main, _BB_DIR_BIN, _BB_SUID_NEVER))
USE_NICE(APPLET(nice, nice_main, _BB_DIR_BIN, _BB_SUID_NEVER))
USE_NOHUP(APPLET(nohup, nohup_main, _BB_DIR_USR_BIN, _BB_SUID_NEVER))
diff -Nur busybox-1.1.1/networking/Config.in busybox-1.1.1-owrt/networking/Config.in
--- busybox-1.1.1/networking/Config.in 2006-03-22 22:16:19.000000000 +0100
+++ busybox-1.1.1-owrt/networking/Config.in 2006-04-01 18:35:32.000000000 +0200
@@ -451,6 +451,12 @@
help
A simple Unix utility which reads and writes data across network
connections.
@ -27,10 +25,10 @@ diff -urN busybox.old/networking/Config.in busybox.dev/networking/Config.in
config CONFIG_NC_GAPING_SECURITY_HOLE
bool "gaping security hole"
diff -urN busybox.old/networking/Makefile.in busybox.dev/networking/Makefile.in
--- busybox.old/networking/Makefile.in 2005-11-01 00:55:15.000000000 +0100
+++ busybox.dev/networking/Makefile.in 2006-01-11 01:34:02.939518250 +0100
@@ -28,6 +28,7 @@
diff -Nur busybox-1.1.1/networking/Makefile.in busybox-1.1.1-owrt/networking/Makefile.in
--- busybox-1.1.1/networking/Makefile.in 2006-03-22 22:16:19.000000000 +0100
+++ busybox-1.1.1-owrt/networking/Makefile.in 2006-04-01 18:35:32.000000000 +0200
@@ -30,6 +30,7 @@
NETWORKING-$(CONFIG_IPTUNNEL) += iptunnel.o
NETWORKING-$(CONFIG_NAMEIF) += nameif.o
NETWORKING-$(CONFIG_NC) += nc.o
@ -38,9 +36,9 @@ diff -urN busybox.old/networking/Makefile.in busybox.dev/networking/Makefile.in
NETWORKING-$(CONFIG_NETSTAT) += netstat.o
NETWORKING-$(CONFIG_NSLOOKUP) += nslookup.o
NETWORKING-$(CONFIG_PING) += ping.o
diff -urN busybox.old/networking/netmsg.c busybox.dev/networking/netmsg.c
--- busybox.old/networking/netmsg.c 1970-01-01 01:00:00.000000000 +0100
+++ busybox.dev/networking/netmsg.c 2006-01-11 01:33:18.748756500 +0100
diff -Nur busybox-1.1.1/networking/netmsg.c busybox-1.1.1-owrt/networking/netmsg.c
--- busybox-1.1.1/networking/netmsg.c 1970-01-01 01:00:00.000000000 +0100
+++ busybox-1.1.1-owrt/networking/netmsg.c 2006-04-01 18:35:32.000000000 +0200
@@ -0,0 +1,58 @@
+#include <sys/types.h>
+#include <sys/socket.h>

View File

@ -1,14 +1,14 @@
--- busybox-1.1.0.orig/networking/httpd.c 2006-02-06 16:02:30.000000000 +0100
+++ busybox-1.1.0/networking/httpd.c 2006-02-06 16:25:34.000000000 +0100
@@ -109,6 +109,7 @@
--- busybox-1.1.1/networking/httpd.c 2006-03-22 22:16:19.000000000 +0100
+++ busybox-1.1.1.new/networking/httpd.c 2006-04-01 19:41:42.150744624 +0200
@@ -110,6 +110,7 @@
#include <sys/types.h>
#include <sys/socket.h> /* for connect and socket*/
#include <netinet/in.h> /* for sockaddr_in */
+#include <arpa/inet.h> /* for inet_aton */
+#include <arpa/inet.h>
#include <sys/time.h>
#include <sys/stat.h>
#include <sys/wait.h>
@@ -201,8 +202,8 @@
@@ -204,8 +205,8 @@
void bb_show_usage(void)
{
@ -19,15 +19,15 @@
exit(1);
}
#endif
@@ -256,6 +257,7 @@
@@ -255,6 +256,7 @@
#endif
unsigned port; /* server initial port and for
set env REMOTE_PORT */
+ char *address; /* server initial address */
+ char *address;
union HTTPD_FOUND {
const char *found_mime_type;
const char *found_moved_temporarily;
@@ -942,7 +944,10 @@
@@ -958,7 +960,10 @@
/* inet_addr() returns a value that is already in network order */
memset(&lsocket, 0, sizeof(lsocket));
lsocket.sin_family = AF_INET;
@ -39,34 +39,41 @@
lsocket.sin_port = htons(config->port) ;
fd = socket(AF_INET, SOCK_STREAM, 0);
if (fd >= 0) {
@@ -1985,7 +1990,7 @@
#define OPT_INC_3 ENABLE_FEATURE_HTTPD_AUTH_MD5
@@ -1996,6 +2001,7 @@
USE_FEATURE_HTTPD_AUTH_MD5(m_opt_md5,)
USE_FEATURE_HTTPD_SETUID(u_opt_setuid,)
SKIP_FEATURE_HTTPD_USAGE_FROM_INETD_ONLY(p_opt_port,)
+ SKIP_FEATURE_HTTPD_USAGE_FROM_INETD_ONLY(l_opt_addr,)
};
#ifndef CONFIG_FEATURE_HTTPD_USAGE_FROM_INETD_ONLY
- "p:"
+ "p:l:"
#endif
#ifdef CONFIG_FEATURE_HTTPD_SETUID
"u:"
@@ -1999,7 +2004,8 @@
#define OPT_REALM (1<<(2+OPT_INC_1+OPT_INC_2)) /* r */
#define OPT_MD5 (1<<(2+OPT_INC_1+OPT_INC_2+OPT_INC_3)) /* m */
#define OPT_PORT (1<<(3+OPT_INC_1+OPT_INC_2+OPT_INC_3)) /* p */
-#define OPT_SETUID (1<<(4+OPT_INC_1+OPT_INC_2+OPT_INC_3)) /* u */
+#define OPT_ADDRESS (1<<(4+OPT_INC_1+OPT_INC_2+OPT_INC_3)) /* l */
+#define OPT_SETUID (1<<(5+OPT_INC_1+OPT_INC_2+OPT_INC_3)) /* u */
static const char httpd_opts[]="c:d:h:"
@@ -2003,7 +2009,7 @@
USE_FEATURE_HTTPD_BASIC_AUTH("r:")
USE_FEATURE_HTTPD_AUTH_MD5("m:")
USE_FEATURE_HTTPD_SETUID("u:")
- SKIP_FEATURE_HTTPD_USAGE_FROM_INETD_ONLY("p:");
+ SKIP_FEATURE_HTTPD_USAGE_FROM_INETD_ONLY("p:l:");
#define OPT_CONFIG_FILE (1<<c_opt_config_file)
#define OPT_DECODE_URL (1<<d_opt_decode_url)
@@ -2024,6 +2030,8 @@
#define OPT_PORT SKIP_FEATURE_HTTPD_USAGE_FROM_INETD_ONLY((1<<p_opt_port)) \
USE_FEATURE_HTTPD_USAGE_FROM_INETD_ONLY(0)
+#define OPT_ADDRESS SKIP_FEATURE_HTTPD_USAGE_FROM_INETD_ONLY((1<<l_opt_addr)) \
+ USE_FEATURE_HTTPD_USAGE_FROM_INETD_ONLY(0)
#ifdef HTTPD_STANDALONE
@@ -2016,6 +2022,7 @@
#endif
#ifndef CONFIG_FEATURE_HTTPD_USAGE_FROM_INETD_ONLY
const char *s_port;
+ const char *s_addr;
int server;
#endif
int main(int argc, char *argv[])
@@ -2036,6 +2044,7 @@
char *url_for_decode;
USE_FEATURE_HTTPD_ENCODE_URL_STR(const char *url_for_encode;)
SKIP_FEATURE_HTTPD_USAGE_FROM_INETD_ONLY(const char *s_port;)
+ SKIP_FEATURE_HTTPD_USAGE_FROM_INETD_ONLY(const char *s_addr;)
SKIP_FEATURE_HTTPD_USAGE_FROM_INETD_ONLY(int server;)
@@ -2035,6 +2042,7 @@
USE_FEATURE_HTTPD_SETUID(const char *s_uid;)
@@ -2050,6 +2059,7 @@
#ifndef CONFIG_FEATURE_HTTPD_USAGE_FROM_INETD_ONLY
config->port = 80;
@ -74,15 +81,15 @@
#endif
config->ContentLength = -1;
@@ -2052,6 +2060,7 @@
#endif
#ifndef CONFIG_FEATURE_HTTPD_USAGE_FROM_INETD_ONLY
, &s_port
+ , &s_addr
#endif
#ifdef CONFIG_FEATURE_HTTPD_SETUID
, &s_uid
@@ -2077,6 +2086,8 @@
@@ -2061,6 +2071,7 @@
USE_FEATURE_HTTPD_AUTH_MD5(, &pass)
USE_FEATURE_HTTPD_SETUID(, &s_uid)
SKIP_FEATURE_HTTPD_USAGE_FROM_INETD_ONLY(, &s_port)
+ SKIP_FEATURE_HTTPD_USAGE_FROM_INETD_ONLY(, &s_addr)
);
if(opt & OPT_DECODE_URL) {
@@ -2082,6 +2093,8 @@
#ifndef CONFIG_FEATURE_HTTPD_USAGE_FROM_INETD_ONLY
if(opt & OPT_PORT)
config->port = bb_xgetlarg(s_port, 10, 1, 0xffff);

View File

@ -1,14 +1,15 @@
--- busybox-1.1.0.orig/networking/httpd.c 2006-02-06 16:41:57.000000000 +0100
+++ busybox-1.1.0/networking/httpd.c 2006-02-06 16:41:26.000000000 +0100
diff -Nur busybox-1.1.1/networking/httpd.c busybox-1.1.1-owrt/networking/httpd.c
--- busybox-1.1.1/networking/httpd.c 2006-04-01 19:42:36.000000000 +0200
+++ busybox-1.1.1-owrt/networking/httpd.c 2006-04-01 19:43:59.000000000 +0200
@@ -247,6 +247,7 @@
const char *query;
#ifdef CONFIG_FEATURE_HTTPD_CGI
char *referer;
+ char *user_agent;
#endif
USE_FEATURE_HTTPD_CGI(char *referer;)
+ USE_FEATURE_HTTPD_CGI(char *user_agent;)
const char *configFile;
@@ -1192,6 +1193,7 @@
@@ -1208,6 +1209,7 @@
addEnv("SERVER", "PROTOCOL", "HTTP/1.0");
addEnv("GATEWAY_INTERFACE", "", "CGI/1.1");
addEnv("REMOTE", "ADDR", config->rmt_ip_str);
@ -16,7 +17,7 @@
#ifdef CONFIG_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV
addEnvPort("REMOTE");
#endif
@@ -1737,6 +1739,10 @@
@@ -1771,6 +1773,10 @@
for(test = buf + 8; isspace(*test); test++)
;
config->referer = strdup(test);

View File

@ -0,0 +1,212 @@
diff -Nur busybox-1.1.1/findutils/find.c busybox-1.1.1-owrt/findutils/find.c
--- busybox-1.1.1/findutils/find.c 2006-03-22 22:16:25.000000000 +0100
+++ busybox-1.1.1-owrt/findutils/find.c 2006-04-01 19:23:30.000000000 +0200
@@ -79,6 +79,15 @@
static int fileAction(const char *fileName, struct stat *statbuf, void* junk)
{
+#ifdef CONFIG_FEATURE_FIND_XDEV
+ if (S_ISDIR(statbuf->st_mode) && xdev_count) {
+ int i;
+ for (i=0; i<xdev_count; i++) {
+ if (xdev_dev[i] != statbuf->st_dev)
+ return SKIP;
+ }
+ }
+#endif
if (pattern != NULL) {
const char *tmp = strrchr(fileName, '/');
@@ -125,21 +134,6 @@
goto no_match;
}
#endif
-#ifdef CONFIG_FEATURE_FIND_XDEV
- if (xdev_count) {
- int i;
- for (i=0; i<xdev_count; i++) {
- if (xdev_dev[i] == statbuf-> st_dev)
- break;
- }
- if (i == xdev_count) {
- if(S_ISDIR(statbuf->st_mode))
- return SKIP;
- else
- goto no_match;
- }
- }
-#endif
#ifdef CONFIG_FEATURE_FIND_NEWER
if (newer_mtime != 0) {
time_t file_age = newer_mtime - statbuf->st_mtime;
diff -Nur busybox-1.1.1/libbb/Makefile.in busybox-1.1.1-owrt/libbb/Makefile.in
--- busybox-1.1.1/libbb/Makefile.in 2006-03-22 22:16:22.000000000 +0100
+++ busybox-1.1.1-owrt/libbb/Makefile.in 2006-04-01 19:23:30.000000000 +0200
@@ -39,6 +39,7 @@
# conditionally compiled objects:
LIBBB-$(CONFIG_FEATURE_SHADOWPASSWDS)+=pwd2spwd.c
LIBBB-$(CONFIG_FEATURE_MOUNT_LOOP)+= loop.c
+LIBBB-$(CONFIG_LOSETUP)+= loop.c
LIBBB-$(CONFIG_FEATURE_MTAB_SUPPORT)+= mtab.c
LIBBB-$(CONFIG_PASSWD)+= pw_encrypt.c
LIBBB-$(CONFIG_SULOGIN)+= pw_encrypt.c
diff -Nur busybox-1.1.1/modutils/insmod.c busybox-1.1.1-owrt/modutils/insmod.c
--- busybox-1.1.1/modutils/insmod.c 2006-03-22 22:16:20.000000000 +0100
+++ busybox-1.1.1-owrt/modutils/insmod.c 2006-04-01 19:23:30.000000000 +0200
@@ -516,12 +516,6 @@
#include <elf.h>
#include <endian.h>
-#if BB_LITTLE_ENDIAN
-# define ELFDATAM ELFDATA2LSB
-#else
-# define ELFDATAM ELFDATA2MSB
-#endif
-
#ifndef ElfW
# if ELFCLASSM == ELFCLASS32
# define ElfW(x) Elf32_ ## x
@@ -3331,7 +3325,8 @@
return NULL;
}
if (f->header.e_ident[EI_CLASS] != ELFCLASSM
- || f->header.e_ident[EI_DATA] != ELFDATAM
+ || f->header.e_ident[EI_DATA] != (BB_BIG_ENDIAN
+ ? ELFDATA2MSB : ELFDATA2LSB)
|| f->header.e_ident[EI_VERSION] != EV_CURRENT
|| !MATCH_MACHINE(f->header.e_machine)) {
bb_error_msg("ELF file not for this architecture");
diff -Nur busybox-1.1.1/util-linux/Makefile.in busybox-1.1.1-owrt/util-linux/Makefile.in
--- busybox-1.1.1/util-linux/Makefile.in 2006-03-22 22:16:26.000000000 +0100
+++ busybox-1.1.1-owrt/util-linux/Makefile.in 2006-04-01 19:23:30.000000000 +0200
@@ -38,6 +38,8 @@
UTILLINUX-$(CONFIG_SWITCH_ROOT) +=switch_root.o
UTILLINUX-$(CONFIG_UMOUNT) +=umount.o
+UTILLINUX-y:=$(sort $(UTILLINUX-y))
+
ifneq ($(strip $(UTILLINUX-y)),)
libraries-y+=$(UTILLINUX_DIR)$(UTILLINUX_AR)
endif
diff -Nur busybox-1.1.1/util-linux/mount.c busybox-1.1.1-owrt/util-linux/mount.c
--- busybox-1.1.1/util-linux/mount.c 2006-03-22 22:16:26.000000000 +0100
+++ busybox-1.1.1-owrt/util-linux/mount.c 2006-04-01 19:23:30.000000000 +0200
@@ -184,6 +184,8 @@
{
llist_free(fslist);
}
+#else
+void delete_block_backed_filesystems(void);
#endif
#if ENABLE_FEATURE_MTAB_SUPPORT
@@ -196,12 +198,9 @@
// Perform actual mount of specific filesystem at specific location.
-static int mount_it_now(struct mntent *mp, int vfsflags)
+static int mount_it_now(struct mntent *mp, int vfsflags, char *filteropts)
{
int rc;
- char *filteropts = 0;
-
- parse_mount_options(mp->mnt_opts, &filteropts);
if (fakeIt) { return 0; }
@@ -217,8 +216,6 @@
vfsflags |= MS_RDONLY;
}
- free(filteropts);
-
// Abort entirely if permission denied.
if (rc && errno == EPERM)
@@ -266,11 +263,11 @@
static int singlemount(struct mntent *mp)
{
int rc = 1, vfsflags;
- char *loopFile = 0;
+ char *loopFile = 0, *filteropts = 0;
llist_t *fl = 0;
struct stat st;
- vfsflags = parse_mount_options(mp->mnt_opts, 0);
+ vfsflags = parse_mount_options(mp->mnt_opts, &filteropts);
// Treat fstype "auto" as unspecified.
@@ -282,16 +279,16 @@
(!mp->mnt_type || !strcmp(mp->mnt_type,"nfs")) &&
strchr(mp->mnt_fsname, ':') != NULL)
{
- char *options=0;
- parse_mount_options(mp->mnt_opts, &options);
- if (nfsmount(mp->mnt_fsname, mp->mnt_dir, &vfsflags, &options, 1)) {
+ if (nfsmount(mp->mnt_fsname, mp->mnt_dir, &vfsflags, &filteropts, 1)) {
bb_perror_msg("nfsmount failed");
return 1;
+ } else {
+ // Strangely enough, nfsmount() doesn't actually mount() anything.
+ rc = mount_it_now(mp, vfsflags, filteropts);
+ if (ENABLE_FEATURE_CLEAN_UP) free(filteropts);
+
+ return rc;
}
-
- // Strangely enough, nfsmount() doesn't actually mount() anything.
-
- else return mount_it_now(mp, vfsflags);
}
// Look at the file. (Not found isn't a failure for remount.)
@@ -324,7 +321,7 @@
* to the actual mount. */
if (mp->mnt_type || (vfsflags & (MS_REMOUNT | MS_BIND | MS_MOVE)))
- rc = mount_it_now(mp, vfsflags);
+ rc = mount_it_now(mp, vfsflags, filteropts);
// Loop through filesystem types until mount succeeds or we run out
@@ -336,25 +333,26 @@
if (!fslist) {
fslist = get_block_backed_filesystems();
-#if ENABLE_FEATURE_CLEAN_UP
if (ENABLE_FEATURE_CLEAN_UP && fslist)
atexit(delete_block_backed_filesystems);
-#endif
}
for (fl = fslist; fl; fl = fl->link) {
mp->mnt_type = fl->data;
- if (!(rc = mount_it_now(mp,vfsflags))) break;
+ if (!(rc = mount_it_now(mp,vfsflags, filteropts))) break;
mp->mnt_type = 0;
}
}
- // Mount failed. Clean up
+ if (ENABLE_FEATURE_CLEAN_UP) free(filteropts);
+
+ // If mount failed, clean up loop file (if any).
+
if (rc && loopFile) {
del_loop(mp->mnt_fsname);
- if(ENABLE_FEATURE_CLEAN_UP) {
+ if (ENABLE_FEATURE_CLEAN_UP) {
free(loopFile);
free(mp->mnt_fsname);
}
@@ -548,7 +546,6 @@
if (ENABLE_FEATURE_CLEAN_UP) {
free(storage_path);
free(cmdopts);
- free(fstype);
}
if(rc)