mirror of https://github.com/mpv-player/mpv
e42a8d537f
the mp_log is freed when the corresponding mpv_handle (ta_parent) is freed in the EventHelper, though it could still be used from different threads. instead don't use a ta_parent and manually free on manual dereferencing. on app shutdown (memory cleanup) this is not called but instead is freed by the usual cleanup and freeing. the LogHelper is only able to be manually dereferenced in the AppHub, so no race conditions are possible in all other cases (vo).in the AppHub it's impossible to hit a race condition atm, because of how the init process works and how/where the log is used. only manually forcing logging in the exit process itself could theoretically trigger a use after free. Fixes #13823 |
||
---|---|---|
.. | ||
android | ||
mac | ||
compiler.h | ||
endian.h | ||
getpid.h | ||
glob-win.c | ||
io.c | ||
io.h | ||
language-mac.c | ||
language-posix.c | ||
language-win.c | ||
main-fn-mac.c | ||
main-fn-unix.c | ||
main-fn-win.c | ||
main-fn.h | ||
mpv.exe.manifest | ||
mpv.rc | ||
path-darwin.c | ||
path-mac.m | ||
path-unix.c | ||
path-uwp.c | ||
path-win.c | ||
path.h | ||
poll_wrapper.c | ||
poll_wrapper.h | ||
semaphore-mac.c | ||
semaphore.h | ||
strnlen.h | ||
subprocess-dummy.c | ||
subprocess-posix.c | ||
subprocess-win.c | ||
subprocess.c | ||
subprocess.h | ||
terminal-dummy.c | ||
terminal-unix.c | ||
terminal-win.c | ||
terminal.h | ||
threads-posix.c | ||
threads-posix.h | ||
threads-win32.h | ||
threads.h | ||
timer-darwin.c | ||
timer-linux.c | ||
timer-win32.c | ||
timer.c | ||
timer.h | ||
utils-mac.c | ||
utils-mac.h | ||
w32_keyboard.c | ||
w32_keyboard.h | ||
win32-console-wrapper.c | ||
windows_utils.c | ||
windows_utils.h |