When loading a file, Lua may call the reader function again after it returned end of input.

Upstream: https://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 */
 };
 
 
