mirror of
https://github.com/openwrt/packages.git
synced 2025-12-21 19:14:30 +04:00
FreeIPMI provides in-band and out-of-band IPMI software based on the IPMI v1.5/2.0 specification. The IPMI specification defines a set of interfaces for platform management and is implemented by a number of vendors for system management. The features of IPMI that most users will be interested in are sensor monitoring, system event monitoring, power control, and serial-over-LAN (SOL). The FreeIPMI tools and libraries listed below should provide users with the ability to access and utilize these and many other features. A number of useful features for large HPC or cluster environments have also been implemented into FreeIPMI. Signed-off-by: Bjørn Mork <bjorn@mork.no>
77 lines
2.6 KiB
Diff
77 lines
2.6 KiB
Diff
From 61795c19742a28af946647c7c3cea6ba0f6e5e61 Mon Sep 17 00:00:00 2001
|
|
From: =?UTF-8?q?Bj=C3=B8rn=20Mork?= <bjorn@mork.no>
|
|
Date: Thu, 21 Sep 2023 15:39:31 +0200
|
|
Subject: [PATCH] libipmiconsole: set minimum stacksize to avoid SEGFAULT with
|
|
musl
|
|
MIME-Version: 1.0
|
|
Content-Type: text/plain; charset=UTF-8
|
|
Content-Transfer-Encoding: 8bit
|
|
|
|
libipmiconsole SEGFAULTs with musl because the default stacksize
|
|
is too small.
|
|
|
|
This fix is inspired by
|
|
|
|
mail/sendmail/patches/102-pthreads-stack-size.patch
|
|
|
|
having the following description:
|
|
|
|
"This patch increases the stack size for pthreads from 80 KB, the default
|
|
stack size for musl libc, to 2 MB. The default stack size for glibc is 8 MB.
|
|
|
|
OpenDKIM, an application that depends on libmilter, segfaults if the stack
|
|
size for pthreads is left unchanged at the musl default value of 80 KB.
|
|
Apparently, OpenDKIM allocates blocks of 64 KB multiple times, which causes
|
|
libmilter and therefore OpenDKIM to crash:
|
|
https://git.alpinelinux.org/cgit/aports/commit/?id=95724d1bd53ae87f72e6388cb7323dbd8f84be9d
|
|
|
|
This patch follows the patch suggested by an Alpine Linux user in bug report
|
|
above. Also, a bug report has been filed upstream:
|
|
https://sourceforge.net/p/opendkim/bugs/258/
|
|
"
|
|
|
|
Signed-off-by: Bjørn Mork <bjorn@mork.no>
|
|
---
|
|
libipmiconsole/ipmiconsole_engine.c | 16 ++++++++++++++++
|
|
1 file changed, 16 insertions(+)
|
|
|
|
--- a/libipmiconsole/ipmiconsole_engine.c
|
|
+++ b/libipmiconsole/ipmiconsole_engine.c
|
|
@@ -126,6 +126,8 @@ struct _ipmiconsole_poll_data {
|
|
|
|
#define IPMICONSOLE_PIPE_BUFLEN 1024
|
|
|
|
+#define IPMICONSOLE_MIN_STACKSIZE 2*1024*1024
|
|
+
|
|
static int
|
|
_ipmiconsole_garbage_collector_create (void)
|
|
{
|
|
@@ -149,6 +151,13 @@ _ipmiconsole_garbage_collector_create (v
|
|
goto cleanup;
|
|
}
|
|
|
|
+ if ((perr = pthread_attr_setstacksize(&attr, IPMICONSOLE_MIN_STACKSIZE)))
|
|
+ {
|
|
+ IPMICONSOLE_DEBUG (("pthread_attr_setstacksize: %s", strerror (perr)));
|
|
+ errno = perr;
|
|
+ goto cleanup;
|
|
+ }
|
|
+
|
|
if ((perr = pthread_create (&thread, &attr, ipmiconsole_garbage_collector, NULL)))
|
|
{
|
|
IPMICONSOLE_DEBUG (("pthread_create: %s", strerror (perr)));
|
|
@@ -1280,6 +1289,13 @@ ipmiconsole_engine_thread_create (void)
|
|
}
|
|
*index = console_engine_thread_count;
|
|
|
|
+ if ((perr = pthread_attr_setstacksize(&attr, IPMICONSOLE_MIN_STACKSIZE)))
|
|
+ {
|
|
+ IPMICONSOLE_DEBUG (("pthread_attr_setstacksize: %s", strerror (perr)));
|
|
+ errno = perr;
|
|
+ goto cleanup;
|
|
+ }
|
|
+
|
|
if ((perr = pthread_create (&thread, &attr, _ipmiconsole_engine, index)))
|
|
{
|
|
IPMICONSOLE_DEBUG (("pthread_create: %s", strerror (perr)));
|