mirror of
https://git.busybox.net/buildroot.git
synced 2024-12-01 09:23:29 +08:00
lua: add an upstream patch
from http://www.lua.org/bugs.html Signed-off-by: Francois Perrad <francois.perrad@gadz.org> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
This commit is contained in:
parent
751d85a7f8
commit
6a471a1cb2
46
package/lua/5.1.5/lua-12-fix-reader-at-eoz.patch
Normal file
46
package/lua/5.1.5/lua-12-fix-reader-at-eoz.patch
Normal file
@ -0,0 +1,46 @@
|
||||
When loading a file, Lua may call the reader function again after it returned end of input.
|
||||
|
||||
Fetch from: http://www.lua.org/bugs.html#5.1.5-2
|
||||
|
||||
Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
|
||||
|
||||
Index: b/src/lzio.c
|
||||
===================================================================
|
||||
--- a/src/lzio.c
|
||||
+++ b/src/lzio.c
|
||||
@@ -22,10 +22,14 @@
|
||||
size_t size;
|
||||
lua_State *L = z->L;
|
||||
const char *buff;
|
||||
+ if (z->eoz) return EOZ;
|
||||
lua_unlock(L);
|
||||
buff = z->reader(L, z->data, &size);
|
||||
lua_lock(L);
|
||||
- if (buff == NULL || size == 0) return EOZ;
|
||||
+ if (buff == NULL || size == 0) {
|
||||
+ z->eoz = 1; /* avoid calling reader function next time */
|
||||
+ return EOZ;
|
||||
+ }
|
||||
z->n = size - 1;
|
||||
z->p = buff;
|
||||
return char2int(*(z->p++));
|
||||
@@ -51,6 +55,7 @@
|
||||
z->data = data;
|
||||
z->n = 0;
|
||||
z->p = NULL;
|
||||
+ z->eoz = 0;
|
||||
}
|
||||
|
||||
|
||||
Index: b/src/lzio.h
|
||||
===================================================================
|
||||
--- a/src/lzio.h
|
||||
+++ b/src/lzio.h
|
||||
@@ -59,6 +59,7 @@
|
||||
lua_Reader reader;
|
||||
void* data; /* additional data */
|
||||
lua_State *L; /* Lua state (for reader) */
|
||||
+ int eoz; /* true if reader has no more data */
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user