diff options
Diffstat (limited to '')
| -rw-r--r-- | lundump.c | 2 | ||||
| -rw-r--r-- | testes/calls.lua | 14 |
2 files changed, 1 insertions, 15 deletions
| @@ -81,7 +81,7 @@ static size_t loadUnsigned (LoadState *S, size_t limit) { | |||
| 81 | 81 | ||
| 82 | 82 | ||
| 83 | static size_t loadSize (LoadState *S) { | 83 | static size_t loadSize (LoadState *S) { |
| 84 | return loadUnsigned(S, ~(size_t)0); | 84 | return loadUnsigned(S, MAX_SIZET); |
| 85 | } | 85 | } |
| 86 | 86 | ||
| 87 | 87 | ||
diff --git a/testes/calls.lua b/testes/calls.lua index 664be1b4..a1938584 100644 --- a/testes/calls.lua +++ b/testes/calls.lua | |||
| @@ -342,20 +342,6 @@ do -- another bug (in 5.4.0) | |||
| 342 | end | 342 | end |
| 343 | 343 | ||
| 344 | 344 | ||
| 345 | if not _port then -- another bug (since 5.2) | ||
| 346 | -- corrupted binary dump: list of upvalue names is larger than number | ||
| 347 | -- of upvalues, overflowing the array of upvalues. | ||
| 348 | local code = | ||
| 349 | "\x1b\x4c\x75\x61\x54\x00\x19\x93\x0d\x0a\x1a\x0a\x04\x08\x08\x78\x56\z | ||
| 350 | \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x28\x77\x40\x00\x86\x40\z | ||
| 351 | \x74\x65\x6d\x70\x81\x81\x01\x00\x02\x82\x48\x00\x02\x00\xc7\x00\x01\z | ||
| 352 | \x00\x80\x80\x80\x82\x00\x00\x80\x81\x82\x78\x80\x82\x81\x86\x40\x74\z | ||
| 353 | \x65\x6d\x70" | ||
| 354 | |||
| 355 | assert(load(code)) -- segfaults in previous versions | ||
| 356 | end | ||
| 357 | |||
| 358 | |||
| 359 | x = string.dump(load("x = 1; return x")) | 345 | x = string.dump(load("x = 1; return x")) |
| 360 | a = assert(load(read1(x), nil, "b")) | 346 | a = assert(load(read1(x), nil, "b")) |
| 361 | assert(a() == 1 and _G.x == 1) | 347 | assert(a() == 1 and _G.x == 1) |
