diff options
author | Hui Jin <jhuix0117@gmail.com> | 2019-07-26 13:28:00 +0800 |
---|---|---|
committer | James Ross-Gowan <rossy@jrg.systems> | 2019-09-14 21:35:49 +1000 |
commit | fda45f4537b82ee4566e475367c78935da8cdc90 (patch) | |
tree | 5d2e7e9bd3841d04163a80ffc9c45ccfd5224a75 /video/out/d3d11 | |
parent | 191737b9c99e7ce3fa2796a5c4963eab73d7de13 (diff) | |
download | mpv-fda45f4537b82ee4566e475367c78935da8cdc90.tar.bz2 mpv-fda45f4537b82ee4566e475367c78935da8cdc90.tar.xz |
vo_d3d11/context: fix crash due to ctx->ra is null pointer access
'ctx->ra' is null pointer when d3d11 init failed before call 'ra_d3d11_create' in 'd3d11_init'.
Diffstat (limited to 'video/out/d3d11')
-rw-r--r-- | video/out/d3d11/context.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/video/out/d3d11/context.c b/video/out/d3d11/context.c index 82c7d162f7..3b0ab49812 100644 --- a/video/out/d3d11/context.c +++ b/video/out/d3d11/context.c @@ -161,14 +161,16 @@ static void d3d11_uninit(struct ra_ctx *ctx) { struct priv *p = ctx->priv; - ra_tex_free(ctx->ra, &p->backbuffer); + if (ctx->ra) + ra_tex_free(ctx->ra, &p->backbuffer); SAFE_RELEASE(p->swapchain); vo_w32_uninit(ctx->vo); SAFE_RELEASE(p->device); // Destory the RA last to prevent objects we hold from showing up in D3D's // leak checker - ctx->ra->fns->destroy(ctx->ra); + if (ctx->ra) + ctx->ra->fns->destroy(ctx->ra); } static const struct ra_swapchain_fns d3d11_swapchain = { |