add write error detection in node_compile()
This commit is contained in:
parent
4a69d24205
commit
d0e6ab38df
|
@ -382,7 +382,10 @@ static int node_compile( lua_State* L )
|
||||||
int result = luaU_dump(L, f, writer, &file_fd, stripping);
|
int result = luaU_dump(L, f, writer, &file_fd, stripping);
|
||||||
lua_unlock(L);
|
lua_unlock(L);
|
||||||
|
|
||||||
fs_flush(file_fd);
|
if (fs_flush(file_fd) < 0) { // result codes aren't propagated by flash_fs.h
|
||||||
|
// overwrite Lua error, like writer() does in case of a file io error
|
||||||
|
result = 1;
|
||||||
|
}
|
||||||
fs_close(file_fd);
|
fs_close(file_fd);
|
||||||
file_fd = FS_OPEN_OK - 1;
|
file_fd = FS_OPEN_OK - 1;
|
||||||
|
|
||||||
|
@ -392,6 +395,9 @@ static int node_compile( lua_State* L )
|
||||||
if (result == LUA_ERR_CC_NOTINTEGER) {
|
if (result == LUA_ERR_CC_NOTINTEGER) {
|
||||||
return luaL_error(L, "target lua_Number is integral but fractional value found");
|
return luaL_error(L, "target lua_Number is integral but fractional value found");
|
||||||
}
|
}
|
||||||
|
if (result == 1) { // result status generated by writer() or fs_flush() fail
|
||||||
|
return luaL_error(L, "writing to file failed");
|
||||||
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue