summaryrefslogtreecommitdiff
path: root/src/setjmp/longjmp.c
diff options
context:
space:
mode:
authorJakob Kaivo <jkk@ung.org>2024-06-04 13:09:32 -0400
committerJakob Kaivo <jkk@ung.org>2024-06-04 13:09:32 -0400
commitea6cb2d3bb1796aef2c195079fe91311a43f4b82 (patch)
tree05849e82b3791e6b8132a34d5fe04e98b2665ba7 /src/setjmp/longjmp.c
parent9c1836f093bf18db12eef6d437ee856b4c888c95 (diff)
implement jmp_buf tracking and disallow setjmp macro suppression
Diffstat (limited to 'src/setjmp/longjmp.c')
-rw-r--r--src/setjmp/longjmp.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/setjmp/longjmp.c b/src/setjmp/longjmp.c
index 117910fc..2208aec7 100644
--- a/src/setjmp/longjmp.c
+++ b/src/setjmp/longjmp.c
@@ -1,4 +1,5 @@
#include <setjmp.h>
+#include "_setjmp.h"
#include "_safety.h"
/** restore calling environment **/
@@ -7,6 +8,7 @@ _Noreturn void longjmp(jmp_buf env, int val)
{
extern _Noreturn void ___longjmp(jmp_buf);
SIGNAL_SAFE(0);
+ ASSERT_JMP_BUF(env);
/* use val if nonzero, otherwise 1 */
env[0] = val ? val : 1;