hush: in some cases, expand_on_ifs() relied of uninitialized memory
authorDenys Vlasenko <vda.linux@googlemail.com>
Fri, 27 Jul 2018 10:14:39 +0000 (12:14 +0200)
committerDenys Vlasenko <vda.linux@googlemail.com>
Fri, 27 Jul 2018 10:14:39 +0000 (12:14 +0200)
commit186cf4976768029113cf8438734a65bf2c489c5c
tree0b2c2a4acad5472d65d87d7274cf91da2152d6b4
parent7c5f18a3bab721cdfa515220ad8d481643aaae23
hush: in some cases, expand_on_ifs() relied of uninitialized memory

The n > 0 check to prevent access to the last byte of non-existing argv[-1]
wasn't enough. Switched to making sure there are initialized (zero) bytes there.

A predictable testcase is rather hard to construct, unfortunately,
contents of memory depends on allocator behavior and whatnot.

function                                             old     new   delta
o_save_ptr_helper                                    119     137     +18
expand_on_ifs                                        345     339      -6
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/1 up/down: 18/-6)              Total: 12 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
shell/hush.c