Yeah this is not quite right although your fix is also wrong. Doh.


On Fri, Nov 12, 2010 at 11:52:22PM -0600, Nicholas Riley wrote:
> 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

------------------------------------------------------------------------------
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