On Sat, Apr 22, 2017 at 10:35:50PM +0200, Erling Westenvik wrote:
> Hi!
> 
> After upgrading to today's snapshot (amd64, April 22) tmux refused to
> load with exit status 1 and error message 'lost server'. I quickly found the
> culprit in my .tmux.conf; a left over experimental if-shell statement I
> used a while ago when I needed nested tmux sessions:
> 
> if-shell "echo $SSH_TTY | grep /dev/ttyp" "set -g prefix C-r" "set -g prefix 
> C-Space"
> 
> After commenting out the if-shell statement tmux loads fine, but – why
> did this cause tmux not to load in the first place? Running the
> statement as a command in tmux as soon tmux is running works just fine!?

I ran into this as well; nicm fixed this bug in -current
(cmd-if-sh.c r1.54).

There was a change (cfg.c r1.56) that causes the commands in the config
file run outside of any client. A bug in the if-sh implementation led to
a NULL dereference in that situation, and this segfault killed the tmux
server (as indicated by the 'lost server' message you saw).

When run inside a tmux client, the pointer that was NULL in the previous
paragraph points to the client, and now the dereference is valid, so the
command worked properly.

Reply via email to