diff options
author | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2016-10-19 10:34:27 -0200 |
---|---|---|
committer | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2016-10-19 10:34:27 -0200 |
commit | 697593d8d5b2e2287919423006c53dcac31d2b70 (patch) | |
tree | 0bf2588acdced47a573fc586f73f967174f36dcf /bugs | |
parent | e2dc807c6e93dc8819d065ae8e3808c720928bbd (diff) | |
download | lua-github-697593d8d5b2e2287919423006c53dcac31d2b70.tar.gz |
bug: When a coroutine tries to resume a non-suspended coroutine,
it can do some mess (and break C assertions) before detecting the error.
Diffstat (limited to 'bugs')
-rw-r--r-- | bugs | 30 |
1 files changed, 28 insertions, 2 deletions
@@ -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 = [[ ]], |