In article <4cde1a6b.4010...@cowan.name>,
 Micah Cowan <mi...@cowan.name> wrote:

> Not true; should be fixed in current CVS HEAD. As a workaround, detach
> any other clients currently attached to the same session (use <prefix> D).

This does sound encouraging as I do often have multiple clients attached 
to a session.

However, I was running a few-day-old CVS HEAD and still had the problem. 
I just updated to the latest version, but now the server process dumps 
core when I start tmux.

The problem appears to be this change in compat/imsg.c:

Index: compat/imsg.c
===================================================================
RCS file: /cvsroot/tmux/tmux/compat/imsg.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -r1.5 -r1.6
1c1
< /* $Id: imsg.c,v 1.5 2010/06/06 00:08:28 tcunha Exp $ */
---
> /* $Id: imsg.c,v 1.6 2010/11/11 20:41:08 nicm Exp $ */
114c114
<  if ((imsg->data = malloc(datalen)) == NULL)
---
>  if (datalen != 0 && (imsg->data = malloc(datalen + 1)) == NULL)?

The logic here seems broken (if datalen is 0 then it won't return with 
an error).

However, even fixing this:

Index: compat/imsg.c
===================================================================
RCS file: /cvsroot/tmux/tmux/compat/imsg.c,v
retrieving revision 1.6
diff -r1.6 imsg.c
114c114,116
<  if (datalen != 0 && (imsg->data = malloc(datalen + 1)) == NULL)
---
>  if (datalen == 0)
>     return (-1);
>  if ((imsg->data = malloc(datalen + 1)) == NULL)

tmux now returns -1 all the way up the stack and exits.

datalen is 1024 consistently for a while, then it gets big, then it's 0.

[...]
Breakpoint 1, imsg_get (ibuf=0x80b2858, imsg=0xbfa40264) at 
compat/imsg.c:114
114      if (datalen == 0)
$36 = 1024
(gdb) 
Continuing.

Breakpoint 1, imsg_get (ibuf=0x80b2858, imsg=0xbfa40264) at 
compat/imsg.c:114
114      if (datalen == 0)
$37 = 4228
(gdb) 
Continuing.

Breakpoint 1, imsg_get (ibuf=0x80b2858, imsg=0xbfa40264) at 
compat/imsg.c:114
114      if (datalen == 0)
$38 = 0

Sorry I don't have time to debug this any further...
-- 
Nicholas Riley <njri...@illinois.edu>


------------------------------------------------------------------------------
Centralized Desktop Delivery: Dell and VMware Reference Architecture
Simplifying enterprise desktop deployment and management using
Dell EqualLogic storage and VMware View: A highly scalable, end-to-end
client virtualization framework. Read more!
http://p.sf.net/sfu/dell-eql-dev2dev
_______________________________________________
tmux-users mailing list
tmux-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/tmux-users

Reply via email to