From 697593d8d5b2e2287919423006c53dcac31d2b70 Mon Sep 17 00:00:00 2001 From: Roberto Ierusalimschy Date: Wed, 19 Oct 2016 10:34:27 -0200 Subject: bug: When a coroutine tries to resume a non-suspended coroutine, it can do some mess (and break C assertions) before detecting the error. --- bugs | 30 ++++++++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) (limited to 'bugs') diff --git a/bugs b/bugs index 0bb1ed35..caafae5a 100644 --- a/bugs +++ b/bugs @@ -3602,6 +3602,10 @@ patch = [[ } +----------------------------------------------------------------- +-- Lua 5.3.3 + + Bug{ what = [[expression list with four or more expressions in a 'for' loop can crash the interpreter]], @@ -3652,9 +3656,9 @@ It needs an "interceptor" 'memcmp' function that continues reading memory after a difference is found.]], patch = [[ 2c2 -< ** $Id: bugs,v 1.149 2016/07/15 17:24:09 roberto Exp roberto $ +< ** $Id: bugs,v 1.150 2016/07/19 17:10:45 roberto Exp roberto $ --- -> ** $Id: bugs,v 1.149 2016/07/15 17:24:09 roberto Exp roberto $ +> ** $Id: bugs,v 1.150 2016/07/19 17:10:45 roberto Exp roberto $ 263c263,264 < for (option = LUA_STRFTIMEOPTIONS; *option != '\0'; option += oplen) { --- @@ -3688,6 +3692,28 @@ patch = [[ } +Bug{ +what = [[When a coroutine tries to resume a non-suspended coroutine, +it can do some mess (and break C assertions) before detecting the error]], +report = [[Marco Schöpl, 2016/07/20]], +since = [[ ]], +fix = nil, +example = [[ +-- with C assertions on +A = coroutine.running() +B = coroutine.create(function() coroutine.resume(A) end) +coroutine.resume(B) + +-- or +A = coroutine.wrap(function() pcall(A, _) end) +A() +]], +patch = [[ +]] +} +]=] + + --[=[ Bug{ what = [[ ]], -- cgit v1.2.3-55-g6feb