aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIvan Kalvachev <ikalvachev@gmail.com>2017-10-09 02:40:26 +0300
committerCarl Eugen Hoyos <ceffmpeg@gmail.com>2017-10-13 00:14:54 +0200
commit7fb85ad3607a3fdde682ea74d6f6bcefe1f582dd (patch)
tree274e07894795191d5409a132948793043a1ddcff
parentc8642473e0b3d2c2d644c72eb7e4de23fa3f79fa (diff)
downloadffmpeg-7fb85ad3607a3fdde682ea74d6f6bcefe1f582dd.tar.gz
Fix crash if av_vdpau_bind_context() is not used.
The public functions av_alloc_vdpaucontext() and av_vdpau_alloc_context() are allocating AVVDPAUContext structure that is supposed to be placed in avctx->hwaccel_context. However the rest of libavcodec/vdpau.c uses avctx->hwaccel_context as struct VDPAUHWContext, that is bigger and does contain AVVDPAUContext as first member. The usage includes write to the new variables in the bigger stuct, without checking for block size. Fix by always allocating the bigger structure. Signed-off-by: Ivan Kalvachev <ikalvachev@gmail.com> (cherry picked from commit 3a6ded7cfcb33e06ade98c5791eae06453f65668)
-rw-r--r--libavcodec/vdpau.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/libavcodec/vdpau.c b/libavcodec/vdpau.c
index 42ebddbeee..4cc51cb79e 100644
--- a/libavcodec/vdpau.c
+++ b/libavcodec/vdpau.c
@@ -816,7 +816,7 @@ do { \
AVVDPAUContext *av_vdpau_alloc_context(void)
{
- return av_mallocz(sizeof(AVVDPAUContext));
+ return av_mallocz(sizeof(VDPAUHWContext));
}
int av_vdpau_bind_context(AVCodecContext *avctx, VdpDevice device,