mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-07-05 10:48:29 +00:00
Make more fixes and improvements
- Remove PAGESIZE constant - Fix realloc() documentation - Fix ttyname_r() error reporting - Make forking more reliable on Windows - Make execvp() a few microseconds faster - Make system() a few microseconds faster - Tighten up the socket-related magic numbers - Loosen restrictions on mmap() offset alignment - Improve GetProgramExecutableName() with getenv("_") - Use mkstemp() as basis for mktemp(), tmpfile(), tmpfd() - Fix flakes in pthread_cancel_test, unix_test, fork_test - Fix recently introduced futex stack overflow regression - Let sockets be passed as stdio to subprocesses on Windows - Improve security of bind() on Windows w/ SO_EXCLUSIVEADDRUSE
This commit is contained in:
parent
140a8a52e5
commit
18bb5888e1
311 changed files with 1239 additions and 2622 deletions
|
@ -196,10 +196,13 @@ struct itimerval timer;
|
|||
struct timespec signalled;
|
||||
|
||||
sigset_t mask;
|
||||
char buf[4096];
|
||||
sigset_t savemask;
|
||||
char buf[PAGESIZE];
|
||||
char tmpout[PATH_MAX];
|
||||
|
||||
char *g_tmpout;
|
||||
const char *g_tmpout_original;
|
||||
|
||||
const char *const kSafeEnv[] = {
|
||||
"ADDR2LINE", // needed by GetAddr2linePath
|
||||
"HOME", // needed by ~/.runit.psk
|
||||
|
@ -454,7 +457,13 @@ char *StripPrefix(char *s, char *p) {
|
|||
}
|
||||
}
|
||||
|
||||
void AddArg(char *s) {
|
||||
void AddArg(char *actual) {
|
||||
const char *s;
|
||||
if (actual == g_tmpout) {
|
||||
s = g_tmpout_original;
|
||||
} else {
|
||||
s = actual;
|
||||
}
|
||||
if (args.n) {
|
||||
appendw(&command, ' ');
|
||||
}
|
||||
|
@ -487,7 +496,7 @@ void AddArg(char *s) {
|
|||
appendw(&shortened, ' ');
|
||||
appends(&shortened, s);
|
||||
}
|
||||
AddStr(&args, s);
|
||||
AddStr(&args, actual);
|
||||
}
|
||||
|
||||
static int GetBaseCpuFreqMhz(void) {
|
||||
|
@ -810,6 +819,7 @@ char *MakeTmpOut(const char *path) {
|
|||
int c;
|
||||
char *p = tmpout;
|
||||
char *e = tmpout + sizeof(tmpout) - 1;
|
||||
g_tmpout_original = path;
|
||||
p = stpcpy(p, kTmpPath);
|
||||
while ((c = *path++)) {
|
||||
if (c == '/') c = '_';
|
||||
|
@ -820,6 +830,7 @@ char *MakeTmpOut(const char *path) {
|
|||
*p++ = c;
|
||||
}
|
||||
*p = 0;
|
||||
g_tmpout = tmpout;
|
||||
return tmpout;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue