Browse Source

fix unref default file descriptor while still in use (#2818)

Arnim Läuger 5 years ago
parent
commit
bc7ffb3eb8
1 changed files with 5 additions and 4 deletions
  1. 5 4
      app/modules/file.c

+ 5 - 4
app/modules/file.c

@@ -126,15 +126,16 @@ static int file_close( lua_State* L )
     ud = (file_fd_ud *)luaL_checkudata(L, 1, "file.obj");
   }
 
-  // unref default file descriptor
-  luaL_unref( L, LUA_REGISTRYINDEX, file_fd_ref );
-  file_fd_ref = LUA_NOREF;
-
   if(ud->fd){
       vfs_close(ud->fd);
       // mark as closed
       ud->fd = 0;
   }
+
+  // unref default file descriptor
+  luaL_unref( L, LUA_REGISTRYINDEX, file_fd_ref );
+  file_fd_ref = LUA_NOREF;
+
   return 0;
 }