Anonymous avatar Anonymous committed 002ceb5

Ensure a big enough buffer to hold the Lua script chunks dumped to memory.

Comments (0)

Files changed (1)

LuaFortran/wrap_lua_dump.c

 
   if ( sz + dat->length > dat->space ) {
     // Increase the size of the buffer, if needed.
-    dat->container = realloc(dat->container, dat->space*2);
+    dat->space = ((dat->space*2) > (sz + dat->length))
+               ? (dat->space*2) : (sz + dat->length);
+    dat->container = realloc(dat->container, dat->space);
     if (!dat->container) return -10;
-    dat->space = dat->space*2;
   }
 
   // Append the data to write into the buffer.
   size_t sz;
 
   dat.length = 0;
-  dat.space = 4096;
+  dat.space = 1024;
   dat.container = malloc(dat.space);
 
   errcode = lua_dump(L, buf_writer, &dat);
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.