summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2015-04-30 21:57:08 +0200
committerDiogo Franco (Kovensky) <diogomfranco@gmail.com>2015-05-07 10:41:43 +0900
commitb99f78412be9b3a7aa5eb439833d6cc08a4ab4dc (patch)
treee4e74c0472afafe41f328f050c8220e444915535
parenta4ba496539d4354144645b327509a553cffc6443 (diff)
downloadmpv-b99f78412be9b3a7aa5eb439833d6cc08a4ab4dc.tar.bz2
mpv-b99f78412be9b3a7aa5eb439833d6cc08a4ab4dc.tar.xz
player: properly destroy client context if thread can't be created
Minor leak in an obscure out of memory case. (cherry picked from commit d01228058b03df33a3c6be3acbf2757019a9cd83)
-rw-r--r--player/scripting.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/player/scripting.c b/player/scripting.c
index d8fbb6f84e..3747f50884 100644
--- a/player/scripting.c
+++ b/player/scripting.c
@@ -135,8 +135,11 @@ static void mp_load_script(struct MPContext *mpctx, const char *fname)
MP_VERBOSE(arg, "Loading script %s...\n", fname);
pthread_t thread;
- if (pthread_create(&thread, NULL, script_thread, arg))
+ if (pthread_create(&thread, NULL, script_thread, arg)) {
+ mpv_detach_destroy(arg->client);
talloc_free(arg);
+ return;
+ }
wait_loaded(mpctx);
MP_VERBOSE(mpctx, "Done loading %s.\n", fname);