Make improvements

- Add rusage to redbean Lua API
- Add more redbean documentation
- Add pledge() to redbean Lua API
- Polyfill OpenBSD pledge() for Linux
- Increase PATH_MAX limit to 1024 characters
- Untrack sibling processes after fork() on Windows
This commit is contained in:
Justine Tunney 2022-04-28 09:42:36 -07:00
parent 9a6bd304a5
commit 47b3274665
212 changed files with 2251 additions and 834 deletions

View file

@ -173,7 +173,7 @@ char *shortened;
char *cachedcmd;
char *colorflag;
char *originalcmd;
char ccpath[PATH_MAX + 1];
char ccpath[PATH_MAX];
struct stat st;
struct Strings env;

View file

@ -42,7 +42,7 @@ void CloseCxxFilt(void) {
void SpawnCxxFilt(void) {
int pipefds[2][2];
const char *cxxfilt;
char path[PATH_MAX + 1];
char path[PATH_MAX];
cxxfilt = firstnonnull(emptytonull(getenv("CXXFILT")), "c++filt");
if (commandv(cxxfilt, path, sizeof(path))) {
pipe2(pipefds[0], O_CLOEXEC);

View file

@ -21,6 +21,7 @@
#include "libc/errno.h"
#include "libc/fmt/fmt.h"
#include "libc/log/check.h"
#include "libc/macros.internal.h"
#include "libc/runtime/runtime.h"
#include "libc/stdio/stdio.h"
#include "libc/str/str.h"
@ -200,7 +201,8 @@ int Run(char **paths, size_t count) {
rc = RunLengthCode();
} else {
suffixlen = strlen(suffix_);
if (!IsTrustworthy() && strlen(paths[i]) + suffixlen + 1 > PATH_MAX) {
if (!IsTrustworthy() &&
strlen(paths[i]) + suffixlen >= ARRAYLEN(pathbuf)) {
return eoverflow();
}
p = stpcpy(pathbuf, paths[i]);

View file

@ -116,7 +116,7 @@ uint16_t g_sshport;
char g_hostname[128];
uint16_t g_runitdport;
volatile bool alarmed;
char g_ssh[PATH_MAX + 1];
char g_ssh[PATH_MAX];
int __sys_execve(const char *, char *const[], char *const[]) hidden;