Subject: Signal-handling in fvwm is non-reentrant!

From: [email-masked]
Date: Tue, 15 Dec 1998 14:00:33 -0600 (CST)

Full_Name: Chris Rankinc
Version: 2.1.4/2.1.5
CVS_Date: 
OS: Linux 2.0.36
X_Server: XF86_SVGA 3.3.3
Submission from: (NULL) (207.242.9.2)

I have examined the signal-handling code for fvwm and its modules
and it is horribly non-reentrant. Even the simplest signal-handlers
call exit() (exit() runs the chain of exit-procedures, which may in
turn execute non-reentrant functions. e.g. libc installs one which
calls fflush(stdout).) Only _exit() is reentrant, and ONLY because it
DOESN'T call the clean-up chain. And some handlers attempt to do a LOT
more than just exit anyway. Looks like some very nasty problems waiting
to happen.

--
Visit the official FVWM web page at <URL:http://www.hpc.uh.edu/fvwm/>.
To unsubscribe from the list, send "unsubscribe fvwm-workers" in the
body of a message to [email-masked].
To report problems, send mail to [email-masked].

---

From: Dominik Vogt <[email-masked]>
Date: Wed, 16 Dec 1998 11:20:57 +0100

> more than just exit anyway. Looks like some very nasty problems waiting

Right. We are fully aware of the state of our signal handlers.
Anyone wanting to make a shot at these is welcome (although
such patches won't be included in 2.2, but soon after).

Bye

Dominik
-- 
Dominik Vogt, Hewlett-Packard GmbH, Dept. BVS
Herrenberger Str.130, 71034 Boeblingen, Germany
phone: 07031/14-4596, fax: 07031/14-3883, [email-masked]