Denys Vlasenko
4d902ea9de
awk: fix beavior of "exit" without parameter
...
function old new delta
evaluate 3336 3339 +3
awk_exit 93 94 +1
awk_main 829 827 -2
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 2/1 up/down: 4/-2) Total: 2 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com >
2021-07-02 22:28:51 +02:00
Denys Vlasenko
8bb03da906
awk: rand() could return 1.0, fix this - should be in [0,1)
...
While at it, make it finer-grained (63 bits of randomness)
function old new delta
evaluate 3303 3336 +33
.rodata 104107 104111 +4
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 2/0 up/down: 37/0) Total: 37 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com >
2021-07-02 19:38:03 +02:00
Denys Vlasenko
37ae8cdc6e
awk: beautify builtins table, no code changes
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com >
2021-07-02 18:55:00 +02:00
Denys Vlasenko
47d9133896
awk: enforce simple builtins' argument number
...
function old new delta
evaluate 3215 3303 +88
.rodata 104036 104107 +71
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 2/0 up/down: 159/0) Total: 159 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com >
2021-07-02 18:28:12 +02:00
Denys Vlasenko
786ca197ad
awk: make builtin definitions more understandable, no code changes
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com >
2021-07-02 17:32:08 +02:00
Denys Vlasenko
640212ae0e
awk: do not special-case "delete"
...
Rework of the previous fix:
Can use operation attributes to disable arg evaluation instead of special-casing.
function old new delta
.rodata 104032 104036 +4
evaluate 3223 3215 -8
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/1 up/down: 4/-8) Total: -4 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com >
2021-07-02 15:21:36 +02:00
Denys Vlasenko
ef5463cf16
awk: shuffle globals for smaller offsets
...
function old new delta
awk_main 832 829 -3
evaluate 3229 3223 -6
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/2 up/down: 0/-9) Total: -9 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com >
2021-07-02 14:53:52 +02:00
Denys Vlasenko
966cafcc77
awk: use "static" tmpvars in main and exit
...
function old new delta
awk_exit 103 93 -10
awk_main 850 832 -18
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/2 up/down: 0/-28) Total: -28 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com >
2021-07-02 14:33:13 +02:00
Denys Vlasenko
1193c68fa7
awk: when parsing length(), simplify eating of LPAREN
...
function old new delta
parse_expr 945 948 +3
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com >
2021-07-02 14:29:01 +02:00
Denys Vlasenko
40573556f2
awk: shuffle functions to reduce forward declarations, no code changes
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com >
2021-07-02 14:27:40 +02:00
Denys Vlasenko
8b4c429025
awk: use static tmpvars instead of nvalloc(1)ed ones
...
ptest() was using this idea already.
As far as I can see, this is safe. Ttestsuite passes.
One downside is that a temporary from e.g. printf invocation
won't be freed until the next printf call.
function old new delta
awk_printf 481 468 -13
as_regex 137 111 -26
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/2 up/down: 0/-39) Total: -39 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com >
2021-07-01 17:50:26 +02:00
Denys Vlasenko
1573487e21
awk: rename temp variables, no code changes
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com >
2021-07-01 16:17:33 +02:00
Denys Vlasenko
d7354df169
awk: evaluate all, even superfluous function args
...
function old new delta
evaluate 3128 3135 +7
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com >
2021-06-30 12:52:51 +02:00
Denys Vlasenko
ca9278ee58
awk: rewrite "print" logic a bit to make it clearer
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com >
2021-06-30 12:42:39 +02:00
Denys Vlasenko
d150710169
awk: allow empty fuinctions with no arguments, disallow function redefinitions
...
function old new delta
.rodata 103681 103700 +19
parse_program 303 307 +4
evaluate 3145 3141 -4
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 2/1 up/down: 23/-4) Total: 19 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com >
2021-06-30 12:23:51 +02:00
Denys Vlasenko
86fc2872b3
awk: replace incorrect use of union in undefined function check (no code changes)
...
...which reveals that it's buggy: it thinks "func f(){}" is an undefined function!
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com >
2021-06-30 12:12:20 +02:00
Denys Vlasenko
6cf6f1eaee
awk: remove custom pool allocator for temporary awk variables
...
It seems to be designed to reduce overhead of malloc's auxiliary data,
by allocating at least 64 variables as a block.
With "struct var" being about 20-32 bytes long (32/64 bits),
malloc overhead for one temporary indeed is high, ~33% more memory used
than needed.
function old new delta
evaluate 3137 3145 +8
modprobe_main 798 803 +5
exec_builtin 1414 1419 +5
awk_printf 476 481 +5
as_regex 132 137 +5
EMSG_INTERNAL_ERROR 15 - -15
nvfree 169 116 -53
nvalloc 145 - -145
------------------------------------------------------------------------------
(add/remove: 0/2 grow/shrink: 5/1 up/down: 28/-213) Total: -185 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com >
2021-06-30 08:01:29 +02:00
Denys Vlasenko
f99800758e
modprobe: when reading modules.builtin, use basenames of files from it
...
function old new delta
modprobe_main 798 803 +5
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com >
2021-06-30 00:49:24 +02:00
Denys Vlasenko
3aff3b9cb8
awk: assorted optimizations
...
hash_find(): do not caclculate hash twice. Do not divide - can use
cheap multiply-by-8 shift.
nextword(): do not repeatedly increment in-memory value, do it in register,
then store final result.
hashwalk_init(): do not strlen() twice.
function old new delta
hash_search3 - 49 +49
hash_find 259 281 +22
nextword 19 16 -3
evaluate 3141 3137 -4
hash_search 54 28 -26
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 1/3 up/down: 71/-33) Total: 38 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com >
2021-06-29 19:07:36 +02:00
Denys Vlasenko
b3c91a127f
awk: free unused parsing structures after parse is done
...
function old new delta
hash_clear - 90 +90
awk_main 827 849 +22
clear_array 90 - -90
------------------------------------------------------------------------------
(add/remove: 1/1 grow/shrink: 1/0 up/down: 112/-90) Total: 22 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com >
2021-06-29 19:06:59 +02:00
Denys Vlasenko
21fbee2e87
awk: document which hashes are used at what state (parse/execute)
...
We can free them after they are no longer needed.
(Currently, being a NOEXEC applet is much larger waste of memory
for the case of long-running awk script).
function old new delta
awk_main 831 827 -4
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com >
2021-06-29 14:33:04 +02:00
Denys Vlasenko
6872c193a9
awk: fix parsing of expressions such as "v (a)"
...
function old new delta
next_token 812 825 +13
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com >
2021-06-29 12:16:36 +02:00
Denys Vlasenko
686287b5da
awk: deindent a block, no code changes
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com >
2021-06-29 03:47:46 +02:00
Denys Vlasenko
216d3d8ad9
awk: code shrink
...
function old new delta
parse_expr 948 945 -3
chain_expr 65 62 -3
chain_group 655 649 -6
parse_program 310 303 -7
rollback_token 10 - -10
------------------------------------------------------------------------------
(add/remove: 0/1 grow/shrink: 0/4 up/down: 0/-29) Total: -29 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com >
2021-06-29 03:44:56 +02:00
Denys Vlasenko
4f27503a1e
awk: get rid of "move name one char back" trick in next_token()
...
function old new delta
next_token 791 812 +21
awk_main 886 831 -55
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/1 up/down: 21/-55) Total: -34 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com >
2021-06-29 03:27:07 +02:00
Denys Vlasenko
f414fb4411
awk: when parsing TC_FUNCTION token, eat its opening '('
...
...like we do for array references.
function old new delta
parse_expr 938 948 +10
next_token 788 791 +3
parse_program 313 310 -3
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 2/1 up/down: 13/-3) Total: 10 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com >
2021-06-29 03:02:21 +02:00
Denys Vlasenko
cb6061a4e9
awk: g_buf[] does not need a separate allocation
...
function old new delta
exec_builtin 1400 1414 +14
evaluate 3132 3141 +9
getvar_s 121 125 +4
awk_main 902 886 -16
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 3/1 up/down: 27/-16) Total: 11 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com >
2021-06-29 02:43:02 +02:00
Denys Vlasenko
926420795b
awk: simplify parsing of function declaration
...
function old new delta
parse_program 328 313 -15
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com >
2021-06-29 02:37:10 +02:00
Denys Vlasenko
9782cb7774
awk: rename TC_SEQSTART/END to L/RPAREN, no code changes
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com >
2021-06-29 01:50:47 +02:00
Denys Vlasenko
a493441ca5
awk: deindent code block, no code changes
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com >
2021-06-29 01:30:49 +02:00
Denys Vlasenko
adcd9a6f34
awk: use TS_foo for combined token classes. No code changes
...
Confusion with "simple" classes was the cause of a bug fixed by previous commit
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com >
2021-06-29 01:23:37 +02:00
Denys Vlasenko
832cb4fcb9
awk: make ltclass ("last token class") local to next_token()
...
function old new delta
next_token 784 790 +6
next_input_file 219 216 -3
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/1 up/down: 6/-3) Total: 3 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com >
2021-06-29 01:09:08 +02:00
Denys Vlasenko
af0172369e
awk: remove redundant check
...
function old new delta
next_token 785 784 -1
parse_program 337 328 -9
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/2 up/down: 0/-10) Total: -10 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com >
2021-06-29 01:03:42 +02:00
Denys Vlasenko
0231e34427
ls: revert last change (short name must be allocated)
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com >
2021-06-25 19:48:34 +02:00
Denys Vlasenko
78645d8371
awk: move locals deeper into scopes where they are used, no logic changes
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com >
2021-06-25 19:41:05 +02:00
Denys Vlasenko
8c5da0323b
awk: more efficient -f FILE, document what "some trick in next_token" is
...
function old new delta
awk_main 890 898 +8
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com >
2021-06-25 19:38:27 +02:00
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
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
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
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
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
Denys Vlasenko
e7a8e8e30c
du: support -b "apparent size"
...
function old new delta
du 434 470 +36
packed_usage 33542 33570 +28
print 57 78 +21
du_main 286 302 +16
.rodata 103187 103188 +1
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 5/0 up/down: 102/0) Total: 102 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com >
2021-06-16 17:45:28 +02:00
Denys Vlasenko
46d315ae44
blockdev: support --get/setra
...
function old new delta
blockdev_main 251 263 +12
bdcmd_names 82 94 +12
packed_usage 33534 33542 +8
bdcmd_ioctl 44 52 +8
bdcmd_flags 11 13 +2
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 5/0 up/down: 42/0) Total: 42 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com >
2021-06-16 17:00:56 +02:00
Denys Vlasenko
609df6f22a
*: more --help tweaks
...
function old new delta
packed_usage 33522 33534 +12
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com >
2021-06-16 14:24:27 +02:00
Denys Vlasenko
57be5daa40
lsof: print fd# too
...
function old new delta
lsof_main 179 188 +9
.rodata 103194 103187 -7
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com >
2021-06-16 12:49:15 +02:00
Denys Vlasenko
1abaa6b84c
telnetd: give inetd.conf example in --help
...
function old new delta
packed_usage 33537 33522 -15
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com >
2021-06-16 10:49:18 +02:00
Denys Vlasenko
a885ce1af0
awk: fix use-after-free in "$BIGNUM1 $BIGGERNUM2" concat op
...
Second reference to a field reallocs/moves Fields[] array, but first ref
still tries to use the element where it was before move.
function old new delta
fsrealloc 94 106 +12
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com >
2021-06-16 09:21:40 +02:00
Denys Vlasenko
83a4967e50
hush: fix handling of "cmd && &"
...
function old new delta
done_pipe 213 231 +18
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com >
2021-06-15 18:14:27 +02:00
Denys Vlasenko
1b7a9b68d0
hush: fix handling of \^C and "^C"
...
function old new delta
parse_stream 2238 2252 +14
encode_string 243 256 +13
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 2/0 up/down: 27/0) Total: 27 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com >
2021-06-15 16:46:30 +02:00
Denys Vlasenko
04f052c56d
unlzma: fix a case where we could read before beginning of buffer
...
Testcase:
21 01 01 00 00 00 00 00 e7 01 01 01 ef 00 df b6
00 17 02 10 11 0f ff 00 16 00 00
Unfortunately, the bug is not reliably causing a segfault,
the behavior depends on what's in memory before the buffer.
function old new delta
unpack_lzma_stream 2762 2768 +6
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com >
2021-06-15 15:14:00 +02:00
Denys Vlasenko
4d4fc5ca5e
man: fix segfault in "man 1"
...
function old new delta
man_main 942 954 +12
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com >
2021-06-15 14:47:46 +02:00
Denys Vlasenko
e47000490c
shuf: simplify check that we have at least one FILE
...
function old new delta
.rodata 103190 103194 +4
packed_usage 33541 33537 -4
shred_main 354 337 -17
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/2 up/down: 4/-21) Total: -17 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com >
2021-06-15 10:39:33 +02:00
Denys Vlasenko
1f60d88cf6
*: more --help tweaks
...
function old new delta
packed_usage 33552 33541 -11
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com >
2021-06-15 10:00:18 +02:00
Denys Vlasenko
ebe8c14d34
udhcpc: do not use inet_addr() to parse -r REQ_IP, it's deprecated
...
...and we did not error-check it, and this is the only use of it:
function old new delta
inet_addr 37 - -37
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com >
2021-06-15 01:42:21 +02:00
Denys Vlasenko
9e27fed6b9
udhcpc: rename server_addr to server_id, fix id comparison if it's not specified
...
Even though it is _meant to be_ an IP address, in the wild servers sometimes
give bogus server ids, like 1.1.1.1
function old new delta
udhcpc_main 2551 2542 -9
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com >
2021-06-15 01:15:44 +02:00
Denys Vlasenko
827b690fa7
udhcpc[6]: do not pass xid around, keep it in client_data.xid
...
function old new delta
perform_release 105 169 +64
perform_d6_release 259 262 +3
init_d6_packet 84 85 +1
send_d6_discover 286 285 -1
send_d6_select 128 126 -2
send_d6_renew 176 174 -2
send_d6_info_request 65 63 -2
udhcpc_main 2555 2551 -4
send_select 130 122 -8
send_renew 99 91 -8
send_discover 89 81 -8
udhcpc6_main 2636 2602 -34
send_release 74 - -74
------------------------------------------------------------------------------
(add/remove: 0/1 grow/shrink: 3/9 up/down: 68/-143) Total: -75 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com >
2021-06-15 01:06:42 +02:00
Denys Vlasenko
40a327aeae
udhcpc: send client-id option in DHCPDECLINE
...
function old new delta
add_serverid_and_clientid_options - 46 +46
send_decline 88 83 -5
perform_release 200 159 -41
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 0/2 up/down: 46/-46) Total: 0 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com >
2021-06-15 00:34:04 +02:00
Denys Vlasenko
e2b9215868
*: --help tweaks
...
function old new delta
packed_usage 33589 33552 -37
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com >
2021-06-14 20:47:20 +02:00
Denys Vlasenko
643b308029
base32/64: accept -i "skip bad chars" option (currently in effect unconditionally)
...
function old new delta
.rodata 103189 103190 +1
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com >
2021-06-13 23:58:17 +02:00
Denys Vlasenko
6f7b10cdab
*: more --help tweaking
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com >
2021-06-13 03:51:55 +02:00
Denys Vlasenko
1849285a20
*: more --help tweaks, mostly expanding ts --help
...
function old new delta
packed_usage 33554 33596 +42
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com >
2021-06-13 03:12:09 +02:00