• Aaron Levinson's avatar
    avutil/hwcontext_dxva2: Don't improperly free IDirect3DSurface9 objects · f125c54b
    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
    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
    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>
    (cherry picked from commit 0c1c5146)
hwcontext_dxva2.c 14.7 KB