summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRich Felker <dalias@aerifal.cx>2024-06-23 20:52:53 -0400
committerRich Felker <dalias@aerifal.cx>2024-06-23 20:52:53 -0400
commit008f737ddf5de815ef7e26d195767d927c8c8e76 (patch)
tree122431d8f23b655f767c6f37e4907e62b2f5e535 /src
parent947b4574fa7998f027d3906e1f53acb9a7553c61 (diff)
downloadmusl-008f737ddf5de815ef7e26d195767d927c8c8e76.tar.gz
siglongjmp: document why this function just calls longjmp
Diffstat (limited to 'src')
-rw-r--r--src/signal/siglongjmp.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/signal/siglongjmp.c b/src/signal/siglongjmp.c
index bc317acc..53789b23 100644
--- a/src/signal/siglongjmp.c
+++ b/src/signal/siglongjmp.c
@@ -5,5 +5,10 @@
_Noreturn void siglongjmp(sigjmp_buf buf, int ret)
{
+ /* If sigsetjmp was called with nonzero savemask flag, the address
+ * longjmp will return to is inside of sigsetjmp. The signal mask
+ * will then be restored in the returned-to context instead of here,
+ * which matters if the context we are returning from may not have
+ * sufficient stack space for signal delivery. */
longjmp(buf, ret);
}