Only re-open executable as O_RDWR if .ape present

This attempts to avoid a SIGSEGV in environments where the original
executable cannot be reopened as O_RDWR (AWS Lambda)

(hopefully) fixes #233
This commit is contained in:
Robert Hencke 2021-08-08 07:04:13 -04:00
parent 28a592f2d4
commit 9f4a4b615d

View file

@ -5035,7 +5035,6 @@ static int LuaGetComment(lua_State *L) {
return 1;
}
static int LuaGetHostOs(lua_State *L) {
const char *s = NULL;
if (IsLinux()) {
@ -6472,9 +6471,9 @@ static void RestoreApe(void) {
if (IsOpenbsd()) return; /* TODO */
if (IsNetbsd()) return; /* TODO */
if (endswith(zpath, ".com.dbg")) return;
close(zfd);
zfd = OpenExecutable();
if ((a = GetAssetZip("/.ape", 5)) && (p = LoadAsset(a, &n))) {
close(zfd);
zfd = OpenExecutable();
write(zfd, p, n);
free(p);
} else {