• Aaron Levinson's avatar
    avutil/hwcontext_dxva2: Don't improperly free IDirect3DSurface9 objects · 0c1c5146
    Aaron Levinson authored
    Add dxva2_pool_release_dummy() and use it in call to
    av_buffer_create() in dxva2_pool_alloc().
    
    Prior to this change, av_buffer_create() was called with NULL for the
    third argument, which indicates that av_buffer_default_free() should
    be used to free the buffer's data.  Eventually, it gets to
    buffer_pool_free() and calls buf->free() on a surface object (which is
    av_buffer_default_free()).
    
    This can result in a crash when the debug version of the C-runtime is
    used on Windows.  While it doesn't appear to result in a crash when
    the release version of the C-runtime is used on Windows, it likely
    results in memory corruption, since av_free() is being called on
    memory that was allocated using
    IDirectXVideoAccelerationService::CreateSurface().
    Signed-off-by: 's avatarAaron Levinson <alevinsn@aracnet.com>
    Reviewed-by: 's avatarwm4 <nfxjfg@googlemail.com>
    Reviewed-by: 's avatarSteven Liu <lingjiujianke@gmail.com>
    Reviewed-by: 's avatarMark Thompson <sw@jkqxz.net>
    0c1c5146
Name
Last commit
Last update
compat Loading commit data...
doc Loading commit data...
ffbuild Loading commit data...
libavcodec Loading commit data...
libavdevice Loading commit data...
libavfilter Loading commit data...
libavformat Loading commit data...
libavresample Loading commit data...
libavutil Loading commit data...
libpostproc Loading commit data...
libswresample Loading commit data...
libswscale Loading commit data...
presets Loading commit data...
tests Loading commit data...
tools Loading commit data...
.gitattributes Loading commit data...
.gitignore Loading commit data...
.travis.yml Loading commit data...
CONTRIBUTING.md Loading commit data...
COPYING.GPLv2 Loading commit data...
COPYING.GPLv3 Loading commit data...
COPYING.LGPLv2.1 Loading commit data...
COPYING.LGPLv3 Loading commit data...
CREDITS Loading commit data...
Changelog Loading commit data...
INSTALL.md Loading commit data...
LICENSE.md Loading commit data...
MAINTAINERS Loading commit data...
Makefile Loading commit data...
README.md Loading commit data...
RELEASE Loading commit data...
cmdutils.c Loading commit data...
cmdutils.h Loading commit data...
cmdutils_opencl.c Loading commit data...
configure Loading commit data...
ffmpeg.c Loading commit data...
ffmpeg.h Loading commit data...
ffmpeg_cuvid.c Loading commit data...
ffmpeg_dxva2.c Loading commit data...
ffmpeg_filter.c Loading commit data...
ffmpeg_opt.c Loading commit data...
ffmpeg_qsv.c Loading commit data...
ffmpeg_vaapi.c Loading commit data...
ffmpeg_vdpau.c Loading commit data...
ffmpeg_videotoolbox.c Loading commit data...
ffplay.c Loading commit data...
ffprobe.c Loading commit data...
ffserver.c Loading commit data...
ffserver_config.c Loading commit data...
ffserver_config.h Loading commit data...