diff options
author | Ariane van der Steldt <ariane@cvs.openbsd.org> | 2011-04-15 21:39:46 +0000 |
---|---|---|
committer | Ariane van der Steldt <ariane@cvs.openbsd.org> | 2011-04-15 21:39:46 +0000 |
commit | 59923c29825f41832e3d6363d04c0e3f0c1b416d (patch) | |
tree | 0bf84717264d35832bb2b1d3a55da9dd4db0b4b4 | |
parent | fa619d7bd2e087182c8c00dac32225a414d6de0a (diff) |
Remove wrong check.
HPPA longjmp tests that the env parameter < the current stack pointer.
The test relies on the stack being at the end of the memory space.
This test is wrong for a couple of reasons:
- the main stack is at 0x78000000-0x80000000, but allocations between
0x80000000-0xc0000000 are available to the program,
- pthread stacks may be at any place in the address space, allowing a
heap-allocated env parameter to fail the check.
ok deraadt@, kettenis@, guenther@ at least
-rw-r--r-- | lib/libc/arch/hppa/gen/setjmp.S | 11 |
1 files changed, 1 insertions, 10 deletions
diff --git a/lib/libc/arch/hppa/gen/setjmp.S b/lib/libc/arch/hppa/gen/setjmp.S index a4610b51f0f..44077a9c1a5 100644 --- a/lib/libc/arch/hppa/gen/setjmp.S +++ b/lib/libc/arch/hppa/gen/setjmp.S @@ -1,4 +1,4 @@ -/* $OpenBSD: setjmp.S,v 1.7 2005/08/07 16:40:14 espie Exp $ */ +/* $OpenBSD: setjmp.S,v 1.8 2011/04/15 21:39:45 ariane Exp $ */ /*- * Copyright (c) 1990 The Regents of the University of California. @@ -114,9 +114,6 @@ EXIT(_setjmp) ENTRY(siglongjmp,64) /* XXX have to dup this from below */ - sub,>> %sp, %arg0, %r0 /* botch if jbuf was on stack */ - bl,n longjmperror, %rp - nop ldw 16(%arg0), %r1 /* botch if it's a real signal frame */ add,= %r0, %r1, %r0 bl,n longjmperror, %rp @@ -129,9 +126,6 @@ ENTRY(siglongjmp,64) ALTENTRY(longjmp) /* XXX have to dup this from below */ - sub,>> %sp, %arg0, %r0 /* botch if jbuf was on stack */ - bl,n longjmperror, %rp - nop ldw 16(%arg0), %r1 /* botch if it's a real signal frame */ add,= %r0, %r1, %r0 bl,n longjmperror, %rp @@ -156,9 +150,6 @@ ALTENTRY(longjmp) ldw HPPA_FRAME_ARG(1)(%sp), %arg1 ALTENTRY(_longjmp) - sub,>> %sp, %arg0, %r0 /* botch if jbuf was on stack */ - bl,n longjmperror, %rp - nop ldw 16(%arg0), %r1 /* botch if it's a real signal frame */ add,= %r0, %r1, %r0 bl,n longjmperror, %rp |