mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-08-06 09:50:28 +00:00
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:
parent
28a592f2d4
commit
9f4a4b615d
1 changed files with 2 additions and 3 deletions
|
@ -5035,7 +5035,6 @@ static int LuaGetComment(lua_State *L) {
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static int LuaGetHostOs(lua_State *L) {
|
static int LuaGetHostOs(lua_State *L) {
|
||||||
const char *s = NULL;
|
const char *s = NULL;
|
||||||
if (IsLinux()) {
|
if (IsLinux()) {
|
||||||
|
@ -6472,9 +6471,9 @@ static void RestoreApe(void) {
|
||||||
if (IsOpenbsd()) return; /* TODO */
|
if (IsOpenbsd()) return; /* TODO */
|
||||||
if (IsNetbsd()) return; /* TODO */
|
if (IsNetbsd()) return; /* TODO */
|
||||||
if (endswith(zpath, ".com.dbg")) return;
|
if (endswith(zpath, ".com.dbg")) return;
|
||||||
close(zfd);
|
|
||||||
zfd = OpenExecutable();
|
|
||||||
if ((a = GetAssetZip("/.ape", 5)) && (p = LoadAsset(a, &n))) {
|
if ((a = GetAssetZip("/.ape", 5)) && (p = LoadAsset(a, &n))) {
|
||||||
|
close(zfd);
|
||||||
|
zfd = OpenExecutable();
|
||||||
write(zfd, p, n);
|
write(zfd, p, n);
|
||||||
free(p);
|
free(p);
|
||||||
} else {
|
} else {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue