Ron Yorston
e5213cee38
vi: failure to open file is not an error when initialising buffer
...
Commit 32afd3a
introduced these regressions on the master branch:
Starting vi with no filename on the command line gives the status message
"'(null)' Bad address" instead of "- No file 1/1 100%".
Starting vi with a non-existent file on the command line gives the status
message "'new.txt' No such file or directory" instead of "- new.txt 1/1 100%"
Signed-off-by: Ron Yorston <rmy@tigress.co.uk>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2015-01-07 17:00:48 +01:00
Denys Vlasenko
08364dab75
depmod: fix recent breakage in modules.dep generation
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2015-01-07 14:39:01 +01:00
Tito Ragusa
e5cae08f12
libpwdgrp: line counting in error meesages is broken, remove it
...
Signed-off-by: Tito Ragusa <farmatito@tiscali.it>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2015-01-06 01:22:36 +01:00
René Rhéaume
e76957708b
swaponoff: add support for -e
...
Signed-off-by: René Rhéaume <rene.rheaume@gmail.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2015-01-05 20:35:00 +01:00
Denys Vlasenko
1ec49732e2
mpstat: code shrink
...
function old new delta
get_uptime 134 129 -5
get_irqs_from_stat 110 103 -7
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2015-01-05 18:39:23 +01:00
Guillermo Rodriguez
75a1403f26
free: handle "cached" value too
...
function old new delta
free_main 356 481 +125
Signed-off-by: Guillermo Rodriguez <guille.rodriguez@gmail.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2015-01-05 18:34:53 +01:00
Denys Vlasenko
da9212667c
libbb: code shrink by factoring out common update_utmp_DEAD_PROCESS
...
function old new delta
update_utmp_DEAD_PROCESS - 17 +17
telnetd_main 1685 1674 -11
mark_terminated 56 45 -11
handle_sigchld 74 63 -11
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2015-01-05 15:37:58 +01:00
Denys Vlasenko
08b90a9d10
deleting unused ntpd_simple.c
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2015-01-05 15:12:37 +01:00
Denys Vlasenko
c5d4a04e45
libpwdgrp: fixes suggested by Tito, comment tweaks
...
function old new delta
bb_internal_getpwent_r 100 121 +21
parse_common 202 203 +1
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2015-01-05 15:09:04 +01:00
Stephen Heumann
b1044cfa8f
Properly report exit status values with the high bit set (128-255).
...
These were being reported as strange values because the WEXITSTATUS macro from the GNO headers would erroneously sign-extend them.
Thanks to Kelvin Sherlock for posting an example that demonstrated this problem.
2015-01-04 15:45:25 -06:00
Adam Tkac
4bf88d9094
ntpd: relicense ntpd applet to ISC-style license
...
OpenNTPd is licensed under ISC-style license so it's good idea to keep
ntpd applet under same license to avoid mess, instead of having
our changes to be under GPL.
Names of original code's authors are added.
Signed-off-by: Adam Tkac <vonsch@gmail.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2015-01-04 17:46:08 +01:00
Denys Vlasenko
db4d1051ca
libpwdgrp: another code shrink
...
function old new delta
massage_data_for_r_func - 110 +110
bb_internal_getpwent_r 173 100 -73
getXXnam_r 176 95 -81
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 0/2 up/down: 110/-154) Total: -44 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2015-01-04 02:34:52 +01:00
Denys Vlasenko
5acf1346b4
libpwdgrp: code shrink
...
function old new delta
parse_common 206 205 -1
getgrouplist_internal 229 225 -4
bb_internal_getpwent_r 182 173 -9
getXXnam 232 222 -10
getXXnam_r 216 176 -40
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/5 up/down: 0/-64) Total: -64 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2015-01-04 02:02:39 +01:00
Denys Vlasenko
12fc869560
libpwdgrp: getgrXXX: empty string is not a member name, do not store it
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2015-01-03 21:16:18 +01:00
Denys Vlasenko
402451aa19
fix a SEGV in previous commit
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2015-01-03 21:11:27 +01:00
Denys Vlasenko
f9936676bb
libpwdgrp: fix counting of commas in group list
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2015-01-03 21:03:39 +01:00
Denys Vlasenko
134c53098b
libpwdgrp: store getXXnam result in a single malloc block
...
This saves a bit of memory but more importantly, allows to create
xmalloc_getpwnam() API where result can be deleted simply using free().
function old new delta
getXXnam 134 173 +39
parse_common 188 212 +24
convert_to_struct 277 290 +13
get_S 90 88 -2
tokenize 129 126 -3
bb_internal_getpwent_r 175 172 -3
getXXnam_r 208 198 -10
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 3/4 up/down: 76/-18) Total: 58 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2015-01-03 20:47:47 +01:00
Denys Vlasenko
20c0a16334
libpwdgrp: make db->def[] one byte shorter
...
In the future I will need another uint8_t, want to fit it
w/o using another word on 32 bits.
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2015-01-03 19:12:49 +01:00
Denys Vlasenko
5e62a3d016
libpwdgrp: use a better estimate of max struct size
...
Previous code's trick with bitwise OR was giving this on 32-bit x86:
sizeof(struct passwd):28
sizeof(struct group):16
sizeof(struct spwd):36
sizeof(struct_result):60
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2015-01-03 17:53:49 +01:00
Denys Vlasenko
9dca6acaac
libpwdgrp: reinstate Tito's optional atexit freeing
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2015-01-03 16:09:05 +01:00
Denys Vlasenko
8d547aca75
libpwdgrp: fix a memory leak in getXXnam (we did not save address of string buf)
...
function old new delta
convert_to_struct 261 269 +8
const_sp_db 20 24 +4
const_pw_db 20 24 +4
const_gr_db 20 24 +4
tokenize 144 147 +3
parse_common 185 188 +3
get_S 82 85 +3
bb_internal_getpwent_r 188 185 -3
gr_off 4 - -4
getXXnam 171 165 -6
pw_off 7 - -7
getgrouplist_internal 237 229 -8
getXXnam_r 215 207 -8
sp_off 9 - -9
------------------------------------------------------------------------------
(add/remove: 0/3 grow/shrink: 7/4 up/down: 29/-45) Total: -16 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2015-01-03 15:54:04 +01:00
Denys Vlasenko
31d6734457
libpwdgrp: tweak comments, replace one xmalloc with xzalloc
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2015-01-03 15:15:47 +01:00
Denys Vlasenko
908b6e5dfd
libpwdgrp: use FAST_FUNC to make "matching ABI" optimization more likely to succeed
...
See bb_internal_get*nam_r size reduction:
function old new delta
bb_internal_getpwent_r 167 176 +9
getXXnam_r 204 206 +2
sulogin_main 326 325 -1
su_main 471 470 -1
read_line_input 3832 3831 -1
print_stat 865 864 -1
prepare_socket_fd 283 282 -1
load_crontab 777 776 -1
fork_job 456 455 -1
do_shm 884 883 -1
do_sem 637 636 -1
do_msg 783 782 -1
complete_username 124 123 -1
bb_internal_getgrouplist 71 70 -1
xgetpwuid 27 25 -2
xgetpwnam 27 25 -2
xgetgrnam 27 25 -2
xgetgrgid 27 25 -2
uid2uname 18 16 -2
login_main 980 978 -2
gid2group 18 16 -2
get_shell_name 54 52 -2
change_identity 50 48 -2
bb_internal_initgroups 50 48 -2
argstr 1261 1259 -2
print_perms 177 174 -3
inetd_main 2077 2074 -3
run_applet_no_and_exit 446 442 -4
fileaction_setowngrp 89 85 -4
deluser_main 312 308 -4
bb_internal_getpwuid 19 15 -4
bb_internal_getpwnam 11 7 -4
bb_internal_getgrnam 14 10 -4
bb_internal_getgrgid 19 15 -4
adduser_main 865 861 -4
passwd_main 989 984 -5
get_passwd 97 92 -5
data_extract_all 887 882 -5
check_user_passwd 490 485 -5
get_groups 81 75 -6
ftpd_main 2178 2171 -7
bb_internal_getspnam_r 42 18 -24
bb_internal_getpwnam_r 39 15 -24
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 2/41 up/down: 11/-153) Total: -142 bytes
text data bss dec hex filename
923167 928 17676 941771 e5ecb busybox_old
923023 928 17676 941627 e5e3b busybox_unstripped
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2015-01-02 22:31:07 +01:00
Tito Ragusa
1da09cfacf
libpwdgrp: rewritten to use malloced implementation
...
This removed buffer size limitations.
function old new delta
convert_to_struct - 269 +269
getXXnam_r - 204 +204
parse_common - 185 +185
getXXnam - 164 +164
tokenize - 126 +126
bb_internal_getpwent_r 102 167 +65
get_S 30 88 +58
getgrouplist_internal 195 240 +45
const_sp_db - 20 +20
const_pw_db - 20 +20
const_gr_db - 20 +20
bb_internal_endpwent 27 36 +9
bb_internal_endgrent 27 36 +9
decode_one_format 726 734 +8
bb_internal_setpwent 17 24 +7
volume_id_probe_iso9660 319 322 +3
scriptreplay_main 204 207 +3
mkfs_minix_main 2684 2687 +3
id_main 478 480 +2
hash_find 233 235 +2
pstree_main 321 322 +1
gr_off 3 4 +1
expand_one_var 1579 1578 -1
pwf 4 - -4
grf 4 - -4
pack_gzip 1787 1780 -7
addattr32 67 56 -11
buffer_fill_and_print 191 178 -13
dpkg_main 2944 2927 -17
bb_internal_setgrent 17 - -17
bb_internal_getpwuid 38 19 -19
bb_internal_getgrgid 44 19 -25
bb_internal_getpwnam 38 11 -27
bb_internal_getgrnam 44 14 -30
bb_internal_fgetpwent_r 51 - -51
bb_internal_fgetgrent_r 51 - -51
bb_internal_getspnam_r 121 42 -79
bb_internal_getpwnam_r 121 39 -82
bb_internal_getgrent_r 102 - -102
bb__parsepwent 110 - -110
bb_internal_getpwuid_r 113 - -113
bb_internal_getgrgid_r 113 - -113
bb__parsespent 120 - -120
bb_internal_getgrnam_r 121 - -121
bb__pgsreader 213 - -213
bb__parsegrent 226 - -226
------------------------------------------------------------------------------
(add/remove: 8/13 grow/shrink: 14/11 up/down: 1224/-1556) Total: -332 bytes
text data bss dec hex filename
923471 928 17684 942083 e6003 busybox_old
923167 928 17676 941771 e5ecb busybox_unstripped
Signed-off-by: Tito Ragusa <farmatito@tiscali.it>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2015-01-02 21:37:59 +01:00
Stephen Heumann
ba87092078
Work around problem where hush would hang after another process was ^C'd while reading from the terminal.
...
I think this problem is probably due to a bug in GNO's implementation of select().
The workaround is not to use poll (which calls select) when reading a key with no timeout (which is the normal case for command-line input).
2015-01-01 23:16:26 -06:00
Stephen Heumann
b220322ac5
Fix so history files on ProDOS volumes actually get replaced and thus shortened when they reach their max size.
...
Also, reduce the default history size.
2015-01-01 22:11:38 -06:00
Stephen Heumann
3380dae27a
If hush is invoked as a login shell, set up a handler so it will be invoked when system() is called.
2015-01-01 17:33:01 -06:00
Stephen Heumann
63f74a5ee7
Add sample startup scripts
2015-01-01 13:19:05 -06:00
Denys Vlasenko
78854520eb
modprobe: revert checking for /, stop doing basename() on modprobe args
...
function old new delta
process_module 726 719 -7
filename2modname 81 67 -14
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/2 up/down: 0/-21) Total: -21 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2015-01-01 19:02:40 +01:00
Bartosz Golaszewski
6c19d35f68
Makefile: fix cscope target
...
This target doesn't work with current directory layout. Just make cscope
index all .c and .h files.
While we're at it: add cscope output files to .gitignore.
Signed-off-by: Bartosz Golaszewski <bartekgola@gmail.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2014-12-31 21:29:05 +01:00
Denys Vlasenko
c76236fd7d
ash: fix a SEGV in ${#1}
...
function old new delta
varvalue 760 805 +45
evalvar 648 603 -45
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2014-12-29 00:04:18 +01:00
Stephen Heumann
ba2aa925bc
Fix sigaddset/sigdelset/sigismember macros to support signals above 16.
...
The versions in the GNO 2.0.6 headers are broken--they don't account for int being 16-bit, so they cut off the higher signals.
2014-12-28 16:06:45 -06:00
Stephen Heumann
01dbfccea6
Reset the terminal to our pgrp after groups, functions, and builtins, not just external command invocations.
...
This addresses a problem where something invoked in a group or function (e.g. gsh) could change the terminal's pgrp, and this would result in hush getting backgrounded.
We can still get strange behavior when a backgrounded child process changes the pgrp. Trying to deal with this would be inherently racy. Gsh also has problems in this scenario.
2014-12-28 12:22:37 -06:00
Stephen Heumann
9033a24562
Add support for additional startup files that will be sourced either always, for login shells, or for interactive shells.
2014-12-27 21:59:45 -06:00
Stephen Heumann
70ea37208b
Merge with BusyBox 1.23.0.
...
The only substantive change is about when simple line input mode is used.
I also bumped the version number and included a GNO-version-specific component.
2014-12-27 13:33:41 -06:00
Stephen Heumann
2c496f0bf2
Update README
2014-12-27 11:45:27 -06:00
Stephen Heumann
88869883b0
Update makefile, adding in functionality that was in extra scripts
2014-12-27 11:33:31 -06:00
Stephen Heumann
f101f364bc
Enable a couple optimizations that aren't reported to be buggy.
2014-12-27 10:07:53 -06:00
Stephen Heumann
5b1c69f8d6
Error handling in case termcap entry can't be found
2014-12-26 23:13:52 -06:00
Stephen Heumann
6dfc5eadb3
Changes to support GNO-style PATH in type and source commands, and in tab completion.
2014-12-26 21:49:55 -06:00
Stephen Heumann
4c37e05f0c
Reduce stack size to 3k.
...
Hush uses recursion for (at least) parsing nested constructs like { ... }, so it's possible for pathological/malicious scripts to overflow the stack, but this should be enough for just about anything non-pathological (e.g. up to about 10 levels of nested { }).
2014-12-26 16:33:17 -06:00
Stephen Heumann
79371e2122
Update test-running script to work on GNO (although it seems to hang on some tests)
2014-12-25 15:36:05 -06:00
John Schroeder
8074a6ca4d
udhcpd: account for script delay in lease
...
Prevent nasty surprises if script runs longer than lease time / 2.
Signed-off-by: John Schroeder <jschroed@gmail.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2014-12-25 21:12:51 +01:00
Stephen Heumann
3e96c3390f
Check for TERM changes every time we read input.
...
Also, fix possible crashes when termcap entries aren't found.
2014-12-24 14:54:06 -06:00
Denys Vlasenko
b9965077e5
Start 1.24.0 development cycle
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2014-12-24 02:06:02 +01:00
Denys Vlasenko
6968e08123
Bump version to 1.23.0
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2014-12-24 01:48:20 +01:00
Denys Vlasenko
ca9c4653a9
libbb: add sanity check in bb_arg_max()
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2014-12-24 01:46:29 +01:00
Denys Vlasenko
11775edbfc
randomconfig fixes
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2014-12-22 19:37:05 +01:00
Stephen Heumann
cdad130f39
Add a "prefix" builtin for setting GS/OS prefixes
2014-12-22 11:18:38 -06:00
Peter Kümmel
a6588fa102
Make it possible to override LOGIN_FAIL_DELAY in CONFIG_EXTRA_CFLAGS
...
Signed-off-by: Peter Kümmel <syntheticpp@gmx.net>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2014-12-22 01:55:54 +01:00