Date: Sun, 18 May 2014 16:02:57 +0000 (UTC) From: Ian Lepore <ian@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r266404 - stable/10/sys/arm/arm Message-ID: <201405181602.s4IG2vVN002651@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: ian Date: Sun May 18 16:02:56 2014 New Revision: 266404 URL: http://svnweb.freebsd.org/changeset/base/266404 Log: MFC 256941: make sure the frame is indeed in the kernel memory. Modified: stable/10/sys/arm/arm/stack_machdep.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/arm/arm/stack_machdep.c ============================================================================== --- stable/10/sys/arm/arm/stack_machdep.c Sun May 18 15:31:53 2014 (r266403) +++ stable/10/sys/arm/arm/stack_machdep.c Sun May 18 16:02:56 2014 (r266404) @@ -43,13 +43,16 @@ __FBSDID("$FreeBSD$"); * APCS where it lays out the stack incorrectly. Because of this we disable * this when building for ARM EABI or when building with clang. */ + +extern vm_offset_t kernel_vm_end; + static void stack_capture(struct stack *st, u_int32_t *frame) { #if !defined(__ARM_EABI__) && !defined(__clang__) vm_offset_t callpc; - while (INKERNEL(frame)) { + while (INKERNEL(frame) && (vm_offset_t)frame < kernel_vm_end) { callpc = frame[FR_SCP]; if (stack_put(st, callpc) == -1) break;
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201405181602.s4IG2vVN002651>