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