SystemV-R4 ABI for M68k returns pointers in %a0, so we have to make sure
that CERROR returns -1 in %a0 in addition to %d0 and %d1, to make functions like mmap(2), mremap(2), shmat(2) or sbrk(2) return -1 in case of an error. A side effect of this bug was a segfault caused by jemalloc, when mmap() failed.
This commit is contained in:
parent
458410e7b5
commit
c9394f466a
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: cerror.S,v 1.14 2003/08/07 16:42:14 agc Exp $ */
|
||||
/* $NetBSD: cerror.S,v 1.15 2009/10/03 22:28:33 phx Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1990 The Regents of the University of California.
|
||||
@ -39,7 +39,7 @@
|
||||
#if 0
|
||||
RCSID("from: @(#)cerror.s 5.1 (Berkeley) 5/12/90")
|
||||
#else
|
||||
RCSID("$NetBSD: cerror.S,v 1.14 2003/08/07 16:42:14 agc Exp $")
|
||||
RCSID("$NetBSD: cerror.S,v 1.15 2009/10/03 22:28:33 phx Exp $")
|
||||
#endif
|
||||
#endif /* LIBC_SCCS and not lint */
|
||||
|
||||
@ -80,4 +80,7 @@ _ENTRY(CERROR)
|
||||
#endif /* _REENTRANT */
|
||||
movl #-1,%d0
|
||||
movl #-1,%d1
|
||||
#ifdef __SVR4_ABI__
|
||||
movl %d0,%a0
|
||||
#endif
|
||||
rts
|
||||
|
Loading…
x
Reference in New Issue
Block a user