Ticket #5619: busybox-1.14.3-working.patch

File busybox-1.14.3-working.patch, 25.6 KB (added by acoul <alex at ozo.com>, 9 years ago)
  • Makefile

    diff -Nru busybox.old/Makefile busybox/Makefile
    old new  
    88include $(TOPDIR)/rules.mk 
    99 
    1010PKG_NAME:=busybox 
    11 PKG_VERSION:=1.13.4 
     11PKG_VERSION:=1.14.3 
    1212PKG_RELEASE:=1 
    1313 
    1414PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 
    1515PKG_SOURCE_URL:=http://www.busybox.net/downloads \ 
    1616                http://distfiles.gentoo.org/distfiles/ 
    17 PKG_MD5SUM:=8a5eb7f15d4077d18fa97bda7a4e5412 
     17PKG_MD5SUM:=d170bf5f97a41aec3a505eab690d5699 
    1818 
    1919include $(INCLUDE_DIR)/package.mk 
    2020 
  • patches/001-init_avoid_loop_opening_tty.patch

    diff -Nru busybox.old/patches/001-init_avoid_loop_opening_tty.patch busybox/patches/001-init_avoid_loop_opening_tty.patch
    old new  
    11--- a/init/init.c 
    22+++ b/init/init.c 
    3 @@ -497,12 +497,11 @@ static void run_actions(int action_type) 
    4         for (a = init_action_list; a; a = tmp) { 
    5                 tmp = a->next; 
    6                 if (a->action_type & action_type) { 
    7 -                       // Pointless: run() will error out if open of device fails. 
    8 -                       ///* a->terminal of "" means "init's console" */ 
    9 -                       //if (a->terminal[0] && access(a->terminal, R_OK | W_OK)) { 
    10 -                       //      //message(L_LOG | L_CONSOLE, "Device %s cannot be opened in RW mode", a->terminal /*, strerror(errno)*/); 
    11 -                       //      delete_init_action(a); 
    12 -                       //} else 
    13 +                       /* a->terminal of "" means "init's console" */ 
    14 +                       if (a->terminal[0] && access(a->terminal, R_OK | W_OK)) { 
    15 +                               //message(L_LOG | L_CONSOLE, "Device %s cannot be opened in RW mode", a->terminal /*, strerror(errno)*/); 
    16 +                               delete_init_action(a); 
    17 +                       } else 
    18                         if (a->action_type & (SYSINIT | WAIT | CTRLALTDEL | SHUTDOWN | RESTART)) { 
    19                                 waitfor(run(a)); 
    20                                 delete_init_action(a); 
     3@@ -451,8 +451,11 @@ static void run_actions(int action_type) 
     4                        /* Only run stuff with pid == 0. If pid != 0, 
     5                         * it is already running 
     6                         */ 
     7-                       if (a->pid == 0) 
     8+                       if (a->pid == 0) { 
     9+                               if (a->terminal && access(a->terminal, R_OK | W_OK)) 
     10+                                       continue; 
     11                                a->pid = run(a); 
     12+                       } 
     13                } 
     14        } 
     15 } 
  • patches/003-brctl_show_fix.patch

    diff -Nru busybox.old/patches/003-brctl_show_fix.patch busybox/patches/003-brctl_show_fix.patch
    old new  
    11--- a/networking/brctl.c 
    22+++ b/networking/brctl.c 
    3 @@ -90,7 +90,7 @@ int brctl_main(int argc UNUSED_PARAM, ch 
     3@@ -104,7 +104,7 @@ int brctl_main(int argc UNUSED_PARAM, ch 
    44                "setageing\0" "setfd\0" "sethello\0" "setmaxage\0" 
    55                "setpathcost\0" "setportprio\0" "setbridgeprio\0" 
    66        ) 
     
    99  
    1010        enum { ARG_addbr = 0, ARG_delbr, ARG_addif, ARG_delif 
    1111                USE_FEATURE_BRCTL_FANCY(, 
    12 @@ -98,7 +98,7 @@ int brctl_main(int argc UNUSED_PARAM, ch 
     12@@ -112,7 +112,7 @@ int brctl_main(int argc UNUSED_PARAM, ch 
    1313                   ARG_setageing, ARG_setfd, ARG_sethello, ARG_setmaxage, 
    1414                   ARG_setpathcost, ARG_setportprio, ARG_setbridgeprio 
    1515                ) 
  • patches/110-wget_getopt_fix.patch

    diff -Nru busybox.old/patches/110-wget_getopt_fix.patch busybox/patches/110-wget_getopt_fix.patch
    old new  
    11--- a/networking/wget.c 
    22+++ b/networking/wget.c 
    3 @@ -443,7 +443,7 @@ int wget_main(int argc UNUSED_PARAM, cha 
     3@@ -485,7 +485,7 @@ int wget_main(int argc UNUSED_PARAM, cha 
    44                // "tries\0"            Required_argument "t" 
    55                // "timeout\0"          Required_argument "T" 
    66                /* Ignored (we always use PASV): */ 
    77-               "passive-ftp\0"      No_argument       "\xff" 
    88+               "passive-ftp\0"      No_argument       "\xfd" 
    99                "header\0"           Required_argument "\xfe" 
     10                "post-data\0"        Required_argument "\xfd" 
    1011                ; 
    11  #endif 
  • patches/200-etc_crontabs.patch

    diff -Nru busybox.old/patches/200-etc_crontabs.patch busybox/patches/200-etc_crontabs.patch
    old new  
    33@@ -24,7 +24,7 @@ 
    44  
    55  
    6  #ifndef CRONTABS 
    7 -#define CRONTABS        "/var/spool/cron/crontabs" 
     6 #define TMPDIR          CONFIG_FEATURE_CROND_DIR 
     7-#define CRONTABS        CONFIG_FEATURE_CROND_DIR "/crontabs" 
    88+#define CRONTABS        "/etc/crontabs" 
     9 #ifndef SENDMAIL 
     10 #define SENDMAIL        "sendmail" 
    911 #endif 
    10  #ifndef TMPDIR 
    11  #define TMPDIR          "/var/spool/cron" 
    1212--- a/miscutils/crontab.c 
    1313+++ b/miscutils/crontab.c 
    14 @@ -13,7 +13,7 @@ 
     14@@ -12,7 +12,7 @@ 
     15  
    1516 #include "libbb.h" 
    1617  
    17  #ifndef CRONTABS 
    18 -#define CRONTABS        "/var/spool/cron/crontabs" 
     18-#define CRONTABS        CONFIG_FEATURE_CROND_DIR "/crontabs" 
    1919+#define CRONTABS        "/etc/crontabs" 
    20  #endif 
    2120 #ifndef CRONUPDATE 
    2221 #define CRONUPDATE      "cron.update" 
     22 #endif 
  • patches/240-udhcpc_retries.patch

    diff -Nru busybox.old/patches/240-udhcpc_retries.patch busybox/patches/240-udhcpc_retries.patch
    old new  
    11--- a/networking/udhcp/dhcpc.c 
    22+++ b/networking/udhcp/dhcpc.c 
    3 @@ -353,7 +353,7 @@ int udhcpc_main(int argc UNUSED_PARAM, c 
     3@@ -363,7 +363,7 @@ int udhcpc_main(int argc UNUSED_PARAM, c 
    44  
    55                        switch (state) { 
    66                        case INIT_SELECTING: 
     
    99                                        if (packet_num == 0) 
    1010                                                xid = random_xid(); 
    1111  
    12 @@ -384,7 +384,7 @@ int udhcpc_main(int argc UNUSED_PARAM, c 
     12@@ -394,7 +394,7 @@ int udhcpc_main(int argc UNUSED_PARAM, c 
    1313                                continue; 
    1414                        case RENEW_REQUESTED: 
    1515                        case REQUESTING: 
  • patches/241-udhcpc-oversized_packets.patch

    diff -Nru busybox.old/patches/241-udhcpc-oversized_packets.patch busybox/patches/241-udhcpc-oversized_packets.patch
    old new  
    11--- a/networking/udhcp/packet.c 
    22+++ b/networking/udhcp/packet.c 
    3 @@ -114,6 +114,10 @@ uint16_t FAST_FUNC udhcp_checksum(void * 
     3@@ -120,6 +120,10 @@ uint16_t FAST_FUNC udhcp_checksum(void * 
    44        return ~sum; 
    55 } 
    66  
     
    1111  
    1212 /* Construct a ip/udp header for a packet, send packet */ 
    1313 int FAST_FUNC udhcp_send_raw_packet(struct dhcpMessage *payload, 
    14 @@ -126,11 +130,7 @@ int FAST_FUNC udhcp_send_raw_packet(stru 
     14@@ -132,11 +136,7 @@ int FAST_FUNC udhcp_send_raw_packet(stru 
    1515        int fd; 
    1616        int result = -1; 
    1717        const char *msg; 
     
    2424  
    2525        fd = socket(PF_PACKET, SOCK_DGRAM, htons(ETH_P_IP)); 
    2626        if (fd < 0) { 
    27 @@ -140,7 +140,7 @@ int FAST_FUNC udhcp_send_raw_packet(stru 
     27@@ -146,7 +146,7 @@ int FAST_FUNC udhcp_send_raw_packet(stru 
    2828  
    2929        memset(&dest, 0, sizeof(dest)); 
    3030        memset(&packet, 0, sizeof(packet)); 
     
    3333  
    3434        dest.sll_family = AF_PACKET; 
    3535        dest.sll_protocol = htons(ETH_P_IP); 
    36 @@ -157,23 +157,18 @@ int FAST_FUNC udhcp_send_raw_packet(stru 
     36@@ -163,23 +163,18 @@ int FAST_FUNC udhcp_send_raw_packet(stru 
    3737        packet.ip.daddr = dest_ip; 
    3838        packet.udp.source = htons(source_port); 
    3939        packet.udp.dest = htons(dest_port); 
     
    6363                                (struct sockaddr *) &dest, sizeof(dest)); 
    6464        msg = "sendto"; 
    6565  ret_close: 
    66 @@ -225,8 +220,7 @@ int FAST_FUNC udhcp_send_kernel_packet(s 
     66@@ -231,8 +226,7 @@ int FAST_FUNC udhcp_send_kernel_packet(s 
    6767                goto ret_close; 
    6868        } 
    6969  
  • patches/243-udhcpc_changed_ifindex.patch

    diff -Nru busybox.old/patches/243-udhcpc_changed_ifindex.patch busybox/patches/243-udhcpc_changed_ifindex.patch
    old new  
    11--- a/networking/udhcp/dhcpc.c 
    22+++ b/networking/udhcp/dhcpc.c 
    3 @@ -320,6 +320,12 @@ int udhcpc_main(int argc UNUSED_PARAM, c 
    4         for (;;) { 
    5                 unsigned timestamp_before_wait; 
     3@@ -327,6 +327,12 @@ int udhcpc_main(int argc UNUSED_PARAM, c 
     4                /* silence "uninitialized!" warning */ 
     5                unsigned timestamp_before_wait = timestamp_before_wait; 
    66  
    77+               /* When running on a bridge, the ifindex may have changed (e.g. if 
    88+                * member interfaces were added/removed or if the status of the 
     
    1010+                * Workaround: refresh it here before processing the next packet */ 
    1111+               udhcp_read_interface(client_config.interface, &client_config.ifindex, NULL, client_config.arp); 
    1212+ 
    13                 if (listen_mode != LISTEN_NONE && sockfd < 0) { 
    14                         if (listen_mode == LISTEN_KERNEL) 
    15                                 sockfd = udhcp_listen_socket(/*INADDR_ANY,*/ CLIENT_PORT, client_config.interface); 
     13                //bb_error_msg("sockfd:%d, listen_mode:%d", sockfd, listen_mode); 
     14  
     15                /* Was opening raw or udp socket here 
  • patches/244-udhcpc_cidrroute.patch

    diff -Nru busybox.old/patches/244-udhcpc_cidrroute.patch busybox/patches/244-udhcpc_cidrroute.patch
    old new  
    11--- a/networking/udhcp/options.c 
    22+++ b/networking/udhcp/options.c 
    3 @@ -46,6 +46,7 @@ const struct dhcp_option dhcp_options[]  
     3@@ -48,6 +48,7 @@ const struct dhcp_option dhcp_options[]  
    44 #if ENABLE_FEATURE_UDHCP_RFC3397 
    55        { OPTION_STR1035 | OPTION_LIST            , 0x77 }, /* search             */ 
    66 #endif 
     
    88        /* MSIE's "Web Proxy Autodiscovery Protocol" support */ 
    99        { OPTION_STRING                           , 0xfc }, /* wpad               */ 
    1010  
    11 @@ -95,6 +96,7 @@ const char dhcp_option_strings[] ALIGN1  
     11@@ -97,6 +98,7 @@ const char dhcp_option_strings[] ALIGN1  
    1212 #if ENABLE_FEATURE_UDHCP_RFC3397 
    1313        "search" "\0" 
    1414 #endif 
  • patches/250-ash_export-n.patch

    diff -Nru busybox.old/patches/250-ash_export-n.patch busybox/patches/250-ash_export-n.patch
    old new  
    11--- a/shell/ash.c 
    22+++ b/shell/ash.c 
    3 @@ -12159,8 +12159,17 @@ exportcmd(int argc UNUSED_PARAM, char ** 
     3@@ -12273,8 +12273,17 @@ exportcmd(int argc UNUSED_PARAM, char ** 
    44        const char *p; 
    55        char **aptr; 
    66        int flag = argv[0][0] == 'r' ? VREADONLY : VEXPORT; 
     
    1919                aptr = argptr; 
    2020                name = *aptr; 
    2121                if (name) { 
    22 @@ -12172,10 +12181,12 @@ exportcmd(int argc UNUSED_PARAM, char ** 
     22@@ -12286,10 +12295,12 @@ exportcmd(int argc UNUSED_PARAM, char ** 
    2323                                        vp = *findvar(hashvar(name), name); 
    2424                                        if (vp) { 
    2525                                                vp->flags |= flag; 
  • patches/300-netmsg.patch

    diff -Nru busybox.old/patches/300-netmsg.patch busybox/patches/300-netmsg.patch
    old new  
    11--- a/include/applets.h 
    22+++ b/include/applets.h 
    3 @@ -263,6 +263,7 @@ USE_MT(APPLET(mt, _BB_DIR_BIN, _BB_SUID_ 
     3@@ -271,6 +271,7 @@ USE_MT(APPLET(mt, _BB_DIR_BIN, _BB_SUID_ 
    44 USE_MV(APPLET(mv, _BB_DIR_BIN, _BB_SUID_NEVER)) 
    55 USE_NAMEIF(APPLET(nameif, _BB_DIR_SBIN, _BB_SUID_NEVER)) 
    66 USE_NC(APPLET(nc, _BB_DIR_USR_BIN, _BB_SUID_NEVER)) 
     
    1010 USE_NMETER(APPLET(nmeter, _BB_DIR_USR_BIN, _BB_SUID_NEVER)) 
    1111--- a/include/usage.h 
    1212+++ b/include/usage.h 
    13 @@ -2849,6 +2849,9 @@ 
     13@@ -3010,6 +3010,9 @@ 
    1414  
    1515 #endif 
    1616  
     
    2222 #define netstat_full_usage "\n\n" \ 
    2323--- a/networking/Config.in 
    2424+++ b/networking/Config.in 
    25 @@ -603,6 +603,12 @@ config NC 
     25@@ -600,6 +600,12 @@ config NC 
    2626          A simple Unix utility which reads and writes data across network 
    2727          connections. 
    2828  
     
    3737        default n 
    3838--- a/networking/Kbuild 
    3939+++ b/networking/Kbuild 
    40 @@ -23,6 +23,7 @@ lib-$(CONFIG_IP)           += ip.o 
     40@@ -24,6 +24,7 @@ lib-$(CONFIG_IP)           += ip.o 
    4141 lib-$(CONFIG_IPCALC)       += ipcalc.o 
    4242 lib-$(CONFIG_NAMEIF)       += nameif.o 
    4343 lib-$(CONFIG_NC)           += nc.o 
  • patches/310-passwd_access.patch

    diff -Nru busybox.old/patches/310-passwd_access.patch busybox/patches/310-passwd_access.patch
    old new  
    33 
    44--- a/networking/httpd.c 
    55+++ b/networking/httpd.c 
    6 @@ -1713,21 +1713,32 @@ static int check_user_passwd(const char  
     6@@ -1699,21 +1699,32 @@ static int check_user_passwd(const char  
    77  
    88                if (ENABLE_FEATURE_HTTPD_AUTH_MD5) { 
    99                        char *md5_passwd; 
  • patches/340-lock_util.patch

    diff -Nru busybox.old/patches/340-lock_util.patch busybox/patches/340-lock_util.patch
    old new  
    11--- a/include/applets.h 
    22+++ b/include/applets.h 
    3 @@ -223,6 +223,7 @@ USE_LN(APPLET_NOEXEC(ln, ln, _BB_DIR_BIN 
     3@@ -228,6 +228,7 @@ USE_LN(APPLET_NOEXEC(ln, ln, _BB_DIR_BIN 
    44 USE_LOAD_POLICY(APPLET(load_policy, _BB_DIR_USR_SBIN, _BB_SUID_NEVER)) 
    55 USE_LOADFONT(APPLET(loadfont, _BB_DIR_USR_SBIN, _BB_SUID_NEVER)) 
    66 USE_LOADKMAP(APPLET(loadkmap, _BB_DIR_SBIN, _BB_SUID_NEVER)) 
     
    1010 USE_LOGNAME(APPLET_NOFORK(logname, logname, _BB_DIR_USR_BIN, _BB_SUID_NEVER, logname)) 
    1111--- a/include/usage.h 
    1212+++ b/include/usage.h 
    13 @@ -2150,6 +2150,9 @@ 
     13@@ -2246,6 +2246,9 @@ 
    1414 #define loadkmap_example_usage \ 
    1515        "$ loadkmap < /etc/i18n/lang-keymap\n" 
    1616  
     
    2222 #define logger_full_usage "\n\n" \ 
    2323--- a/miscutils/Config.in 
    2424+++ b/miscutils/Config.in 
    25 @@ -395,6 +395,12 @@ config FEATURE_HDPARM_HDIO_GETSET_DMA 
     25@@ -420,6 +420,12 @@ config FEATURE_HDPARM_HDIO_GETSET_DMA 
     26        help 
    2627          Enables the 'hdparm -d' option to get/set using_dma flag. 
    27           This is dangerous stuff, so you should probably say N. 
    2828  
    2929+config LOCK 
    3030+       bool "lock" 
     
    3737        default n 
    3838--- a/miscutils/Kbuild 
    3939+++ b/miscutils/Kbuild 
    40 @@ -21,6 +21,7 @@ lib-$(CONFIG_INOTIFYD)    += inotifyd.o 
     40@@ -23,6 +23,7 @@ lib-$(CONFIG_INOTIFYD)    += inotifyd.o 
    4141 lib-$(CONFIG_FEATURE_LAST_SMALL)+= last.o 
    4242 lib-$(CONFIG_FEATURE_LAST_FANCY)+= last_fancy.o 
    4343 lib-$(CONFIG_LESS)        += less.o 
  • patches/350-httpd_redir.patch

    diff -Nru busybox.old/patches/350-httpd_redir.patch busybox/patches/350-httpd_redir.patch
    old new  
    11--- a/include/usage.h 
    22+++ b/include/usage.h 
    3 @@ -1558,7 +1558,8 @@ 
     3@@ -1638,7 +1638,8 @@ 
    44        USE_FEATURE_HTTPD_BASIC_AUTH(" [-r realm]") \ 
    55        USE_FEATURE_HTTPD_AUTH_MD5(" [-m pass]") \ 
    66        " [-h home]" \ 
     
    1010 #define httpd_full_usage "\n\n" \ 
    1111        "Listen for incoming HTTP requests\n" \ 
    1212      "\nOptions:" \ 
    13 @@ -1576,6 +1577,8 @@ 
     13@@ -1656,6 +1657,8 @@ 
    1414      "\n       -h HOME         Home directory (default .)" \ 
    1515      "\n       -e STRING       HTML encode STRING" \ 
    1616      "\n       -d STRING       URL decode STRING" \ 
     
    3030        Htaccess_IP *ip_a_d;    /* config allow/deny lines */ 
    3131  
    3232        USE_FEATURE_HTTPD_BASIC_AUTH(const char *g_realm;) 
    33 @@ -295,6 +297,8 @@ struct globals { 
     33@@ -294,6 +296,8 @@ struct globals { 
    3434 #define index_page        (G.index_page       ) 
    3535 #define found_mime_type   (G.found_mime_type  ) 
    3636 #define found_moved_temporarily (G.found_moved_temporarily) 
     
    3939 #define last_mod          (G.last_mod         ) 
    4040 #define ip_a_d            (G.ip_a_d           ) 
    4141 #define g_realm           (G.g_realm          ) 
    42 @@ -1003,8 +1007,11 @@ static void send_headers(int responseNum 
     42@@ -993,8 +997,11 @@ static void send_headers(int responseNum 
    4343        } 
    4444 #endif 
    4545        if (responseNum == HTTP_MOVED_TEMPORARILY) { 
     
    5252                                (g_query ? "?" : ""), 
    5353                                (g_query ? g_query : "")); 
    5454        } 
    55 @@ -1939,8 +1946,12 @@ static void handle_incoming_and_exit(con 
     55@@ -1924,8 +1931,12 @@ static void handle_incoming_and_exit(con 
    5656        } while (*++tptr); 
    5757        *++urlp = '\0';       /* terminate after last character */ 
    5858  
     
    6666                if (is_directory(urlcopy + 1, 1, &sb)) { 
    6767                        found_moved_temporarily = urlcopy; 
    6868                } 
    69 @@ -2293,7 +2304,9 @@ static void sighup_handler(int sig) 
    70  #endif 
     69@@ -2272,7 +2283,9 @@ static void sighup_handler(int sig UNUSE 
     70 } 
    7171  
    7272 enum { 
    7373-       c_opt_config_file = 0, 
     
    7777        d_opt_decode_url, 
    7878        h_opt_home_httpd, 
    7979        USE_FEATURE_HTTPD_ENCODE_URL_STR(e_opt_encode_url,) 
    80 @@ -2342,12 +2355,13 @@ int httpd_main(int argc UNUSED_PARAM, ch 
     80@@ -2321,12 +2334,13 @@ int httpd_main(int argc UNUSED_PARAM, ch 
    8181        /* We do not "absolutize" path given by -h (home) opt. 
    8282         * If user gives relative path in -h, 
    8383         * $SCRIPT_FILENAME will not be set. */ 
     
    8989                        USE_FEATURE_HTTPD_SETUID("u:") 
    9090                        "p:ifv", 
    9191+                       &redirect_path, &redirect_host, 
    92                         &configFile, &url_for_decode, &home_httpd 
     92                        &opt_c_configFile, &url_for_decode, &home_httpd 
    9393                        USE_FEATURE_HTTPD_ENCODE_URL_STR(, &url_for_encode) 
    9494                        USE_FEATURE_HTTPD_BASIC_AUTH(, &g_realm) 
  • patches/410-httpd_cgi_headers.patch

    diff -Nru busybox.old/patches/410-httpd_cgi_headers.patch busybox/patches/410-httpd_cgi_headers.patch
    old new  
    11--- a/networking/httpd.c 
    22+++ b/networking/httpd.c 
    3 @@ -1259,10 +1259,10 @@ static NOINLINE void cgi_io_loop_and_exi 
     3@@ -1250,10 +1250,10 @@ static NOINLINE void cgi_io_loop_and_exi 
    44                                                if (full_write(STDOUT_FILENO, HTTP_200, sizeof(HTTP_200)-1) != sizeof(HTTP_200)-1) 
    55                                                        break; 
    66                                        } 
  • patches/440-httpd_chdir.patch

    diff -Nru busybox.old/patches/440-httpd_chdir.patch busybox/patches/440-httpd_chdir.patch
    old new  
    11--- a/networking/httpd.c 
    22+++ b/networking/httpd.c 
    3 @@ -1824,6 +1824,7 @@ static void handle_incoming_and_exit(con 
     3@@ -1810,6 +1810,7 @@ static void handle_incoming_and_exit(con 
    44        char *header_ptr = header_ptr; 
    55        Htaccess_Proxy *proxy_entry; 
    66 #endif 
  • patches/470-insmod_search.patch

    diff -Nru busybox.old/patches/470-insmod_search.patch busybox/patches/470-insmod_search.patch
    old new  
    100100  
    101101 int insmod_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; 
    102102 int insmod_main(int argc UNUSED_PARAM, char **argv) 
    103 @@ -25,9 +118,14 @@ int insmod_main(int argc UNUSED_PARAM, c 
     103@@ -33,9 +126,15 @@ int insmod_main(int argc UNUSED_PARAM, c 
    104104        if (!filename) 
    105105                bb_show_usage(); 
    106106  
     
    111111+ 
    112112+       rc = bb_init_module(g_filename, parse_cmdline_module_options(argv)); 
    113113        if (rc) 
    114                 bb_error_msg("cannot insert '%s': %s", filename, moderror(rc)); 
    115 - 
     114                bb_error_msg("can't insert '%s': %s", filename, moderror(rc)); 
    116115+       free (g_filename); 
     116  
    117117+done: 
    118118        return rc; 
    119119 } 
     120--- a/modutils/Config.in 
     121+++ b/modutils/Config.in 
     122@@ -211,7 +211,7 @@ config FEATURE_MODUTILS_SYMBOLS 
     123 config DEFAULT_MODULES_DIR 
     124        string "Default directory containing modules" 
     125        default "/lib/modules" 
     126-       depends on DEPMOD || MODPROBE || MODPROBE_SMALL 
     127+       depends on DEPMOD || INSMOD || MODPROBE || MODPROBE_SMALL 
     128        help 
     129          Directory that contains kernel modules. 
     130          Defaults to "/lib/modules" 
  • patches/510-awk_include.patch

    diff -Nru busybox.old/patches/510-awk_include.patch busybox/patches/510-awk_include.patch
    old new  
    1515 } func; 
    1616  
    1717 /* I/O stream */ 
    18 @@ -1423,7 +1428,8 @@ static void parse_program(char *p) 
     18@@ -1420,7 +1425,8 @@ static void parse_program(char *p) 
    1919                        next_token(TC_FUNCTION); 
    2020                        g_pos++; 
    2121                        f = newfunc(t_string); 
     
    2525                        f->nargs = 0; 
    2626                        while (next_token(TC_VARIABLE | TC_SEQTERM) & TC_VARIABLE) { 
    2727                                v = findvar(ahash, t_string); 
    28 @@ -1432,7 +1438,7 @@ static void parse_program(char *p) 
     28@@ -1429,7 +1435,7 @@ static void parse_program(char *p) 
    2929                                if (next_token(TC_COMMA | TC_SEQTERM) & TC_SEQTERM) 
    3030                                        break; 
    3131                        } 
     
    3434                        chain_group(); 
    3535                        clear_array(ahash); 
    3636  
    37 @@ -2397,7 +2403,8 @@ static var *evaluate(node *op, var *res) 
     37@@ -2408,7 +2414,8 @@ static var *evaluate(node *op, var *res) 
    3838                        break; 
    3939  
    4040                case XC( OC_FUNC ): 
     
    4444                                syntax_error(EMSG_UNDEF_FUNC); 
    4545  
    4646                        X.v = R.v = nvalloc(op->r.f->nargs+1); 
    47 @@ -2414,7 +2421,10 @@ static var *evaluate(node *op, var *res) 
     47@@ -2425,7 +2432,10 @@ static var *evaluate(node *op, var *res) 
    4848                        fnargs = X.v; 
    4949  
    5050                        L.s = g_progname; 
     
    5656                        g_progname = L.s; 
    5757  
    5858                        nvfree(fnargs); 
    59 @@ -2777,6 +2787,143 @@ static rstream *next_input_file(void) 
     59@@ -2788,6 +2798,143 @@ static rstream *next_input_file(void) 
    6060 #undef files_happen 
    6161 } 
    6262  
     
    200200 int awk_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; 
    201201 int awk_main(int argc, char **argv) 
    202202 { 
    203 @@ -2842,6 +2989,9 @@ int awk_main(int argc, char **argv) 
     203@@ -2853,6 +3000,9 @@ int awk_main(int argc, char **argv) 
    204204                        *s1 = '='; 
    205205                } 
    206206        } 
  • patches/524-udhcpc_renew.patch

    diff -Nru busybox.old/patches/524-udhcpc_renew.patch busybox/patches/524-udhcpc_renew.patch
    old new  
    11--- a/networking/udhcp/dhcpc.c 
    22+++ b/networking/udhcp/dhcpc.c 
    3 @@ -63,7 +63,6 @@ static void perform_renew(void) 
     3@@ -69,7 +69,6 @@ static void perform_renew(void) 
    44                state = RENEW_REQUESTED; 
    55                break; 
    66        case RENEW_REQUESTED: /* impatient are we? fine, square 1 */ 
  • patches/530-watchdog_fix.patch

    diff -Nru busybox.old/patches/530-watchdog_fix.patch busybox/patches/530-watchdog_fix.patch
    old new  
    1 --- a/miscutils/watchdog.c 
    2 +++ b/miscutils/watchdog.c 
    3 @@ -10,7 +10,8 @@ 
    4   */ 
    5   
    6  #include "libbb.h" 
    7 -#include "linux/watchdog.h" 
    8 +#include <linux/types.h> 
    9 +#include <linux/watchdog.h> 
    10   
    11  #define OPT_FOREGROUND  (1 << 0) 
    12  #define OPT_STIMER      (1 << 1) 
  • patches/801-brctl_zero_time.patch

    diff -Nru busybox.old/patches/801-brctl_zero_time.patch busybox/patches/801-brctl_zero_time.patch
    old new  
    11--- a/networking/brctl.c 
    22+++ b/networking/brctl.c 
    3 @@ -34,8 +34,9 @@ static ALWAYS_INLINE void strtotimeval(s 
     3@@ -48,8 +48,9 @@ static ALWAYS_INLINE void strtotimeval(s 
    44 { 
    55        double secs; 
    66 #if BRCTL_USE_INTERNAL 
  • patches/802-brctl_linux24.patch

    diff -Nru busybox.old/patches/802-brctl_linux24.patch busybox/patches/802-brctl_linux24.patch
    old new  
    11--- a/networking/brctl.c 
    22+++ b/networking/brctl.c 
    3 @@ -18,7 +18,7 @@ 
     3@@ -32,7 +32,7 @@ 
    44  
    55 /* Maximum number of ports supported per bridge interface.  */ 
    66 #ifndef MAX_PORTS 
     
    99 #endif 
    1010  
    1111 /* Use internal number parsing and not the "exact" conversion.  */ 
    12 @@ -155,6 +155,7 @@ int brctl_main(int argc UNUSED_PARAM, ch 
     12@@ -169,6 +169,7 @@ int brctl_main(int argc UNUSED_PARAM, ch 
    1313                                printf(bi.stp_enabled ? "\tyes" : "\tno"); 
    1414  
    1515                                /* print interface list */ 
     
    1717                                arm_ioctl(args, BRCTL_GET_PORT_LIST, 
    1818                                                        (unsigned long) ifidx, MAX_PORTS); 
    1919                                xioctl(fd, SIOCDEVPRIVATE, &ifr); 
    20 @@ -183,9 +184,19 @@ int brctl_main(int argc UNUSED_PARAM, ch 
     20@@ -197,9 +198,19 @@ int brctl_main(int argc UNUSED_PARAM, ch 
    2121                br = *argv++; 
    2222  
    2323                if (key == ARG_addbr || key == ARG_delbr) { /* addbr or delbr */ 
     
    4040                        goto done; 
    4141                } 
    4242  
    43 @@ -194,14 +205,27 @@ int brctl_main(int argc UNUSED_PARAM, ch 
     43@@ -208,14 +219,27 @@ int brctl_main(int argc UNUSED_PARAM, ch 
    4444  
    45                 strncpy(ifr.ifr_name, br, IFNAMSIZ); 
     45                strncpy_IFNAMSIZ(ifr.ifr_name, br); 
    4646                if (key == ARG_addif || key == ARG_delif) { /* addif or delif */ 
    4747+                       int ret; 
    4848+                       int if_index; 
  • patches/803-id_getgrouplist.patch

    diff -Nru busybox.old/patches/803-id_getgrouplist.patch busybox/patches/803-id_getgrouplist.patch
    old new  
    1919 #endif 
    2020 #endif 
    2121 #endif 
    22 @@ -86,7 +88,11 @@ static int get_groups(const char *userna 
     22@@ -82,7 +84,11 @@ static int get_groups(const char *userna 
    2323                /* If the user is a member of more than 
    2424                 * *n groups, then -1 is returned. Otherwise >= 0. 
    2525                 * (and no defined way of detecting errors?!) */ 
     
    3131                /* I guess *n < 0 might indicate error. Anyway, 
    3232                 * malloc'ing -1 bytes won't be good, so: */ 
    3333                //if (*n < 0) 
    34 @@ -160,6 +166,7 @@ int id_main(int argc UNUSED_PARAM, char  
     34@@ -154,6 +160,7 @@ int id_main(int argc UNUSED_PARAM, char  
    3535                        if (egid != rgid) 
    3636                                status |= print_group(egid, " "); 
    3737                } 
     
    3939                /* We are supplying largish buffer, trying 
    4040                 * to not run get_groups() twice. That might be slow 
    4141                 * ("user database in remote SQL server" case) */ 
    42 @@ -187,6 +194,7 @@ int id_main(int argc UNUSED_PARAM, char  
     42@@ -181,6 +188,7 @@ int id_main(int argc UNUSED_PARAM, char  
    4343                } 
    4444                if (ENABLE_FEATURE_CLEAN_UP) 
    4545                        free(groups); 
  • patches/901-df_human_readable.patch

    diff -Nru busybox.old/patches/901-df_human_readable.patch busybox/patches/901-df_human_readable.patch
    old new  
    1 --- a/coreutils/df.c 
    2 +++ b/coreutils/df.c 
    3 @@ -53,8 +53,8 @@ int df_main(int argc, char **argv) 
    4                 OPT_ALL   = (1 << 2) * ENABLE_FEATURE_DF_FANCY, 
    5                 OPT_INODE = (1 << 3) * ENABLE_FEATURE_DF_FANCY, 
    6                 OPT_BSIZE = (1 << 4) * ENABLE_FEATURE_DF_FANCY, 
    7 -               OPT_HUMAN = (1 << 5) * ENABLE_FEATURE_HUMAN_READABLE, 
    8 -               OPT_MEGA  = (1 << 6) * ENABLE_FEATURE_HUMAN_READABLE, 
    9 +               OPT_HUMAN = (1 << (2 + 3*ENABLE_FEATURE_DF_FANCY)) * ENABLE_FEATURE_HUMAN_READABLE, 
    10 +               OPT_MEGA  = (1 << (3 + 3*ENABLE_FEATURE_DF_FANCY)) * ENABLE_FEATURE_HUMAN_READABLE, 
    11         }; 
    12         const char *disp_units_hdr = NULL; 
    13         char *chp;