summaryrefslogtreecommitdiffstats
path: root/input
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2012-10-14 23:45:41 +0200
committerwm4 <wm4@nowhere>2012-10-14 23:45:41 +0200
commitf2e662fe3f5a529e83bb298342f899129ce6f07d (patch)
tree1bc8ee3f35c1f87c005926ad306bdeda3a1749f8 /input
parent73b44b44a4c97653189fdcdddb78e49507b6baa7 (diff)
downloadmpv-f2e662fe3f5a529e83bb298342f899129ce6f07d.tar.bz2
mpv-f2e662fe3f5a529e83bb298342f899129ce6f07d.tar.xz
input: fix mp_cmd memory leak
mp_input_feed_key() didn't free the command, if it was discarded due to the queue exceeding its maximum size.
Diffstat (limited to 'input')
-rw-r--r--input/input.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/input/input.c b/input/input.c
index 63d8537ed3..f2b601fdbe 100644
--- a/input/input.c
+++ b/input/input.c
@@ -1362,7 +1362,10 @@ void mp_input_feed_key(struct input_ctx *ictx, int code)
struct cmd_queue *queue = &ictx->key_cmd_queue;
if (queue_count_cmds(queue) >= ictx->key_fifo_size &&
(!mp_input_is_abort_cmd(cmd->id) || queue_has_abort_cmds(queue)))
+ {
+ talloc_free(cmd);
return;
+ }
queue_add(queue, cmd, false);
}