mirror of
https://gitlab.alpinelinux.org/alpine/aports.git
synced 2025-08-26 17:01:34 +02:00
21 lines
774 B
Diff
21 lines
774 B
Diff
--- a/exec.c 2018-07-10 13:36:22.698784874 +0000
|
|
+++ b/exec.c 2018-07-10 13:37:32.296154568 +0000
|
|
@@ -92,11 +92,16 @@
|
|
// Assume arguments are counted with the granularity of a single page,
|
|
// and allow two pages of headroom to account for rounding as well as
|
|
// any other data we may not be counting
|
|
+ // so allow a one page cushion to account for rounding up
|
|
long page_size = sysconf(_SC_PAGESIZE);
|
|
if (page_size < 4096) {
|
|
page_size = 4096;
|
|
}
|
|
- arg_max -= 2*page_size;
|
|
+ arg_max -= page_size;
|
|
+ bfs_exec_debug(execbuf, "ARG_MAX: %ld remaining after page cushion\n", arg_max);
|
|
+
|
|
+ // POSIX recommends an additional 2048 bytes of headroom
|
|
+ arg_max -= 2048;
|
|
bfs_exec_debug(execbuf, "ARG_MAX: %ld remaining after headroom\n", arg_max);
|
|
|
|
if (arg_max < 0) {
|