From bf7b08d94c1d8282ca7ea584254d5c0d1fd7e469 Mon Sep 17 00:00:00 2001 From: Yue Tao Date: Sun, 27 Apr 2014 21:02:51 +0800 Subject: gst-ffmpeg: fix for Security Advisory CVE-2013-0850 The decode_slice_header function in libavcodec/h264.c in FFmpeg before 1.1 allows remote attackers to have an unspecified impact via crafted H.264 data, which triggers an out-of-bounds array access. http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2013-0850 (From OE-Core rev: 69f3f0f94f4fd224e5a6b275207adf0539d085c3) Signed-off-by: Yue Tao Signed-off-by: Roy Li Signed-off-by: Saul Wold Signed-off-by: Richard Purdie --- ...t-ref-count-check-and-limit-fix-out-of-ar.patch | 29 ++++++++++++++++++++++ .../gstreamer/gst-ffmpeg_0.10.13.bb | 1 + 2 files changed, 30 insertions(+) create mode 100644 meta/recipes-multimedia/gstreamer/gst-ffmpeg-0.10.13/0001-h264-correct-ref-count-check-and-limit-fix-out-of-ar.patch diff --git a/meta/recipes-multimedia/gstreamer/gst-ffmpeg-0.10.13/0001-h264-correct-ref-count-check-and-limit-fix-out-of-ar.patch b/meta/recipes-multimedia/gstreamer/gst-ffmpeg-0.10.13/0001-h264-correct-ref-count-check-and-limit-fix-out-of-ar.patch new file mode 100644 index 0000000000..d4f55b2696 --- /dev/null +++ b/meta/recipes-multimedia/gstreamer/gst-ffmpeg-0.10.13/0001-h264-correct-ref-count-check-and-limit-fix-out-of-ar.patch @@ -0,0 +1,29 @@ +From d6c184880ee2e09fd68c0ae217173832cee5afc1 Mon Sep 17 00:00:00 2001 +From: Michael Niedermayer +Date: Sun, 18 Nov 2012 16:29:04 +0100 +Subject: [PATCH] h264: correct ref count check and limit, fix out of array + accesses. + +Upstream-Status: Backport + +Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind +Signed-off-by: Michael Niedermayer +--- + libavcodec/h264.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/libavcodec/h264.c b/libavcodec/h264.c +index da43f1e..32cede5 100644 +--- a/gst-libs/ext/libav/libavcodec/h264.c ++++ b/gst-libs/ext/libav/libavcodec/h264.c +@@ -2870,6 +2870,9 @@ static int decode_slice_header(H264Conte + h->ref_count[0]= get_ue_golomb(&s->gb) + 1; + if(h->slice_type_nos==AV_PICTURE_TYPE_B) + h->ref_count[1]= get_ue_golomb(&s->gb) + 1; ++ else ++ // full range is spec-ok in this case, even for frames ++ h->ref_count[1] = 1; + + if(h->ref_count[0]-1 > 32-1 || h->ref_count[1]-1 > 32-1){ + av_log(h->s.avctx, AV_LOG_ERROR, "reference overflow\n"); +-- diff --git a/meta/recipes-multimedia/gstreamer/gst-ffmpeg_0.10.13.bb b/meta/recipes-multimedia/gstreamer/gst-ffmpeg_0.10.13.bb index a0673fd668..ad85fa2e9f 100644 --- a/meta/recipes-multimedia/gstreamer/gst-ffmpeg_0.10.13.bb +++ b/meta/recipes-multimedia/gstreamer/gst-ffmpeg_0.10.13.bb @@ -34,6 +34,7 @@ SRC_URI = "http://gstreamer.freedesktop.org/src/${BPN}/${BPN}-${PV}.tar.bz2 \ file://0001-eamad-fix-out-of-array-accesses.patch \ file://0001-mjpegdec-check-SE.patch \ file://0001-alac-fix-nb_samples-order-case.patch \ + file://0001-h264-correct-ref-count-check-and-limit-fix-out-of-ar.patch \ " SRC_URI[md5sum] = "7f5beacaf1312db2db30a026b36888c4" -- cgit 1.2.3-korg