summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--usr/src/test/os-tests/tests/i386/badseg.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/usr/src/test/os-tests/tests/i386/badseg.c b/usr/src/test/os-tests/tests/i386/badseg.c
index 6bf4e0260f..7e5e8b8a32 100644
--- a/usr/src/test/os-tests/tests/i386/badseg.c
+++ b/usr/src/test/os-tests/tests/i386/badseg.c
@@ -57,17 +57,19 @@ static void
resetseg(uint_t seg)
{
ucontext_t ucp;
- int done = 0;
+ volatile int done = 0;
int rc = getcontext(&ucp);
if (done) {
- rc = getcontext(&ucp);
+ (void) getcontext(&ucp);
return;
}
- done = 1;
- ucp.uc_mcontext.gregs[seg] = selector;
- setcontext(&ucp);
+ if (rc == 0) {
+ done = 1;
+ ucp.uc_mcontext.gregs[seg] = selector;
+ setcontext(&ucp);
+ }
abort();
}