scripting: fix racy crash if loading .run files fails

args->client was deallocated if the FDs were closed and nothing
referenced it (IPC socket codes detected the closed sockets and
asynchronously killed the mpv_handle in args->client). The problem was
that args->log depended on it, and was also destroyed.

Fix this by duplicating the mp_log.
This commit is contained in:
wm4 2020-02-25 22:41:09 +01:00
parent 322eb72679
commit c43fd88f59
1 changed files with 3 additions and 0 deletions

View File

@ -328,6 +328,9 @@ const struct mp_scripting mp_scripting_cplugin = {
static int load_run(struct mp_script_args *args)
{
// The arg->client object might die and with it args->log, so duplicate it.
args->log = mp_log_new(args, args->log, NULL);
int fds[2];
if (!mp_ipc_start_anon_client(args->mpctx->ipc_ctx, args->client, fds))
return -1;