hush: non-matching "case" statement sets $? to 0

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
1_26_stable
Denys Vlasenko 2016-11-04 18:52:48 +01:00
parent 672a55e606
commit 30bfcf612b
1 changed files with 2 additions and 0 deletions

View File

@ -7874,6 +7874,8 @@ static int run_list(struct pipe *pi)
#endif
#if ENABLE_HUSH_CASE
if (rword == RES_CASE) {
/* Case which does not match and execute anything still sets $? to 0 */
G.last_exitcode = rcode = EXIT_SUCCESS;
case_word = expand_strvec_to_string(pi->cmds->argv);
continue;
}