Index: src/global/mail_params.h --- src/global/mail_params.h.orig 2025-08-18 22:06:41.000000000 +0200 +++ src/global/mail_params.h 2025-08-23 10:28:42.069229000 +0200 @@ -14,7 +14,7 @@ /* * This is to make it easier to auto-generate tables. */ -typedef int bool; +#define bool int #ifdef USE_TLS #include /* OPENSSL_VERSION_NUMBER */ Index: src/util/file_limit.c --- src/util/file_limit.c.orig 2003-10-22 20:48:36.000000000 +0200 +++ src/util/file_limit.c 2025-08-23 10:28:21.052301000 +0200 @@ -80,12 +80,21 @@ void set_file_limit(off_t limit) { #ifdef USE_ULIMIT +#ifdef USE_SOFTLIMITONLY +#error "USE_ULIMIT and USE_SOFTLIMITONLY are mutual exclusive" +#endif if (ulimit(UL_SETFSIZE, limit / ULIMIT_BLOCK_SIZE) < 0) msg_fatal("ulimit: %m"); #else struct rlimit rlim; +#ifdef USE_SOFTLIMITONLY + if (getrlimit(RLIMIT_FSIZE, &rlim) < 0) + rlim.rlim_max = RLIM_INFINITY; + rlim.rlim_cur = limit; +#else rlim.rlim_cur = rlim.rlim_max = limit; +#endif if (setrlimit(RLIMIT_FSIZE, &rlim) < 0) msg_fatal("setrlimit: %m"); #ifdef SIGXFSZ Index: src/util/msg_syslog.c --- src/util/msg_syslog.c.orig 2019-01-29 23:24:42.000000000 +0100 +++ src/util/msg_syslog.c 2025-08-23 10:28:21.052392000 +0200 @@ -63,6 +63,11 @@ #include #include #include +#ifdef USE_SOFTLIMITONLY +#include +#include +#include +#endif /* Application-specific. */ @@ -159,6 +164,9 @@ static void msg_syslog_print(int level, const char *text) { +#ifdef USE_SOFTLIMITONLY + struct rlimit save, rlim; +#endif static int log_level[] = { LOG_INFO, LOG_WARNING, LOG_ERR, LOG_CRIT, LOG_CRIT, }; @@ -172,6 +180,15 @@ if (level < 0 || level >= (int) (sizeof(log_level) / sizeof(log_level[0]))) msg_panic("msg_syslog_print: invalid severity level: %d", level); +#ifdef USE_SOFTLIMITONLY + if (getrlimit(RLIMIT_FSIZE, &save) < 0) { + save.rlim_cur = RLIM_INFINITY; + save.rlim_max = RLIM_INFINITY; + } + rlim.rlim_cur = save.rlim_max; + rlim.rlim_max = save.rlim_max; + (void)setrlimit(RLIMIT_FSIZE, &rlim); +#endif if (level == MSG_INFO) { syslog(msg_syslog_facility | log_level[level], "%.*s", (int) MSG_SYSLOG_RECLEN, text); @@ -179,6 +196,9 @@ syslog(msg_syslog_facility | log_level[level], "%s: %.*s", severity_name[level], (int) MSG_SYSLOG_RECLEN, text); } +#ifdef USE_SOFTLIMITONLY + (void)setrlimit(RLIMIT_FSIZE, &save); +#endif } /* msg_syslog_init - initialize */