Fix if-shell without a client (so in the config file). Reported by Theo
authornicm <nicm@openbsd.org>
Sat, 22 Apr 2017 06:27:15 +0000 (06:27 +0000)
committernicm <nicm@openbsd.org>
Sat, 22 Apr 2017 06:27:15 +0000 (06:27 +0000)
Buehler.

usr.bin/tmux/cmd-if-shell.c

index eec73e5..1c5696d 100644 (file)
@@ -1,4 +1,4 @@
-/* $OpenBSD: cmd-if-shell.c,v 1.53 2017/04/21 14:01:19 nicm Exp $ */
+/* $OpenBSD: cmd-if-shell.c,v 1.54 2017/04/22 06:27:15 nicm Exp $ */
 
 /*
  * Copyright (c) 2009 Tiago Cunha <me@tiagocunha.org>
@@ -120,7 +120,8 @@ cmd_if_shell_exec(struct cmd *self, struct cmdq_item *item)
                cdata->cmd_else = NULL;
 
        cdata->client = item->client;
-       cdata->client->references++;
+       if (cdata->client != NULL)
+               cdata->client->references++;
 
        if (!args_has(args, 'b'))
                cdata->item = item;
@@ -193,7 +194,8 @@ cmd_if_shell_free(void *data)
 {
        struct cmd_if_shell_data        *cdata = data;
 
-       server_client_unref(cdata->client);
+       if (cdata->client != NULL)
+               server_client_unref(cdata->client);
 
        free(cdata->cmd_else);
        free(cdata->cmd_if);