]> git.ipfire.org Git - thirdparty/ntp.git/commitdiff
[Bug 3391] ntpd segfaults on startup due to small warmup thread stack size
authorJuergen Perlinger <perlinger@ntp.org>
Mon, 27 Mar 2017 06:33:02 +0000 (08:33 +0200)
committerJuergen Perlinger <perlinger@ntp.org>
Mon, 27 Mar 2017 06:33:02 +0000 (08:33 +0200)
bk: 58d8b21ezqNxD_bwGbE3Xf_LKeKIQA

ChangeLog
ntpd/ntpd.c

index a1a1cfae45a59975bb12958d206f6c0a48e631b5..09dae56d1e871278c409118649b3534348e49f9a 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+---
+* [Bug 3391] ntpd segfaults on startup due to small warmup thread stack size
+  - increased mimimum stack size to 32kB <perlinger@ntp.org>
+
 ---
 (4.2.8p10-win-beta1) 2017/03/21 Released by Harlan Stenn <stenn@ntp.org>
 (4.2.8p10)
index a0880be6c84b54a0ee52fea2aeca6fa572bdc8e8..d4204efd8d39ea44a3563d8d3b81f807c812a35c 100644 (file)
@@ -313,11 +313,16 @@ my_pthread_warmup(void)
 #if defined(HAVE_PTHREAD_ATTR_GETSTACKSIZE) && \
     defined(HAVE_PTHREAD_ATTR_SETSTACKSIZE) && \
     defined(PTHREAD_STACK_MIN)
-       rc = pthread_attr_setstacksize(&thr_attr, PTHREAD_STACK_MIN);
-       if (0 != rc)
-               msyslog(LOG_ERR,
-                       "my_pthread_warmup: pthread_attr_setstacksize() -> %s",
-                       strerror(rc));
+       {
+               size_t ssmin = 32*1024; /* 32kB should be minimum */
+               if (ssmin < PTHREAD_STACK_MIN)
+                       ssmin = PTHREAD_STACK_MIN;
+               rc = pthread_attr_setstacksize(&thr_attr, ssmin);
+               if (0 != rc)
+                       msyslog(LOG_ERR,
+                               "my_pthread_warmup: pthread_attr_setstacksize() -> %s",
+                               strerror(rc));
+       }
 #endif
        rc = pthread_create(
                &thread, &thr_attr, my_pthread_warmup_worker, NULL);