From a9a3cf607ae7a8a3cfaaf44f599f743a0efab0f8 Mon Sep 17 00:00:00 2001 From: Jude Nelson Date: Fri, 5 Mar 2021 17:35:41 -0500 Subject: [PATCH 1/2] fix underflow crash --- src/lib.rs | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/lib.rs b/src/lib.rs index 3c1d889..a75a361 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -89,7 +89,17 @@ pub fn grow R>(stack_size: usize, callback: F) -> R { /// to determine whether a stack switch should be made or not. pub fn remaining_stack() -> Option { let current_ptr = current_stack_ptr(); - get_stack_limit().map(|limit| current_ptr - limit) + match get_stack_limit() { + Some(limit) => { + if current_ptr < limit { + None + } + else { + current_ptr - limit + } + }, + None => None + } } psm_stack_information! ( From 8e4509c1b913dab23e3220d4e58af3377fe9fd92 Mon Sep 17 00:00:00 2001 From: Jude Nelson Date: Fri, 5 Mar 2021 17:56:18 -0500 Subject: [PATCH 2/2] oops; typo --- src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib.rs b/src/lib.rs index a75a361..bdaf835 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -95,7 +95,7 @@ pub fn remaining_stack() -> Option { None } else { - current_ptr - limit + Some(current_ptr - limit) } }, None => None