parent
462dabc7f5
commit
e0d13e77d0
@ -1,18 +0,0 @@ |
||||
--- a/applets/Kbuild
|
||||
+++ b/applets/Kbuild
|
||||
@@ -28,13 +28,13 @@ HOSTCFLAGS_usage_pod.o = -I$(srctree_sla
|
||||
applets/applets.o: include/usage_compressed.h include/applet_tables.h
|
||||
|
||||
applets/applet_tables: .config $(srctree_slash)include/applets.h
|
||||
-applets/usage: .config $(srctree_slash)include/applets.h
|
||||
+applets/usage: .config $(srctree_slash)include/applets.h include/autoconf.h
|
||||
applets/usage_pod: .config include/applet_tables.h $(srctree_slash)include/applets.h
|
||||
|
||||
quiet_cmd_gen_usage_compressed = GEN include/usage_compressed.h
|
||||
cmd_gen_usage_compressed = $(srctree_slash)applets/usage_compressed include/usage_compressed.h applets
|
||||
|
||||
-include/usage_compressed.h: applets/usage $(srctree_slash)applets/usage_compressed
|
||||
+include/usage_compressed.h: applets/usage $(srctree_slash)applets/usage_compressed include/autoconf.h
|
||||
$(call cmd,gen_usage_compressed)
|
||||
|
||||
quiet_cmd_gen_applet_tables = GEN include/applet_tables.h
|
@ -1,46 +0,0 @@ |
||||
--- a/networking/ping.c
|
||||
+++ b/networking/ping.c
|
||||
@@ -79,6 +79,7 @@ static int in_cksum(unsigned short *buf,
|
||||
/* simple version */
|
||||
|
||||
static char *hostname;
|
||||
+static unsigned datalen = DEFDATALEN;
|
||||
|
||||
static void noresp(int ign UNUSED_PARAM)
|
||||
{
|
||||
@@ -91,7 +92,7 @@ static void ping4(len_and_sockaddr *lsa)
|
||||
struct sockaddr_in pingaddr;
|
||||
struct icmp *pkt;
|
||||
int pingsock, c;
|
||||
- char packet[DEFDATALEN + MAXIPLEN + MAXICMPLEN];
|
||||
+ char packet[datalen + ICMP_MINLEN + MAXIPLEN + MAXICMPLEN];
|
||||
|
||||
pingsock = create_icmp_socket();
|
||||
pingaddr = lsa->u.sin;
|
||||
@@ -101,7 +102,7 @@ static void ping4(len_and_sockaddr *lsa)
|
||||
pkt->icmp_type = ICMP_ECHO;
|
||||
pkt->icmp_cksum = in_cksum((unsigned short *) pkt, sizeof(packet));
|
||||
|
||||
- c = xsendto(pingsock, packet, DEFDATALEN + ICMP_MINLEN,
|
||||
+ c = xsendto(pingsock, packet, datalen + ICMP_MINLEN,
|
||||
(struct sockaddr *) &pingaddr, sizeof(pingaddr));
|
||||
|
||||
/* listen for replies */
|
||||
@@ -135,7 +136,7 @@ static void ping6(len_and_sockaddr *lsa)
|
||||
struct icmp6_hdr *pkt;
|
||||
int pingsock, c;
|
||||
int sockopt;
|
||||
- char packet[DEFDATALEN + MAXIPLEN + MAXICMPLEN];
|
||||
+ char packet[datalen + ICMP_MINLEN + MAXIPLEN + MAXICMPLEN];
|
||||
|
||||
pingsock = create_icmp6_socket();
|
||||
pingaddr = lsa->u.sin6;
|
||||
@@ -147,7 +148,7 @@ static void ping6(len_and_sockaddr *lsa)
|
||||
sockopt = offsetof(struct icmp6_hdr, icmp6_cksum);
|
||||
setsockopt(pingsock, SOL_RAW, IPV6_CHECKSUM, &sockopt, sizeof(sockopt));
|
||||
|
||||
- c = xsendto(pingsock, packet, DEFDATALEN + sizeof (struct icmp6_hdr),
|
||||
+ c = xsendto(pingsock, packet, datalen + sizeof (struct icmp6_hdr),
|
||||
(struct sockaddr *) &pingaddr, sizeof(pingaddr));
|
||||
|
||||
/* listen for replies */
|
@ -1,13 +0,0 @@ |
||||
--- a/networking/brctl.c
|
||||
+++ b/networking/brctl.c
|
||||
@@ -48,8 +48,9 @@ static ALWAYS_INLINE void strtotimeval(s
|
||||
{
|
||||
double secs;
|
||||
#if BRCTL_USE_INTERNAL
|
||||
+ errno = 0;
|
||||
secs = /*bb_*/strtod(time_str, NULL);
|
||||
- if (!secs)
|
||||
+ if (errno)
|
||||
#else
|
||||
if (sscanf(time_str, "%lf", &secs) != 1)
|
||||
#endif
|
@ -1,11 +0,0 @@ |
||||
--- a/include/platform.h
|
||||
+++ b/include/platform.h
|
||||
@@ -253,7 +253,7 @@ typedef int socklen_t;
|
||||
# define HAVE_FEATURES_H
|
||||
# include <stdint.h>
|
||||
# define HAVE_STDINT_H
|
||||
-#elif !defined __APPLE__
|
||||
+#elif !defined(__APPLE__) && !defined(__FreeBSD__)
|
||||
/* Largest integral types. */
|
||||
# if BB_BIG_ENDIAN
|
||||
/* Looks BROKEN! */
|
@ -0,0 +1,11 @@ |
||||
--- a/debianutils/mktemp.ci
|
||||
+++ b/debianutils/mktemp.c
|
||||
@@ -50,7 +50,7 @@ int mktemp_main(int argc UNUSED_PARAM, c
|
||||
opts = getopt32(argv, "dqtp:", &path);
|
||||
|
||||
chp = argv[optind] ? argv[optind] : xstrdup("tmp.XXXXXX");
|
||||
- if (chp[0] != '/' || (opts & 8))
|
||||
+ if (!strchr(chp, '/') || (opts & 8))
|
||||
chp = concat_path_file(path, chp);
|
||||
|
||||
if (opts & 1) { /* -d */
|
@ -0,0 +1,65 @@ |
||||
--- a/editors/sed.c
|
||||
+++ b/editors/sed.c
|
||||
@@ -61,6 +61,10 @@
|
||||
#include "libbb.h"
|
||||
#include "xregex.h"
|
||||
|
||||
+enum {
|
||||
+ OPT_in_place = 1 << 0,
|
||||
+};
|
||||
+
|
||||
/* Each sed command turns into one of these structures. */
|
||||
typedef struct sed_cmd_s {
|
||||
/* Ordered by alignment requirements: currently 36 bytes on x86 */
|
||||
@@ -938,8 +942,11 @@ static void process_files(void)
|
||||
|
||||
if (matched) {
|
||||
/* once matched, "n,xxx" range is dead, disabling it */
|
||||
- if (sed_cmd->beg_line > 0)
|
||||
+ if (sed_cmd->beg_line > 0
|
||||
+ && !(option_mask32 & OPT_in_place) /* but not for -i */
|
||||
+ ) {
|
||||
sed_cmd->beg_line = -2;
|
||||
+ }
|
||||
sed_cmd->in_match = !(
|
||||
/* has the ending line come, or is this a single address command? */
|
||||
(sed_cmd->end_line ?
|
||||
@@ -1270,9 +1277,6 @@ static void add_cmd_block(char *cmdstr)
|
||||
int sed_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
|
||||
int sed_main(int argc UNUSED_PARAM, char **argv)
|
||||
{
|
||||
- enum {
|
||||
- OPT_in_place = 1 << 0,
|
||||
- };
|
||||
unsigned opt;
|
||||
llist_t *opt_e, *opt_f;
|
||||
int status = EXIT_SUCCESS;
|
||||
@@ -1292,6 +1296,7 @@ int sed_main(int argc UNUSED_PARAM, char
|
||||
opt_e = opt_f = NULL;
|
||||
opt_complementary = "e::f::" /* can occur multiple times */
|
||||
"nn"; /* count -n */
|
||||
+ /* -i must be first, to match OPT_in_place definition */
|
||||
opt = getopt32(argv, "irne:f:", &opt_e, &opt_f,
|
||||
&G.be_quiet); /* counter for -n */
|
||||
//argc -= optind;
|
||||
diff -urpN busybox-1.17.1/testsuite/sed.tests busybox-1.17.1-sed/testsuite/sed.tests
|
||||
--- busybox-1.17.1/testsuite/sed.tests 2010-07-06 04:25:54.000000000 +0200
|
||||
+++ busybox-1.17.1-sed/testsuite/sed.tests 2010-08-01 04:19:26.000000000 +0200
|
||||
@@ -270,11 +270,16 @@ testing "sed a cmd ended by double backs
|
||||
| two \\
|
||||
'
|
||||
|
||||
-# fisrt three lines are deleted; 4th line is matched and printed by "2,3" and by "4" ranges
|
||||
+# first three lines are deleted; 4th line is matched and printed by "2,3" and by "4" ranges
|
||||
testing "sed with N skipping lines past ranges on next cmds" \
|
||||
"sed -n '1{N;N;d};1p;2,3p;3p;4p'" \
|
||||
"4\n4\n" "" "1\n2\n3\n4\n"
|
||||
|
||||
+testing "sed -i with address modifies all files, not only first" \
|
||||
+ "cp input input2; sed -i -e '1s/foo/bar/' input input2 && cat input input2; rm input2" \
|
||||
+ "bar\nbar\n" "foo\n" ""
|
||||
+
|
||||
+
|
||||
# testing "description" "arguments" "result" "infile" "stdin"
|
||||
|
||||
exit $FAILCOUNT
|
@ -0,0 +1,104 @@ |
||||
--- a/shell/ash.c
|
||||
+++ b/shell/ash.c
|
||||
@@ -4515,6 +4515,7 @@ clear_traps(void)
|
||||
INT_ON;
|
||||
}
|
||||
}
|
||||
+ may_have_traps = 0;
|
||||
}
|
||||
|
||||
/* Lives far away from here, needed for forkchild */
|
||||
diff -urpN busybox-1.17.1/shell/ash_test/ash-signals/signal7.right busybox-1.17.1-shell/shell/ash_test/ash-signals/signal7.right
|
||||
--- busybox-1.17.1/shell/ash_test/ash-signals/signal7.right 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ busybox-1.17.1-shell/shell/ash_test/ash-signals/signal7.right 2010-07-25 13:09:32.000000000 +0200
|
||||
@@ -0,0 +1 @@
|
||||
+Bug detected: 0
|
||||
diff -urpN busybox-1.17.1/shell/ash_test/ash-signals/signal7.tests busybox-1.17.1-shell/shell/ash_test/ash-signals/signal7.tests
|
||||
--- busybox-1.17.1/shell/ash_test/ash-signals/signal7.tests 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ busybox-1.17.1-shell/shell/ash_test/ash-signals/signal7.tests 2010-07-25 13:09:32.000000000 +0200
|
||||
@@ -0,0 +1,18 @@
|
||||
+bug() {
|
||||
+ trap : exit
|
||||
+ # Bug was causing sh to be run in subshell,
|
||||
+ # as if this line is replaced with (sh -c ...; exit $?) &
|
||||
+ # here:
|
||||
+ sh -c 'echo REAL_CHILD=$$' &
|
||||
+ echo PARENTS_IDEA_OF_CHILD=$!
|
||||
+ wait # make sure bkgd shell completes
|
||||
+}
|
||||
+
|
||||
+bug | {
|
||||
+while read varval; do
|
||||
+ eval $varval
|
||||
+done
|
||||
+test x"$REAL_CHILD" != x"" \
|
||||
+&& test x"$REAL_CHILD" = x"$PARENTS_IDEA_OF_CHILD"
|
||||
+echo "Bug detected: $?"
|
||||
+}
|
||||
diff -urpN busybox-1.17.1/shell/hush.c busybox-1.17.1-shell/shell/hush.c
|
||||
--- busybox-1.17.1/shell/hush.c 2010-07-25 00:12:43.000000000 +0200
|
||||
+++ busybox-1.17.1-shell/shell/hush.c 2010-07-25 13:09:32.000000000 +0200
|
||||
@@ -3901,8 +3901,6 @@ static void insert_bg_job(struct pipe *p
|
||||
|
||||
if (G_interactive_fd)
|
||||
printf("[%d] %d %s\n", job->jobid, job->cmds[0].pid, job->cmdtext);
|
||||
- /* Last command's pid goes to $! */
|
||||
- G.last_bg_pid = job->cmds[job->num_cmds - 1].pid;
|
||||
G.last_jobid = job->jobid;
|
||||
}
|
||||
|
||||
@@ -4825,6 +4823,8 @@ static int run_list(struct pipe *pi)
|
||||
if (G.run_list_level == 1)
|
||||
insert_bg_job(pi);
|
||||
#endif
|
||||
+ /* Last command's pid goes to $! */
|
||||
+ G.last_bg_pid = pi->cmds[pi->num_cmds - 1].pid;
|
||||
G.last_exitcode = rcode = EXIT_SUCCESS;
|
||||
debug_printf_exec(": cmd&: exitcode EXIT_SUCCESS\n");
|
||||
} else {
|
||||
diff -urpN busybox-1.17.1/shell/hush_test/hush-trap/signal7.right busybox-1.17.1-shell/shell/hush_test/hush-trap/signal7.right
|
||||
--- busybox-1.17.1/shell/hush_test/hush-trap/signal7.right 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ busybox-1.17.1-shell/shell/hush_test/hush-trap/signal7.right 2010-07-25 13:09:32.000000000 +0200
|
||||
@@ -0,0 +1 @@
|
||||
+Bug detected: 0
|
||||
diff -urpN busybox-1.17.1/shell/hush_test/hush-trap/signal7.tests busybox-1.17.1-shell/shell/hush_test/hush-trap/signal7.tests
|
||||
--- busybox-1.17.1/shell/hush_test/hush-trap/signal7.tests 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ busybox-1.17.1-shell/shell/hush_test/hush-trap/signal7.tests 2010-07-25 13:09:32.000000000 +0200
|
||||
@@ -0,0 +1,18 @@
|
||||
+bug() {
|
||||
+ trap : exit
|
||||
+ # Bug was causing sh to be run in subshell,
|
||||
+ # as if this line is replaced with (sh -c ...; exit $?) &
|
||||
+ # here:
|
||||
+ sh -c 'echo REAL_CHILD=$$' &
|
||||
+ echo PARENTS_IDEA_OF_CHILD=$!
|
||||
+ wait # make sure bkgd shell completes
|
||||
+}
|
||||
+
|
||||
+bug | {
|
||||
+while read varval; do
|
||||
+ eval $varval
|
||||
+done
|
||||
+test x"$REAL_CHILD" != x"" \
|
||||
+&& test x"$REAL_CHILD" = x"$PARENTS_IDEA_OF_CHILD"
|
||||
+echo "Bug detected: $?"
|
||||
+}
|
||||
diff -urpN busybox-1.17.1/shell/shell_common.c busybox-1.17.1-shell/shell/shell_common.c
|
||||
--- busybox-1.17.1/shell/shell_common.c 2010-07-06 04:25:54.000000000 +0200
|
||||
+++ busybox-1.17.1-shell/shell/shell_common.c 2010-07-27 08:41:43.000000000 +0200
|
||||
@@ -428,9 +428,14 @@ shell_builtin_ulimit(char **argv)
|
||||
val <<= l->factor_shift;
|
||||
}
|
||||
//bb_error_msg("opt %c val_str:'%s' val:%lld", opt_char, val_str, (long long)val);
|
||||
+ /* from man bash: "If neither -H nor -S
|
||||
+ * is specified, both the soft and hard
|
||||
+ * limits are set. */
|
||||
+ if (!opts)
|
||||
+ opts = OPT_hard + OPT_soft;
|
||||
if (opts & OPT_hard)
|
||||
limit.rlim_max = val;
|
||||
- if ((opts & OPT_soft) || opts == 0)
|
||||
+ if (opts & OPT_soft)
|
||||
limit.rlim_cur = val;
|
||||
//bb_error_msg("setrlimit(%d, %lld, %lld)", l->cmd, (long long)limit.rlim_cur, (long long)limit.rlim_max);
|
||||
if (setrlimit(l->cmd, &limit) < 0) {
|
Loading…
Reference in new issue