summaryrefslogtreecommitdiffstats
path: root/player/command.c
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2017-01-24 12:39:39 +0100
committerwm4 <wm4@nowhere>2017-01-24 12:39:39 +0100
commit3b0e8861935059ae79a0c37ad5e8c349628b32f4 (patch)
treefecf650f4086eb1b6038337b5e6055f5383b36a3 /player/command.c
parent63b34143a532b297201af60eea354a7bca3bb48c (diff)
downloadmpv-3b0e8861935059ae79a0c37ad5e8c349628b32f4.tar.bz2
mpv-3b0e8861935059ae79a0c37ad5e8c349628b32f4.tar.xz
command: fix potential crash for script-binding with multi-commands
"show-text test; script-binding display_stats" can potentially crash. It sends a message event. None of the string arguments can be NULL, which fails if cmd->key_name is NULL. This in turn can be due to commands combined with ";" (basically the key association doesn't consider nested commands).
Diffstat (limited to 'player/command.c')
-rw-r--r--player/command.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/player/command.c b/player/command.c
index 0c5b3fa21b..6e7389d666 100644
--- a/player/command.c
+++ b/player/command.c
@@ -5354,7 +5354,8 @@ int run_command(struct MPContext *mpctx, struct mp_cmd *cmd, struct mpv_node *re
if (cmd->is_up_down)
state[0] = cmd->repeated ? 'r' : (cmd->is_up ? 'u' : 'd');
event.num_args = 4;
- event.args = (const char*[4]){"key-binding", name, state, cmd->key_name};
+ event.args = (const char*[4]){"key-binding", name, state,
+ cmd->key_name ? cmd->key_name : ""};
if (mp_client_send_event_dup(mpctx, target,
MPV_EVENT_CLIENT_MESSAGE, &event) < 0)
{