gstreamer/subprojects/gst-plugins-bad/sys/d3d11
Seungha Yang b9e51facdd d3d11decoder: Fix potential use after free
A DPB buffer held by codec picture object may not be writable
at the moment, then gst_buffer_make_writable() will unref passed buffer.

Specifically, the use after free or double free can happen if:
* Crop meta of buffer copy is required because of non-zero
  top-left crop position
* zero-copy is possible with crop meta
* A picture was duplicated, interlaced h264 stream for example

Interlaced h264 stream with non-zero top-left crop position
is not very common but it's possible configuration in theory.

Thus gst_buffer_make_writable() should be called with
GstVideoCodecFrame.output_buffer directly.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6706>
2024-04-22 13:28:06 +00:00
..
gstd3d11av1dec.cpp
gstd3d11av1dec.h
gstd3d11basefilter.cpp
gstd3d11basefilter.h
gstd3d11compositor.cpp
gstd3d11compositor.h
gstd3d11convert.cpp
gstd3d11convert.h
gstd3d11decoder.cpp d3d11decoder: Fix potential use after free 2024-04-22 13:28:06 +00:00
gstd3d11decoder.h
gstd3d11deinterlace.cpp
gstd3d11deinterlace.h
gstd3d11download.cpp
gstd3d11download.h
gstd3d11dxgicapture.cpp
gstd3d11dxgicapture.h
gstd3d11h264dec.cpp
gstd3d11h264dec.h
gstd3d11h265dec.cpp
gstd3d11h265dec.h
gstd3d11ipc.cpp
gstd3d11ipc.h
gstd3d11ipcclient.cpp
gstd3d11ipcclient.h
gstd3d11ipcserver.cpp
gstd3d11ipcserver.h
gstd3d11ipcsink.cpp
gstd3d11ipcsink.h
gstd3d11ipcsrc.cpp
gstd3d11ipcsrc.h
gstd3d11mpeg2dec.cpp
gstd3d11mpeg2dec.h
gstd3d11overlay.cpp
gstd3d11overlay.h
gstd3d11overlaycompositor.cpp
gstd3d11overlaycompositor.h
gstd3d11pluginutils.cpp
gstd3d11pluginutils.h
gstd3d11screencapture.cpp
gstd3d11screencapture.h
gstd3d11screencapturedevice.cpp
gstd3d11screencapturedevice.h
gstd3d11screencapturesrc.cpp
gstd3d11screencapturesrc.h
gstd3d11testsrc.cpp
gstd3d11testsrc.h
gstd3d11upload.cpp
gstd3d11upload.h
gstd3d11videosink.cpp
gstd3d11videosink.h
gstd3d11vp8dec.cpp
gstd3d11vp8dec.h
gstd3d11vp9dec.cpp
gstd3d11vp9dec.h
gstd3d11window.cpp
gstd3d11window.h
gstd3d11window_corewindow.cpp
gstd3d11window_corewindow.h
gstd3d11window_dummy.cpp
gstd3d11window_dummy.h
gstd3d11window_swapchainpanel.cpp
gstd3d11window_swapchainpanel.h
gstd3d11window_win32.cpp
gstd3d11window_win32.h
gstd3d11winrtcapture.cpp
gstd3d11winrtcapture.h
meson.build
plugin.cpp