lua.org patch 2 for lua-5.1.5. from http://www.lua.org/bugs.html Upstream-Status: Backport Signed-off-by: Marko Lindqvist diff -Nurd lua-5.1.5/src/lzio.c lua-5.1.5/src/lzio.c --- lua-5.1.5/src/lzio.c 2007-12-27 15:02:25.000000000 +0200 +++ lua-5.1.5/src/lzio.c 2013-10-25 11:32:45.773536572 +0300 @@ -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; } diff -Nurd lua-5.1.5/src/lzio.h lua-5.1.5/src/lzio.h --- lua-5.1.5/src/lzio.h 2007-12-27 15:02:25.000000000 +0200 +++ lua-5.1.5/src/lzio.h 2013-10-25 11:31:50.301537789 +0300 @@ -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 */ };