NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

PR/59351 CVS commit: src/tests/lib/libc/setjmp



The following reply was made to PR port-arm/59351; it has been noted by GNATS.

From: "Taylor R Campbell" <riastradh%netbsd.org@localhost>
To: gnats-bugs%gnats.NetBSD.org@localhost
Cc: 
Subject: PR/59351 CVS commit: src/tests/lib/libc/setjmp
Date: Mon, 28 Apr 2025 00:28:27 +0000

 Module Name:	src
 Committed By:	riastradh
 Date:		Mon Apr 28 00:28:27 UTC 2025
 
 Modified Files:
 	src/tests/lib/libc/setjmp: t_sigstack.c
 
 Log Message:
 t_sigstack: Don't do atf_tc_expect_fail then atf_tc_expect_signal.
 
 atf interprets this sequence, with no intervening atf_tc_fail, to
 mean the xfail failed to fail so it fails.  (Got that?)  That is, it
 is interpreted somewhat like
 
 	atf_tc_expect_fail(...);
 	... there is supposed to be a failure here ...
 	atf_tc_expect_pass();
 	... remaining checks are expected to pass ...
 
 where a lack of failures between the xfail and the xpass means the
 expectation was not met.
 
 But in this case, there are two compounding bugs:
 
 1. the compat 1.3 setjmp has botched its registers, as uwe@
    discovered, so it is expected to crash on SIGSEGV (PR 59351); and
 
 2. the compat 1.3 longjmp restores the stack poiter and signal mask
    in the wrong order, so it is expected to fail the test (PR 57946).
 
 Since the crash in setjmp triggers before the failure after longjmp,
 only do atf_tc_expect_signal; once that is fixed we can re-enable the
 atf_tc_expect_fail for longjmp.
 
 PR lib/57946: longjmp fails to restore stack first before restoring
 signal mask on most architectures
 
 PR port-arm/59351: compat_setjmp is busted
 
 
 To generate a diff of this commit:
 cvs rdiff -u -r1.21 -r1.22 src/tests/lib/libc/setjmp/t_sigstack.c
 
 Please note that diffs are not public domain; they are subject to the
 copyright notices on the relevant files.
 


Home | Main Index | Thread Index | Old Index