diff options
author | Elliott Hughes <enh@google.com> | 2019-01-22 12:52:55 -0800 |
---|---|---|
committer | Rob Landley <rob@landley.net> | 2019-01-22 18:31:24 -0600 |
commit | bbadc5e14136a4a2011080c08e064108d71e1429 (patch) | |
tree | d2b279d4c1ab3cc797764370c2ca3f058bd9b675 /toys | |
parent | 208163ac89cfc14db46cd089110517761b69dc76 (diff) | |
download | toybox-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')
-rw-r--r-- | toys/pending/sh.c | 4 |
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(); |