[PATCH] vcruntime140_1: Don't terminate on -1 trylevel.

Daniel Lehman dlehman25 at gmail.com
Wed Jun 3 21:51:50 CDT 2020


Signed-off-by: Daniel Lehman <dlehman25 at gmail.com>

---
trylevel is promoted to unsigned (unwind_count is UINT)
so a trylevel of -1 still results in a terminate()

---
 dlls/vcruntime140_1/except_x86_64.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/dlls/vcruntime140_1/except_x86_64.c b/dlls/vcruntime140_1/except_x86_64.c
index 4203373294..b4b7bd2348 100644
--- a/dlls/vcruntime140_1/except_x86_64.c
+++ b/dlls/vcruntime140_1/except_x86_64.c
@@ -426,7 +426,7 @@ static void cxx_local_unwind4(ULONG64 frame, DISPATCHER_CONTEXT *dispatch,
 
     TRACE("current level: %d, last level: %d\n", trylevel, last_level);
 
-    if (trylevel<-1 || trylevel>=descr->unwind_count)
+    if (trylevel<-1 || trylevel>=(int)descr->unwind_count)
     {
         ERR("invalid trylevel %d\n", trylevel);
         terminate();
-- 
2.17.1




More information about the wine-devel mailing list