hush: fix func_return2.tests on NOMMU
authorDenys Vlasenko <vda.linux@googlemail.com>
Mon, 9 Apr 2018 15:54:07 +0000 (17:54 +0200)
committerDenys Vlasenko <vda.linux@googlemail.com>
Mon, 9 Apr 2018 15:54:07 +0000 (17:54 +0200)
function                                             old     new   delta
hush_main                                           1714    1718      +4

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

index d5ea3b21ff6772452987100fb6af1839cd0eae42..3a4b5d894fcd13a8dc142f40cb71e94ccde51155 100644 (file)
@@ -9393,6 +9393,13 @@ int hush_main(int argc, char **argv)
 # if ENABLE_HUSH_LOOPS
                        optarg++;
                        G.depth_of_loop = bb_strtou(optarg, &optarg, 16);
+# endif
+# if ENABLE_HUSH_FUNCTIONS
+                       /* nommu uses re-exec trick for "... | func | ...",
+                        * should allow "return".
+                        * This accidentally allows returns in subshells.
+                        */
+                       G_flag_return_in_progress = -1;
 # endif
                        break;
                }