Denys Vlasenko
53a7a9cd8c
ash: parser: Fix VSLENGTH parsing with trailing garbage
...
Let's adopt Herbert Xu's patch, not waiting for it to reach dash git:
hush already has a similar fix.
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2021-06-25 02:09:41 +02:00
Denys Vlasenko
ad57e4e4b2
ash: revert accidental change (should have been separate)
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2021-06-25 02:08:38 +02:00
Denys Vlasenko
53e5c59821
fdisk: commonalize strings
...
function old new delta
.rodata 103674 103667 -7
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2021-06-25 01:14:43 +02:00
Ron Yorston
a84bbc5425
cp,mv: fix -t DIR option
...
When the '-t DIR' option is used the loop over the remaining
arguments should terminate when a NULL pointer is reached.
function old new delta
mv_main 585 590 +5
cp_main 492 496 +4
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 2/0 up/down: 9/0) Total: 9 bytes
Signed-off-by: Ron Yorston <rmy@pobox.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2021-06-25 00:23:29 +02:00
Denys Vlasenko
294d0c85ad
xxd: compat tweak for -i
...
function old new delta
xxd_main 888 893 +5
.rodata 103669 103674 +5
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 2/0 up/down: 10/0) Total: 10 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2021-06-25 00:16:04 +02:00
Ron Yorston
2dade4f18a
uniq: really support -z
...
Commit 894466cc5
(uniq: support -z) added support for NUL delimited
output. Unfortunately nobody told getopt32().
Signed-off-by: Ron Yorston <rmy@pobox.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2021-06-24 23:37:06 +02:00
Denys Vlasenko
3b267e9925
switch_root: code shrink - use iterate_on_dir()
...
function old new delta
rmrf - 46 +46
delete_contents 181 99 -82
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 0/1 up/down: 46/-82) Total: -36 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2021-06-24 17:54:11 +02:00
Denys Vlasenko
4a68697521
libbb: do not check closedir() in remove_file()
...
If it's needed, there has to be a comment why. There isn't.
function old new delta
.rodata 103686 103669 -17
remove_file 598 571 -27
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/2 up/down: 0/-44) Total: -44 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2021-06-24 17:39:57 +02:00
Denys Vlasenko
6481070eb9
nproc: code shrink
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2021-06-24 13:47:49 +02:00
Denys Vlasenko
df96a3cd08
ls: code shrink
...
function old new delta
scan_and_display_dirs_recur 576 574 -2
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2021-06-24 13:37:53 +02:00
Denys Vlasenko
6d61eb1363
taskset: use iterate_on_dir()
...
function old new delta
iter - 27 +27
process_pid_str 854 856 +2
taskset_main 181 135 -46
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 1/1 up/down: 29/-46) Total: -17 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2021-06-24 12:02:17 +02:00
Denys Vlasenko
1746218bee
move iterate_on_dir() from e2fsprogs to libbb
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2021-06-24 11:42:55 +02:00
Denys Vlasenko
87c40cf4de
e2fsprogs: code shrink
...
function old new delta
print_e2flags_long - 109 +109
list_attributes 248 232 -16
print_e2flags 169 47 -122
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 0/2 up/down: 109/-138) Total: -29 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2021-06-24 09:31:57 +02:00
Denys Vlasenko
9468ea06d2
lsattr,chattr: do not open e.g. device files unless asked directly; do not follow links
...
Add O_NOFOLLOW (and O_NOCTTY for good measure) to open calls like e2fsprogs does.
In lsattr, when recursing, operate only on regular files, symlinks, and directories.
(Otherwise, "lsattr /dev" can e.g. open a watchdog device... not good).
At this time, looks like chattr/lsattr can't operate on symlink inodes -
ioctls do not work on open(O_PATH | O_NOFOLLOW) fds.
function old new delta
lsattr_dir_proc 168 203 +35
change_attributes 410 408 -2
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/1 up/down: 35/-2) Total: 33 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2021-06-24 01:07:56 +02:00
Denys Vlasenko
0e55af6c61
chattr: if IOC_FSGETXATTR fails, do not try IOC_FSSETXATTR
...
function old new delta
change_attributes 416 410 -6
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2021-06-23 19:44:15 +02:00
S Harris
5c89e5a04e
vi: fix read outside of text buffer during insert
...
Signed-off-by: S Harris <S.E.Harris@kent.ac.uk>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2021-06-23 19:15:07 +02:00
S Harris
e03b49477a
cpio: fix sscanf on unterminated buffer
...
Signed-off-by: S Harris <S.E.Harris@kent.ac.uk>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2021-06-23 19:06:09 +02:00
Denys Vlasenko
5709b51a75
chattr: fix "chattr =ae -R FILE"
...
-R is not an "unset these flags" argument, thus no conflict with "=".
function old new delta
.rodata 103684 103686 +2
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2021-06-23 18:57:00 +02:00
Denys Vlasenko
85a5bc9148
chattr,lsattr: share stat error message
...
function old new delta
.rodata 103692 103684 -8
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2021-06-23 15:33:22 +02:00
Denys Vlasenko
96436fb36a
e2fsprogs/*: remove ioctl calling obfuscation
...
function old new delta
change_attributes 326 416 +90
list_attributes 222 248 +26
close_silently 22 - -22
.rodata 103722 103692 -30
fgetsetversion 74 - -74
fgetsetprojid 107 - -107
fgetsetflags 148 - -148
------------------------------------------------------------------------------
(add/remove: 0/4 grow/shrink: 2/1 up/down: 116/-381) Total: -265 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2021-06-23 12:56:40 +02:00
Denys Vlasenko
e7ff017a1a
chattr: update list of attributes in --help
...
function old new delta
packed_usage 33717 33823 +106
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2021-06-23 09:42:01 +02:00
Denys Vlasenko
56bbbfae7d
cp: implement -n
...
function old new delta
.rodata 103681 103722 +41
packed_usage 33698 33717 +19
copy_file 1678 1696 +18
cp_main 500 492 -8
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 3/1 up/down: 78/-8) Total: 70 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2021-06-22 15:28:34 +02:00
Denys Vlasenko
91b9549a8c
crc32: code shrink for !CKSUM config
...
function old new delta
cksum_main 215 203 -12
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2021-06-22 10:24:06 +02:00
Denys Vlasenko
836580a7d6
cksum: fix handling of read errors
...
function old new delta
cksum_main 377 399 +22
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2021-06-22 09:29:22 +02:00
Denys Vlasenko
ea9b96e5aa
crc32: new applet
...
function old new delta
cksum_main 258 377 +119
.rodata 103672 103681 +9
applet_names 2745 2751 +6
applet_main 1588 1592 +4
packed_usage 33734 33698 -36
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 4/1 up/down: 138/-36) Total: 102 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2021-06-22 01:07:54 +02:00
Denys Vlasenko
0ec52d438a
cp: implement -t DIR
...
function old new delta
packed_usage 33713 33734 +21
.rodata 103670 103672 +2
cp_main 506 500 -6
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 2/1 up/down: 23/-6) Total: 17 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2021-06-21 19:38:39 +02:00
Denys Vlasenko
1de709fda2
cp: preparatory indenting of code block, no code changes
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2021-06-21 19:38:02 +02:00
Denys Vlasenko
34d79c9aa0
ascii: new applet
...
function old new delta
.rodata 103397 103670 +273
ascii_main - 177 +177
applet_names 2739 2745 +6
applet_main 1584 1588 +4
applet_suid 99 100 +1
applet_install_loc 198 199 +1
packed_usage 33716 33713 -3
------------------------------------------------------------------------------
(add/remove: 2/0 grow/shrink: 5/1 up/down: 462/-3) Total: 459 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2021-06-21 17:52:50 +02:00
Ron Yorston
51358757c7
vi: fix backward search with GNU regex
...
With FEATURE_VI_REGEX_SEARCH enabled backward searches don't work.
This is problematic on distros that enable regexes, such as Tiny
Core Linux and Fedora.
When calling GNU re_search() with a negative range parameter
(indicating a backward search) the start offset must be set to
the end of the area being searched.
The return value of re_search() is the offset of the matched pattern
from the start of the area being searched. For a successful search
(positive return value) char_search() can return the pointer to
the start of the area plus the offset.
FEATURE_VI_REGEX_SEARCH isn't enabled by default but when it is:
function old new delta
char_search 256 247 -9
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/1 up/down: 0/-9) Total: -9 bytes
Signed-off-by: Andrey Dobrovolsky <andrey.dobrovolsky.odessa@gmail.com>
Signed-off-by: Ron Yorston <rmy@pobox.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2021-06-21 15:37:28 +02:00
Denys Vlasenko
ac4786ba00
qwk: make code clearer, no actual code changes
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2021-06-20 22:52:29 +02:00
Denys Vlasenko
d82c937a31
df: support -t TYPE
...
function old new delta
packed_usage 33656 33716 +60
df_main 1029 1065 +36
.rodata 103395 103397 +2
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 3/0 up/down: 98/0) Total: 98 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2021-06-20 15:03:21 +02:00
Denys Vlasenko
a2a9113f35
df: POSIXLY_CORRECT sets _default_ scale, -m/-h overrides it
...
function old new delta
df_main 1034 1029 -5
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2021-06-20 14:46:19 +02:00
Denys Vlasenko
d71c7892ac
shred: with -u, unlink file even if it is zero length
...
function old new delta
shred_main 391 387 -4
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2021-06-20 13:48:21 +02:00
Denys Vlasenko
ec3170ac95
shred: implement -s SIZE
...
function old new delta
shred_main 337 391 +54
.rodata 103393 103395 +2
packed_usage 33666 33656 -10
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 2/1 up/down: 56/-10) Total: 46 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2021-06-20 13:08:50 +02:00
Denys Vlasenko
83dff7f431
lsattr: support more ext2 flags
...
function old new delta
e2attr_flags_lname 214 285 +71
e2attr_flags_value 52 80 +28
e2attr_flags_sname 14 21 +7
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 3/0 up/down: 106/0) Total: 106 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2021-06-20 12:34:05 +02:00
Denys Vlasenko
526b834790
lsattr,chattr: support -p
...
function old new delta
fgetsetprojid - 107 +107
list_attributes 169 222 +53
change_attributes 277 326 +49
chattr_main 272 307 +35
close_silently - 22 +22
.rodata 103378 103393 +15
packed_usage 33658 33666 +8
fgetsetversion 88 74 -14
fgetsetflags 162 148 -14
------------------------------------------------------------------------------
(add/remove: 2/0 grow/shrink: 5/2 up/down: 289/-28) Total: 261 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2021-06-20 11:02:49 +02:00
Denys Vlasenko
9c291f2cc0
taskset: fix for PID longer than 12 chars
...
Should we validate that PID is a number for "taskset -ap PID"?
We don't actually need it, and pathological input like
"../../DIR_WITH_LOTS_OF_PIDS" can only cause "taskset"ing
of many pids. Which is something user can do anyway.
function old new delta
taskset_main 190 181 -9
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2021-06-20 09:04:45 +02:00
Denys Vlasenko
25128176c4
taskset: implement -a
...
function old new delta
process_pid_str - 854 +854
.rodata 103363 103378 +15
packed_usage 33654 33658 +4
taskset_main 936 190 -746
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 2/1 up/down: 873/-746) Total: 127 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2021-06-19 17:42:35 +02:00
Denys Vlasenko
97c3b5e3ff
hush: fix bkslash+newline handling and number validation in ${NN} and ${#NN}
...
Entering "${1a}" into interactive shell was making it exit.
function old new delta
parse_dollar 824 958 +134
i_getch_and_eat_bkslash_nl - 44 +44
parse_expr 917 938 +21
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 2/0 up/down: 199/0) Total: 199 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2021-06-19 15:45:45 +02:00
Denys Vlasenko
fd217c1cbf
awk: after preinc/dec, only allow variable, field ref, array ref, or another preinc/dec
...
Accepting nonsense like "--4", and even "-- -4" is confusing.
function old new delta
parse_expr 917 938 +21
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2021-06-18 16:35:27 +02:00
Denys Vlasenko
dc30f3dce2
free: implement -h
...
function old new delta
.rodata 103331 103363 +32
packed_usage 33652 33654 +2
free_main 657 588 -69
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 2/1 up/down: 34/-69) Total: -35 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2021-06-18 12:08:02 +02:00
Denys Vlasenko
2c436679fb
xxd: implement -i "C style output"
...
function old new delta
xxd_main 710 888 +178
.rodata 103252 103331 +79
print_C_style - 78 +78
packed_usage 33639 33652 +13
next 276 278 +2
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 4/0 up/down: 350/0) Total: 350 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2021-06-18 00:59:17 +02:00
Denys Vlasenko
25fe2d50bd
xxd: do not try reading from closed stdin when non-existent file is given
...
Was:
xxd: FILE: No such file or directory
xxd: FILE: Bad file descriptor
function old new delta
next 276 278 +2
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2021-06-18 00:32:29 +02:00
Denys Vlasenko
4d16161797
xxd: implement -o DISPLAYOFFSET
...
function old new delta
xxd_main 680 710 +30
xstrtoll - 30 +30
bb_dump_dump 1511 1531 +20
rewrite 941 951 +10
packed_usage 33629 33639 +10
.rodata 103250 103252 +2
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 5/0 up/down: 102/0) Total: 102 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2021-06-17 23:53:30 +02:00
Denys Vlasenko
a0f8076d19
hexdump: fix error message
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2021-06-17 23:23:26 +02:00
Denys Vlasenko
f02b64de86
ionice: implement -t
...
function old new delta
packed_usage 33618 33629 +11
ionice_main 272 282 +10
.rodata 103250 103251 +1
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 3/0 up/down: 22/0) Total: 22 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2021-06-17 13:45:13 +02:00
Denys Vlasenko
c113796884
env: implement -0
...
function old new delta
packed_usage 33590 33618 +28
env_main 187 209 +22
.rodata 103242 103250 +8
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 3/0 up/down: 58/0) Total: 58 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2021-06-17 13:39:46 +02:00
Denys Vlasenko
91bc01c59b
mv: implement -t and -T
...
function old new delta
mv_main 496 585 +89
.rodata 103188 103242 +54
packed_usage 33549 33590 +41
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 3/0 up/down: 184/0) Total: 184 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2021-06-17 12:59:33 +02:00
Denys Vlasenko
894466cc51
uniq: support -z
...
function old new delta
uniq_main 391 427 +36
packed_usage 33570 33549 -21
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/1 up/down: 36/-21) Total: 15 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2021-06-17 00:36:13 +02:00
Ron Yorston
038d400709
vi: reject change command when motion fails
...
If the motion command used to define the range of a change, yank or
delete fails the whole command should be rejected. BusyBox vi already
handled failed searches in these circumstances. Add some more cases:
- non-existent mark: d'x
- movement beyond end of file: c99999+ or 99999<<
This is implemented using a global variable which is set when a command
error is detected. Unlike the case of motion within a line it's
insufficient to check that the motion command doesn't move the cursor:
this fails to process 'LyL' correctly, for example, as the second 'L'
doesn't move the cursor.
function old new delta
indicate_error 75 82 +7
find_range 686 692 +6
do_cmd 4851 4852 +1
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 3/0 up/down: 14/0) Total: 14 bytes
Signed-off-by: Ron Yorston <rmy@pobox.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2021-06-16 23:53:03 +02:00