Commit d0c62ef3 authored by Natanael Copa's avatar Natanael Copa

main/pmacct: fix segfault due to stack size

ref #4272
parent 42039c54
# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=pmacct
pkgver=1.5.1
pkgrel=1
pkgrel=2
pkgdesc="Measure, account, classify, aggregate and export IPv4 and IPv6 traffic"
url="http://www.pmacct.net/"
arch="all"
license="GPL"
depends=
makedepends="bsd-compat-headers libpcap-dev libpq mariadb-dev postgresql-dev
makedepends="bsd-compat-headers libpcap-dev mariadb-dev postgresql-dev
zlib-dev"
install=
subpackages="$pkgname-doc"
source="http://www.pmacct.net/$pkgname-$pkgver.tar.gz
stacksize.patch
pmacct.initd
pmacct.confd
pmacctd.conf
......@@ -21,10 +22,14 @@ source="http://www.pmacct.net/$pkgname-$pkgver.tar.gz
_builddir="$srcdir"/$pkgname-$pkgver
#prepare() {
# cd "$_builddir"
# apply patches here
#}
prepare() {
cd "$_builddir"
for i in $source; do
case $i in
*.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;;
esac
done
}
build() {
cd "$_builddir"
......@@ -64,6 +69,7 @@ package() {
}
md5sums="80a205e85fd06a30a761877568b01376 pmacct-1.5.1.tar.gz
f856a83ef796811917452f8e6b346bac stacksize.patch
48ca9df1fce583936fc1e6d80bd0f0c3 pmacct.initd
394bf0687572261e90eecd70c33c8ede pmacct.confd
ecb85e4f9bcb1f6ef0ee1426f979be2b pmacctd.conf
......@@ -71,6 +77,7 @@ ecb85e4f9bcb1f6ef0ee1426f979be2b pmacctd.conf
a3b1c231911f9bab7bfa73dbbcb308eb nfacctd.conf
7a549e51959946805a0c1d094213f08c uacctd.conf"
sha256sums="96134549a10947f3f6d610b670a26f1a54e01af4be0eff09bf48c19246d33584 pmacct-1.5.1.tar.gz
52cd24d01ab43ee28877b18a85994f57230df4e76d4528512849e02a5135ee8e stacksize.patch
fe0ec3d26a0da0e07112e2dce85b921c188c974f5b4a22f623bdcf2f91fa3a0b pmacct.initd
02c3e0d5a19503d4be63244c77cbc47961d6f168026527ec2910c6c201a5d8fd pmacct.confd
616bf24f769a0d262a793adb4603e08fe2234f1cccc2bc0b7fabf565cf22e138 pmacctd.conf
......@@ -78,6 +85,7 @@ fe0ec3d26a0da0e07112e2dce85b921c188c974f5b4a22f623bdcf2f91fa3a0b pmacct.initd
e21121a857bb16e76d8af087e5a2d2b1c555ac5f16808d8b7a01377f7d18accc nfacctd.conf
3cbdea18c609bb4822992ec79b34987b6fc9044550823ebbb349c44af7d8503e uacctd.conf"
sha512sums="c3a0ddaf1b8679df2097147ce844eb2a3e3058599aea457e463cd4e65a7601e0ce5bac5ca5e1c82afecd5edc92dae673eed3ed1787bfbd3e8ac2af5677885bb7 pmacct-1.5.1.tar.gz
9e494dbd4c35eb960502c73d672f366267c10c36ef3f196b7358582ee94e1a7aa8532c456dbe1d5198e69fed17dbc0ca926bd6fb6ff6ac8cf8d06b3611d2f6af stacksize.patch
b109f2d64c83d6749a8c81784204e54a68ec7bbc146242f02e1fa7061647acc887921cdbf90a5ecc81186a87a5b4a5175a3b5e25f92e51b5dd1426fb390ef754 pmacct.initd
6078607dde8619f8fa5698f217c40a7e46ed85843923abecc87652d2e9df6db677898ee1965367247e6ac838d907533a8b1c7ab0515f3f2dc6f3fd4eb14bd5be pmacct.confd
fa1ead3ee4374ad84cccc0e7043fc86e95da555e2bde3815f03953587f03a609ec3aea227ebf85c9636e071921c5b094359d71d15055f866c05e113cda3b347b pmacctd.conf
......
--- ./src/thread_pool.c.orig 2015-06-23 11:22:18.408373704 -0200
+++ ./src/thread_pool.c 2015-06-23 11:31:55.926972746 -0200
@@ -42,12 +42,15 @@
#define pthread_mutex_unlock debug_pthread_mutex_unlock
#endif
+/* set default stack size to 1MB */
+#define PMACCT_STACKSIZE 1024*1014
thread_pool_t *allocate_thread_pool(int count)
{
int i, rc;
thread_pool_t *pool;
thread_pool_item_t *worker;
+ pthread_attr_t attr, *attrptr = NULL;
// Allocate pool
pool = malloc(sizeof(thread_pool_t));
@@ -88,7 +91,19 @@
/* Create the thread */
worker->thread = malloc(sizeof(pthread_t));
- rc = pthread_create(worker->thread, NULL, thread_runner, worker);
+ rc = pthread_attr_init(&attr);
+ if (rc) {
+ printf("ERROR: pthread_attr_init failed: %s\n", strerror(rc));
+ } else {
+ rc = pthread_attr_setstacksize(&attr, PMACCT_STACKSIZE);
+ if (rc) {
+ printf("ERROR: pthread_attr_setstack failed: %s\n", strerror(rc));
+ } else {
+ attrptr=&attr;
+ }
+ }
+
+ rc = pthread_create(worker->thread, attrptr, thread_runner, worker);
if (rc) {
printf("ERROR: thread creation failed: %s\n", strerror(rc));
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment