aboutsummaryrefslogtreecommitdiff
path: root/toys/pending/sh.c
diff options
context:
space:
mode:
authorElliott Hughes <enh@google.com>2019-01-22 12:52:55 -0800
committerRob Landley <rob@landley.net>2019-01-22 18:31:24 -0600
commitbbadc5e14136a4a2011080c08e064108d71e1429 (patch)
treed2b279d4c1ab3cc797764370c2ca3f058bd9b675 /toys/pending/sh.c
parent208163ac89cfc14db46cd089110517761b69dc76 (diff)
downloadtoybox-bbadc5e14136a4a2011080c08e064108d71e1429.tar.gz
Fix sigjmp_buf/jmp_buf mismatches.
Broke the bionic build: external/toybox/toys/net/netcat.c:188:37: error: incompatible pointer types assigning to 'sigjmp_buf *' (aka 'long (*)[33]') from 'jmp_buf *' (aka 'long (*)[32]') [-Werror,-Wincompatible-pointer-types] if (toys.optflags&FLAG_L) NOEXIT(child = XVFORK()); ^~~~~~~~~~~~~~~~~~~~~~~~ external/toybox/lib/lib.h:375:19: note: expanded from macro 'NOEXIT' #define NOEXIT(x) WOULD_EXIT(_noexit_res, x) ^~~~~~~~~~~~~~~~~~~~~~~~~~ external/toybox/lib/lib.h:367:16: note: expanded from macro 'WOULD_EXIT' toys.rebound = &_noexit; \ ^ ~~~~~~~~ 1 error generated.
Diffstat (limited to 'toys/pending/sh.c')
-rw-r--r--toys/pending/sh.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/toys/pending/sh.c b/toys/pending/sh.c
index 0bfd32c5..8a9e93b6 100644
--- a/toys/pending/sh.c
+++ b/toys/pending/sh.c
@@ -205,13 +205,13 @@ static void run_pipeline(struct pipeline *line)
// Is this command a builtin that should run in this process?
if (tl && (tl->flags & TOYFLAG_NOFORK)) {
struct toy_context temp;
- jmp_buf rebound;
+ sigjmp_buf rebound;
// This fakes lots of what toybox_main() does.
memcpy(&temp, &toys, sizeof(struct toy_context));
memset(&toys, 0, sizeof(struct toy_context));
- if (!setjmp(rebound)) {
+ if (!sigsetjmp(rebound, 1)) {
toys.rebound = &rebound;
toy_init(tl, cmd->argv);
tl->toy_main();