[syslog-ng]killed by HUP signal on Mac OS X 10.3

Balazs Scheidler syslog-ng@lists.balabit.hu
Wed, 28 Apr 2004 11:25:33 +0200


2004-04-27, k keltezéssel 18:21-kor Jeremy Mates ezt írta:
> The syslog-ng daemon dies on Mac OS X when a HUP signal is sent:
> 
> $ sudo /usr/local/sbin/syslog-ng -d
> io.c: Preparing fd 4 for reading
> io.c: Preparing fd 5 for reading
> syslog-ng version 1.6.2 starting
> io.c: Preparing fd 7 for writing
> io.c: Preparing fd 8 for writing
> SIGHUP received, restarting syslog-ng
> poll.c:282: failed assertion `pArray != (struct pollfd *) NULL'
> zsh: abort      sudo /usr/local/sbin/syslog-ng -d

hmm.. there's no poll.c in syslog-ng nor in libol, though there's a
poll() call with NULL fdarray argument.

diff -u -r1.40 io.c
--- io.c        19 Jan 2004 13:20:38 -0000      1.40
+++ io.c        28 Apr 2004 09:24:45 -0000
@@ -207,8 +207,12 @@
         }
         else {
                 gc_maybe(&b->super, 1);
-                if (nfds == 0)
-                       res = poll(NULL, 0, timeout < 0 ? 60000 : timeout * 1000);
+                if (nfds == 0) {
+                       struct pollfd dummy;
+
+                       /* this hack is needed on MacOSX where the poll emulation does not handle the fdarray being NULL */
+                       res = poll(&dummy, 0, timeout < 0 ? 60000 : timeout * 1000);
+               }
         }
  
        if (res < 0)

-- 
Bazsi
PGP info: KeyID 9AF8D0A9 Fingerprint CD27 CFB0 802C 0944 9CFD 804E C82C 8EB1