Denis Vlasenko [Fri, 25 May 2007 02:16:25 +0000 (02:16 -0000)]
hush: rework variable storage and environment handling.
More that -100 bytes of code + memory leak plugged.
Added a testcase for it.
Denis Vlasenko [Thu, 24 May 2007 13:52:46 +0000 (13:52 -0000)]
hush: update README with yet another failure case
Denis Vlasenko [Thu, 24 May 2007 13:22:47 +0000 (13:22 -0000)]
hush: fix segfaulting syntax error in interactive hush
Denis Vlasenko [Thu, 24 May 2007 13:22:01 +0000 (13:22 -0000)]
hush: improve 2 testsuite tests
Denis Vlasenko [Thu, 24 May 2007 12:26:39 +0000 (12:26 -0000)]
hush: add 2 tests for correct syntax error reporting
Denis Vlasenko [Thu, 24 May 2007 12:19:56 +0000 (12:19 -0000)]
udhcp: socketpair can fail if AF_UNIX is not available (e.g. if module is not loaded).
Error out on that.
Denis Vlasenko [Thu, 24 May 2007 12:18:16 +0000 (12:18 -0000)]
hush: fix handling of unmatched ${name (without closing '}') -
was eating all remaining input, potentially megabytes.
nofork: save/restore die_jmp too
nofork: use -2222 instead of -111 as "special" return valur for zero
(-111 is used by some applets. -2222 won't fit in exitcode and thus safer)
Denis Vlasenko [Wed, 23 May 2007 15:22:50 +0000 (15:22 -0000)]
hush: make syntax error messages a bit more useful
Denis Vlasenko [Wed, 23 May 2007 15:16:41 +0000 (15:16 -0000)]
hush: prepare testsuite for new, fixed error message format
Denis Vlasenko [Wed, 23 May 2007 13:01:10 +0000 (13:01 -0000)]
hush: fix job control with eval /bin/external_prog
hush: fix parsing of unterminated "str with no EOL
hush: improved make_string() (smaller, faster, needs less RAM)
hush: renamed several functions
Denis Vlasenko [Wed, 23 May 2007 00:32:25 +0000 (00:32 -0000)]
hush: fix a bit different instance of "No EOL" bug,
add testsuite for that. Expand another testsuite.
Denis Vlasenko [Wed, 23 May 2007 00:26:32 +0000 (00:26 -0000)]
fix execute bit on hush-misc/shift.tests
Denis Vlasenko [Tue, 22 May 2007 21:46:11 +0000 (21:46 -0000)]
hdparm: make -T -t code smaller (-194 bytes), and output prettier
Denis Vlasenko [Mon, 21 May 2007 23:30:54 +0000 (23:30 -0000)]
hush: add 3 CONFIG_xxx, allowing for smaller and less capable hush.
Minimal hush is ~9k now (lash is ~7k).
Denis Vlasenko [Mon, 21 May 2007 10:19:48 +0000 (10:19 -0000)]
shells: update README and testsuite. environment memory leak
needs to be fixed - and documented!
Denis Vlasenko [Mon, 21 May 2007 10:18:23 +0000 (10:18 -0000)]
hush: using smallints where we can. save ~20 bytes in code and
some data storage at runtime.
Denis Vlasenko [Sun, 20 May 2007 22:22:18 +0000 (22:22 -0000)]
hush: fix shift + $0 bug; add testcase
Denis Vlasenko [Sun, 20 May 2007 21:52:49 +0000 (21:52 -0000)]
hush: trivial size optimization
Denis Vlasenko [Sun, 20 May 2007 21:51:38 +0000 (21:51 -0000)]
hush: make process substitution configurable; add a testcase
Denis Vlasenko [Sun, 20 May 2007 17:12:43 +0000 (17:12 -0000)]
busybox.net: announce 1.5.1 on the web site.
Denis Vlasenko [Sun, 20 May 2007 13:08:31 +0000 (13:08 -0000)]
ash: implement type -p, costs less than 10 bytes
(patch by Mats Erik Andersson <mats.andersson64@comhem.se>)
Denis Vlasenko [Sun, 20 May 2007 12:32:41 +0000 (12:32 -0000)]
mount: fix mounting of symlinks (mount from util-linux allows that)
Denis Vlasenko [Fri, 18 May 2007 09:45:36 +0000 (09:45 -0000)]
cttyhack: new applet.
Denis Vlasenko [Fri, 18 May 2007 07:37:06 +0000 (07:37 -0000)]
make "static linking against glibc" an #error, not #warning
Denis Vlasenko [Fri, 18 May 2007 07:30:43 +0000 (07:30 -0000)]
awk: fix a trivial bug introduced by me.
This is how it goes. I break stuff by doing useless 'cleanups',
people fix the fallout. :(. Thanks rockeychu!
Denis Vlasenko [Fri, 18 May 2007 00:02:37 +0000 (00:02 -0000)]
we were basically ignoring CONFIG_USE_BB_PWD_GRP (assuming =y),
fix this
Denis Vlasenko [Thu, 17 May 2007 23:03:35 +0000 (23:03 -0000)]
awk: make code a bit less obfuscated
Denis Vlasenko [Thu, 17 May 2007 23:02:14 +0000 (23:02 -0000)]
several *.c files:
move 'extern environ' up to the location of #includes
Denis Vlasenko [Thu, 17 May 2007 16:37:22 +0000 (16:37 -0000)]
vi: remove two globals
awk: some 'lineno' vars were shorts, made them ints (code got smaller)
awk: rename global t to global ttt. still an awful name, but at least
you can grep for it now.
function old new delta
ttt - 28 +28
mysleep 104 120 +16
readit 408 418 +10
lineno 2 4 +2
parse_program 338 339 +1
evaluate 6446 6445 -1
syntax_error 25 23 -2
next_token 917 915 -2
new_node 26 24 -2
tv 16 8 -8
skip_spaces 68 53 -15
t 28 - -28
rfds 128 - -128
------------------------------------------------------------------------------
(add/remove: 1/2 grow/shrink: 4/6 up/down: 57/-186) Total: -129 bytes
Denis Vlasenko [Thu, 17 May 2007 15:38:46 +0000 (15:38 -0000)]
hush: do "struct globals" trick. hush.o data+bss = 0 bytes now.
+60 bytes to image, but -8000 bytes in bss.
Denis Vlasenko [Thu, 17 May 2007 14:38:17 +0000 (14:38 -0000)]
hush: consolidated variable expansion for assignments and "normal" one.
-435 bytes. Tested against testsuite.
Denis Vlasenko [Thu, 17 May 2007 13:02:41 +0000 (13:02 -0000)]
more compile fixes from randomconfig run
Denis Vlasenko [Thu, 17 May 2007 12:58:30 +0000 (12:58 -0000)]
fix trivial compile errors found by randomconfig run
Denis Vlasenko [Wed, 16 May 2007 22:25:35 +0000 (22:25 -0000)]
netstat: fix error in new -W option handling
Denis Vlasenko [Wed, 16 May 2007 22:18:54 +0000 (22:18 -0000)]
hush: take care of several easy FIXMEs. -228 bytes.
Denis Vlasenko [Wed, 16 May 2007 15:05:36 +0000 (15:05 -0000)]
hush: another microscopic typo fix
Denis Vlasenko [Wed, 16 May 2007 12:57:12 +0000 (12:57 -0000)]
hush: fix English in comment
Denis Vlasenko [Wed, 16 May 2007 12:52:15 +0000 (12:52 -0000)]
hush: simplify read builtin; fix set_local_var (misplaced 'goto skip;')
Denis Vlasenko [Wed, 16 May 2007 10:39:24 +0000 (10:39 -0000)]
hush: fix expansion of quoted $VAR, $* and $@
Denis Vlasenko [Wed, 16 May 2007 09:36:55 +0000 (09:36 -0000)]
hush: fix incorrect processing of echo "'$var'".
hush: rename map[] and MAP_xxx, making them easier to understand.
hush: move testcase (which now passes) from hush-bugs to hush-parsing
Denis Vlasenko [Tue, 15 May 2007 23:57:46 +0000 (23:57 -0000)]
netstat: introduce -W: wide, ipv6-friendly output
netstat: shrink by ~500 bytes
(patch by Cristian Ionescu-Idbohrn <cristian.ionescu-idbohrn@axis.com>)
netstat: fix for bogus state value for raw sockets
Bernhard Reutner-Fischer [Tue, 15 May 2007 09:33:32 +0000 (09:33 -0000)]
- apply hunk that fixes an issue with (wrong?) dependencies. Initial notes were:
There is something wrong in the new buildsys: If one selects ip and has e.g.
rule or route unset, ip still wants to build those.
This fails (correctly) since rtnl_rttable_n2a and rtnl_rtrealm_n2a aren't
available if they were turned off. TODO: Talk to vda about this
Bernhard Reutner-Fischer [Tue, 15 May 2007 09:07:06 +0000 (09:07 -0000)]
- busybox.c was removed a while ago
Denis Vlasenko [Mon, 14 May 2007 22:09:52 +0000 (22:09 -0000)]
hush: move testsuite files from hush-bugs to hush-parsing
(as these bugs are now fixed)
Denis Vlasenko [Mon, 14 May 2007 16:23:23 +0000 (16:23 -0000)]
hush: more fixes to variable expansion, more testcases
Denis Vlasenko [Mon, 14 May 2007 16:19:34 +0000 (16:19 -0000)]
hush: move towards more correct variable expansion
hush: fix a few cases in FOR v IN ... construct
unfortunately, code growth is big - ~600 bytes
Denis Vlasenko [Sun, 13 May 2007 18:34:53 +0000 (18:34 -0000)]
hush: fix '{ false; echo $?; }' bug.
hush: expand testsuite. variable expansion is still very broken
Denis Vlasenko [Fri, 11 May 2007 12:57:35 +0000 (12:57 -0000)]
hush: reinstate hush_test, add testcases for process subst
Denis Vlasenko [Fri, 11 May 2007 12:56:43 +0000 (12:56 -0000)]
hush: fix bug in interactive shell introduced yesterday
hush: fix `process subst` (2 bugs)
NB: will delete and re-add hush_test in order to change file modes
Denis Vlasenko [Thu, 10 May 2007 23:06:55 +0000 (23:06 -0000)]
hush: fix "unterminated last line loops forever" bug
hush: add testsuite infrastructure
Denis Vlasenko [Thu, 10 May 2007 23:05:28 +0000 (23:05 -0000)]
hush: fix recent breakage (VAR=VAL stopped working)
Denis Vlasenko [Wed, 9 May 2007 22:16:08 +0000 (22:16 -0000)]
msh: fix obscure case with backticks and closed fd 1
Denis Vlasenko [Wed, 9 May 2007 21:57:23 +0000 (21:57 -0000)]
awk: don't segfault on printf(%*s). Close 1337.
Denis Vlasenko [Wed, 9 May 2007 21:27:15 +0000 (21:27 -0000)]
cryptpw: size reduction
function old new delta
cryptpw_main 198 140 -58
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/1 up/down: 0/-58) Total: -58 bytes
Denis Vlasenko [Wed, 9 May 2007 20:38:04 +0000 (20:38 -0000)]
mount: fix incorrect usage of strtok (inadvertently used NULL sometimes).
the change is "for(xxx)...." -> "if(var) for(xxx)...", but my gcc 4.1.2
adds _158 bytes_!! WTF?? 8(
Denis Vlasenko [Wed, 9 May 2007 18:32:54 +0000 (18:32 -0000)]
less: fix case when regex search finds nothing
Denis Vlasenko [Wed, 9 May 2007 12:50:08 +0000 (12:50 -0000)]
tftp: explain "block# 0" codepath; report our decision to bail out to server
if blocksize option doesn't look good (it was a FIXME. +33 bytes code);
make code more readable.
Denis Vlasenko [Tue, 8 May 2007 23:23:35 +0000 (23:23 -0000)]
cryptpw: forgot svn add... how typical of me :(
Denis Vlasenko [Tue, 8 May 2007 23:12:21 +0000 (23:12 -0000)]
tftp: code diet, and I think retransmits were broken.
function old new delta
static.errcode_str - 32 +32
tftp_main 359 345 -14
tftp_bb_error_msg 32 - -32
.rodata 130931 130899 -32
tftp 1720 1558 -162
------------------------------------------------------------------------------
(add/remove: 1/1 grow/shrink: 0/3 up/down: 32/-240) Total: -208 bytes
Denis Vlasenko [Tue, 8 May 2007 17:52:17 +0000 (17:52 -0000)]
cryptpw: new applet (a bit less than 3k added)
(by Thomas Lundquist <lists@zelow.no>)
Denis Vlasenko [Tue, 8 May 2007 17:27:17 +0000 (17:27 -0000)]
tail: fix SEGV on "tail -N"
config system: clarify PREFER_APPLETS/SH_STANDALONE effects in help text
Denis Vlasenko [Sun, 6 May 2007 22:51:52 +0000 (22:51 -0000)]
kill: improve comment
Denis Vlasenko [Sun, 6 May 2007 22:48:55 +0000 (22:48 -0000)]
kill: fix recent breakage of vda, also make code smaller by 21 bytes.
Denis Vlasenko [Sun, 6 May 2007 14:15:42 +0000 (14:15 -0000)]
hush: fix double-free in "echo TEST &"
Denis Vlasenko [Sun, 6 May 2007 01:37:21 +0000 (01:37 -0000)]
svlogd: fix 'SEGV on uninitialized data' and make it honor TERM
Denis Vlasenko [Sat, 5 May 2007 15:11:40 +0000 (15:11 -0000)]
hush: stop generating extra empty pipes in parse stage.
Denis Vlasenko [Sat, 5 May 2007 15:10:52 +0000 (15:10 -0000)]
hush: preparatory patch for removing extra empty pipes generation
in parse stage. No real code change here.
Denis Vlasenko [Fri, 4 May 2007 21:38:14 +0000 (21:38 -0000)]
fix -Werror compile
Denis Vlasenko [Fri, 4 May 2007 21:37:27 +0000 (21:37 -0000)]
hush: fix "while true; do true; done" + ctrl-z
Denis Vlasenko [Fri, 4 May 2007 14:54:36 +0000 (14:54 -0000)]
applets: fix compile-time warning
Denis Vlasenko [Fri, 4 May 2007 13:07:27 +0000 (13:07 -0000)]
hush: add parse tree debug print
Denis Vlasenko [Thu, 3 May 2007 23:39:35 +0000 (23:39 -0000)]
udhcpc: stop deleting our own pidfile if we daemonize.
udhcp[cd]: stop using atexit magic fir pidfile removal.
Denis Vlasenko [Thu, 3 May 2007 22:57:56 +0000 (22:57 -0000)]
awk: guard against empty environment
Denis Vlasenko [Thu, 3 May 2007 22:45:39 +0000 (22:45 -0000)]
hush: fix "true | exit 3; echo $?" bug
Denis Vlasenko [Wed, 2 May 2007 23:39:04 +0000 (23:39 -0000)]
hush: remove env builtin (it is buggy). Add comments
Denis Vlasenko [Wed, 2 May 2007 23:01:32 +0000 (23:01 -0000)]
fix suid config handling
Denis Vlasenko [Wed, 2 May 2007 22:22:23 +0000 (22:22 -0000)]
ifupdown: small optimization (avoid doing useless work if we are
not going to update state file)
Mike Frysinger [Wed, 2 May 2007 22:07:03 +0000 (22:07 -0000)]
allow people to stick custom things into Makefile.local so they dont need to update busybox files while integrating into other build systems (like uClinux-dist)
Denis Vlasenko [Wed, 2 May 2007 22:04:38 +0000 (22:04 -0000)]
ifupdown: mke it possible to use DHCP clients different from udhcp.
Denis Vlasenko [Wed, 2 May 2007 21:40:23 +0000 (21:40 -0000)]
hush: simplify debugging prints a little bit
Denis Vlasenko [Wed, 2 May 2007 21:39:29 +0000 (21:39 -0000)]
klogd: remove dependency on syslogd
Denis Vlasenko [Wed, 2 May 2007 21:38:44 +0000 (21:38 -0000)]
ifupdown: reread state file before rewriting it.
Fixes "ifup started another ifup" state corruption bug.
Patch by Natanael Copa <natanael.copa@gmail.com>.
Denis Vlasenko [Wed, 2 May 2007 15:35:45 +0000 (15:35 -0000)]
hush: add debugging for tracing execution,
add FIXME for 'true | exit 3; echo $?' case
Denis Vlasenko [Wed, 2 May 2007 15:34:47 +0000 (15:34 -0000)]
hush: fix incorrect exitcodes without job control
Denis Vlasenko [Tue, 1 May 2007 20:07:29 +0000 (20:07 -0000)]
test: code size saving, no logic changes
ps: fix warning, make a bit smaller
kill -l: make smaller & know much more signals
function old new delta
get_signum 121 153 +32
kill_main 826 843 +17
get_signame 44 36 -8
signals 252 224 -28
.rodata 131955 131923 -32
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 2/3 up/down: 49/-68) Total: -19 bytes
Denis Vlasenko [Sun, 29 Apr 2007 23:42:54 +0000 (23:42 -0000)]
ash,kill: use common code for kill applet/builtin
# make bloatcheck
function old new delta
evaltreenr 644 654 +10
evaltree 644 654 +10
parse_conf 1440 1444 +4
dpkg_deb_main 426 429 +3
ed_main 3319 3321 +2
passwd_main 2093 2091 -2
kill_main 830 826 -4
singlemount 4609 4601 -8
find_command 962 954 -8
get_lcm 123 105 -18
.rodata 132243 132147 -96
killcmd 449 120 -329
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 5/7 up/down: 29/-465) Total: -436 bytes
# size busybox_old busybox_unstripped
text data bss dec hex filename
723901 2940 27504 754345 b82a9 busybox_old
723457 2940 27504 753901 b80ed busybox_unstripped
Denis Vlasenko [Sun, 29 Apr 2007 23:38:12 +0000 (23:38 -0000)]
run_parts: do not check path portion of a name for "bad chars".
Needed for ifupdown. Patch by "Gabriel L. Somlo" <somlo@cmu.edu>
Denis Vlasenko [Sat, 28 Apr 2007 22:39:02 +0000 (22:39 -0000)]
ash: fix infinite loop on exit if tty is not there anymore
Denis Vlasenko [Sat, 28 Apr 2007 16:48:27 +0000 (16:48 -0000)]
hush: make job control and interactiveness configurable, part 2
Denis Vlasenko [Sat, 28 Apr 2007 16:48:04 +0000 (16:48 -0000)]
hush: make job control and interactiveness configurable, part 1
Denis Vlasenko [Sat, 28 Apr 2007 16:47:08 +0000 (16:47 -0000)]
hush: make hush properly detect EOF on stdin (even interactive one -
think about pty being destroyed) and exit.
Denis Vlasenko [Sat, 28 Apr 2007 16:45:59 +0000 (16:45 -0000)]
hush: add Ctrl-C handling to nofork case
Denis Vlasenko [Sat, 28 Apr 2007 16:45:22 +0000 (16:45 -0000)]
hush: better signal handling across ctrl-z
Denis Vlasenko [Sat, 28 Apr 2007 16:43:18 +0000 (16:43 -0000)]
hush: fix nofork + ctrl-Z clobbering of globals
Denis Vlasenko [Sat, 28 Apr 2007 16:42:11 +0000 (16:42 -0000)]
hush: add ctrl-Z handling for nofork'ed case
Denis Vlasenko [Sat, 21 Apr 2007 23:28:03 +0000 (23:28 -0000)]
find_root_device: use lstat - don't follow links
Denis Vlasenko [Sat, 21 Apr 2007 23:27:30 +0000 (23:27 -0000)]
hush: make Ctrl-Z work (at least sometimes)
Denis Vlasenko [Sat, 21 Apr 2007 17:28:51 +0000 (17:28 -0000)]
hust: add a comment
Denis Vlasenko [Sat, 21 Apr 2007 13:42:52 +0000 (13:42 -0000)]
hush: fix more backgrounding bugs. Plenty of them remains still.
Denis Vlasenko [Sat, 21 Apr 2007 10:01:14 +0000 (10:01 -0000)]
hush: explain why "pipe; exit $?" doesn't show correct exitcode