From: Lennart Poettering Date: Mon, 17 Jun 2019 08:51:25 +0000 (+0200) Subject: core: set fs.file-max sysctl to LONG_MAX rather than ULONG_MAX X-Git-Tag: archive/raspbian/241-7_deb10u5+rpi1^2~32 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=806f4de6c8ffe39201cf74f883e30c9ddf65e001;p=systemd.git core: set fs.file-max sysctl to LONG_MAX rather than ULONG_MAX Since kernel 5.2 the kernel thankfully returns proper errors when we write a value out of range to the sysctl. Which however breaks writing ULONG_MAX to request the maximum value. Hence let's write the new maximum value instead, LONG_MAX. /cc @brauner Fixes: #12803 (cherry picked from commit 6e2f78948403a4cce45b9e34311c9577c624f066) Gbp-Pq: Name core-set-fs.file-max-sysctl-to-LONG_MAX-rather-than-ULONG.patch --- diff --git a/src/core/main.c b/src/core/main.c index bc7fcc6d..255e2042 100644 --- a/src/core/main.c +++ b/src/core/main.c @@ -1200,9 +1200,9 @@ static void bump_file_max_and_nr_open(void) { #endif #if BUMP_PROC_SYS_FS_FILE_MAX - /* I so wanted to use STRINGIFY(ULONG_MAX) here, but alas we can't as glibc/gcc define that as - * "(0x7fffffffffffffffL * 2UL + 1UL)". Seriously. 😢 */ - if (asprintf(&t, "%lu\n", ULONG_MAX) < 0) { + /* The maximum the kernel allows for this since 5.2 is LONG_MAX, use that. (Previously thing where + * different but the operation would fail silently.) */ + if (asprintf(&t, "%li\n", LONG_MAX) < 0) { log_oom(); return; }