Subject: Notification: incoming/850

From: [email-masked]
Date: Wed, 06 Feb 2002 10:43:12 -0600

FVWM Bug Tracking notification

new message incoming/850

Message summary for PR#850
	From: [email-masked]
	Subject: deiconify crashes with FvwmIconMan transient and FvwmWinList transient
	Date: Wed, 06 Feb 2002 10:43:11 -0600
	0 replies 	0 followups

====> ORIGINAL MESSAGE FOLLOWS <====

>From [email-masked] Wed Feb 06 10:43:12 2002
From: [email-masked]
To: [email-masked]
Subject: deiconify crashes with FvwmIconMan transient and FvwmWinList transient
Date: Wed, 06 Feb 2002 10:43:11 -0600

Full_Name: Markus Schwarzenberg
Version: 2.4.5
CVS_Date: 
OS: SunOS 5.7
X_Server: 
Submission from: (NULL) (153.96.96.2)

Both FvwmWinList transient and FvwmIconMan transient
make fvwm segfaulting when trying to de-iconify an 
iconified window which is shown in their window list:

The (complete!) .fvwm2rc to reproduce this is simple: 

  Mouse 1 1 N Close
  Mouse 1 2 N Iconify true
  Mouse 1 R A FvwmWinList Transient

Start fvwm2. Open some windows (xterm, for example) and 
iconify a couple of them. Now, when Mouse 1 Btn is hit on the root 
window, the window list pops up. Now click an entry of this list 
for an iconified window: fvwm2 dies with a segfault, emmitting 
the following message (generated in module_interface.c):

[FVWM][PositiveWrite]: <<ERROR>> Failed to read descriptor from
'FvwmWinList Tra
nsient':
- data available=Y
- terminate signal=N

[FVWM][PositiveWrite]: <<ERROR>> Failed to read descriptor from '

I'm not quite shure (but I think so) wether the first of these 1.5 
error messages comes from a first (of the same session) try where 
fvwm2 still didn't crash.

This happens with FvwmIconMan and FvwmWinList, so I suppose it's
not (only) a problem of these modules but an fvwm2 internal problem.

Markus Schwarzenberg

--
Visit the official FVWM web page at <URL:http://www.fvwm.org/>.
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, 6 Feb 2002 18:32:21 +0100

> not (only) a problem of these modules but an fvwm2 internal problem.

It core dumps in PositiveWrite:

      if (rc <= 0 || read(channel, &targetWindow, sizeof(targetWindow))
           != sizeof(targetWindow))
      {
        /* Doh! Something has gone wrong - get rid of the offender!! */
        fvwm_msg(ERR, "PositiveWrite",
                 "Failed to read descriptor from '%s':\n"
                 "- data available=%c\n"
                 "- terminate signal=%c\n",
#ifndef WITHOUT_KILLMODULE_ALIAS_SUPPORT
                 pipeAlias[module]
                   ? CatString3(pipeName[module], " ", pipeAlias[module])
                   : pipeName[module],
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
#else
                 pipeName[module],
#endif
                 (FD_ISSET(channel, &readSet) ? 'Y' : 'N'),
                 isTerminated ? 'Y' : 'N');
        KillModule(module);
        break;
      }

Further up un PositiveWrite(), fvwm gets a DeadPipe signal from
the closing transient module which destroys pipeAlias[module]
and pipeName[module].  Fvwm should detect that situation and not
even throw an error message.

Bye

Dominik ^_^  ^_^

-- 
Dominik Vogt, email: [email-masked]
LifeBits Aktiengesellschaft, Albrechtstr. 9, D-72072 Tuebingen
fon: ++49 (0) 7071/7965-0, fax: ++49 (0) 7071/7965-20
--
Visit the official FVWM web page at <URL:http://www.fvwm.org/>.
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: Thu, 7 Feb 2002 11:35:03 +0100

> fvwm2 still didn't crash.

Fvwm crashes when printing the error message :-)  The module name
has already been freed when the message is printed.  That's also
the reason why you don't see a complete message.

> not (only) a problem of these modules but an fvwm2 internal problem.

This will be fixed in the next releases (2.4.6 and 2.5.1) and
tomorrow's snapshot.

Bye

Dominik ^_^  ^_^