Bump the gstreamer1 stack to version 1.10.2.
This commit is contained in:
parent
e99a0c2cf8
commit
94318541aa
@ -1,4 +1,4 @@
|
|||||||
# $OpenBSD: Makefile.inc,v 1.33 2016/11/17 16:56:05 ajacoutot Exp $
|
# $OpenBSD: Makefile.inc,v 1.34 2016/11/30 11:08:02 ajacoutot Exp $
|
||||||
|
|
||||||
# Most frequent usage of the GStreamer packages:
|
# Most frequent usage of the GStreamer packages:
|
||||||
# core base library
|
# core base library
|
||||||
@ -17,7 +17,7 @@
|
|||||||
|
|
||||||
PORTROACH= limitw:1,even
|
PORTROACH= limitw:1,even
|
||||||
|
|
||||||
V ?= 1.10.1
|
V ?= 1.10.2
|
||||||
API= 1.0
|
API= 1.0
|
||||||
SUBST_VARS += API
|
SUBST_VARS += API
|
||||||
|
|
||||||
|
@ -1,15 +1,15 @@
|
|||||||
# $OpenBSD: Makefile,v 1.35 2016/11/19 08:02:37 ajacoutot Exp $
|
# $OpenBSD: Makefile,v 1.36 2016/11/30 11:08:02 ajacoutot Exp $
|
||||||
|
|
||||||
COMMENT= framework for streaming media
|
COMMENT= framework for streaming media
|
||||||
|
|
||||||
DISTNAME= gstreamer-${V}
|
DISTNAME= gstreamer-${V}
|
||||||
PKGNAME= ${GST_PKGNAME_PREFIX}-${V}
|
PKGNAME= ${GST_PKGNAME_PREFIX}-${V}
|
||||||
|
|
||||||
SHARED_LIBS += gstreamer-1.0 3.1 # 1001.0
|
SHARED_LIBS += gstreamer-1.0 3.1 # 1002.0
|
||||||
SHARED_LIBS += gstbase-1.0 3.1 # 1001.0
|
SHARED_LIBS += gstbase-1.0 3.1 # 1002.0
|
||||||
SHARED_LIBS += gstcontroller-1.0 3.1 # 1001.0
|
SHARED_LIBS += gstcontroller-1.0 3.1 # 1002.0
|
||||||
SHARED_LIBS += gstnet-1.0 3.1 # 1001.0
|
SHARED_LIBS += gstnet-1.0 3.1 # 1002.0
|
||||||
SHARED_LIBS += gstcheck-1.0 3.1 # 1001.0
|
SHARED_LIBS += gstcheck-1.0 3.1 # 1002.0
|
||||||
|
|
||||||
WANTLIB += c ffi gio-2.0 glib-2.0 gmodule-2.0 gobject-2.0 iconv
|
WANTLIB += c ffi gio-2.0 glib-2.0 gmodule-2.0 gobject-2.0 iconv
|
||||||
WANTLIB += intl m pcre pthread z
|
WANTLIB += intl m pcre pthread z
|
||||||
|
@ -1,2 +1,2 @@
|
|||||||
SHA256 (gstreamer/gstreamer-1.10.1.tar.xz) = 9o35luDmmTgrk1u0eD3UAsMBN33xj1fijgMYxLO/9to=
|
SHA256 (gstreamer/gstreamer-1.10.2.tar.xz) = FQ6Ogf66yUwWHYFBzeeKOAOKj1bo7FSfNT2lSZQnjWU=
|
||||||
SIZE (gstreamer/gstreamer-1.10.1.tar.xz) = 3794212
|
SIZE (gstreamer/gstreamer-1.10.2.tar.xz) = 3795152
|
||||||
|
@ -1,22 +1,22 @@
|
|||||||
# $OpenBSD: Makefile,v 1.51 2016/11/17 16:56:05 ajacoutot Exp $
|
# $OpenBSD: Makefile,v 1.52 2016/11/30 11:08:02 ajacoutot Exp $
|
||||||
|
|
||||||
COMMENT= bad elements for GStreamer
|
COMMENT= bad elements for GStreamer
|
||||||
|
|
||||||
DISTNAME= gst-plugins-bad-${V}
|
DISTNAME= gst-plugins-bad-${V}
|
||||||
PKGNAME= ${GST_PKGNAME_PREFIX}-plugins-bad-${V}
|
PKGNAME= ${GST_PKGNAME_PREFIX}-plugins-bad-${V}
|
||||||
|
|
||||||
SHARED_LIBS += gstphotography-1.0 3.1 # 1001.0
|
SHARED_LIBS += gstphotography-1.0 3.1 # 1002.0
|
||||||
SHARED_LIBS += gstbasecamerabinsrc-1.0 3.1 # 1001.0
|
SHARED_LIBS += gstbasecamerabinsrc-1.0 3.1 # 1002.0
|
||||||
SHARED_LIBS += gstcodecparsers-1.0 3.1 # 1001.0
|
SHARED_LIBS += gstcodecparsers-1.0 3.1 # 1002.0
|
||||||
SHARED_LIBS += gstinsertbin-1.0 2.1 # 1001.0
|
SHARED_LIBS += gstinsertbin-1.0 2.1 # 1002.0
|
||||||
SHARED_LIBS += gsturidownloader-1.0 2.1 # 1001.0
|
SHARED_LIBS += gsturidownloader-1.0 2.1 # 1002.0
|
||||||
SHARED_LIBS += gstmpegts-1.0 2.1 # 1001.0
|
SHARED_LIBS += gstmpegts-1.0 2.1 # 1002.0
|
||||||
SHARED_LIBS += gstbadbase-1.0 2.1 # 1001.0
|
SHARED_LIBS += gstbadbase-1.0 2.1 # 1002.0
|
||||||
SHARED_LIBS += gstplayer-1.0 0.1 # 1001.0
|
SHARED_LIBS += gstplayer-1.0 0.1 # 1002.0
|
||||||
SHARED_LIBS += gstgl-1.0 2.1 # 1001.0
|
SHARED_LIBS += gstgl-1.0 2.1 # 1002.0
|
||||||
SHARED_LIBS += gstadaptivedemux-1.0 1.1 # 1001.0
|
SHARED_LIBS += gstadaptivedemux-1.0 1.1 # 1002.0
|
||||||
SHARED_LIBS += gstbadvideo-1.0 2.1 # 1001.0
|
SHARED_LIBS += gstbadvideo-1.0 2.1 # 1002.0
|
||||||
SHARED_LIBS += gstbadaudio-1.0 0.1 # 1001.0
|
SHARED_LIBS += gstbadaudio-1.0 0.1 # 1002.0
|
||||||
|
|
||||||
WANTLIB += EGL GL GLESv2 ICE SM SoundTouch X11 X11-xcb Xcomposite
|
WANTLIB += EGL GL GLESv2 ICE SM SoundTouch X11 X11-xcb Xcomposite
|
||||||
WANTLIB += Xcursor Xdamage Xext Xfixes Xi Xinerama Xrandr Xrender
|
WANTLIB += Xcursor Xdamage Xext Xfixes Xi Xinerama Xrandr Xrender
|
||||||
|
@ -1,2 +1,2 @@
|
|||||||
SHA256 (gstreamer/gst-plugins-bad-1.10.1.tar.xz) = Ez4O2f4hARsV04mOPTqdF6t07tMZltouNTNT5ojKkh0=
|
SHA256 (gstreamer/gst-plugins-bad-1.10.2.tar.xz) = B5XKkwOpnMfkTdoObhhSTeArOYkuS2jqukiPe521Ojo=
|
||||||
SIZE (gstreamer/gst-plugins-bad-1.10.1.tar.xz) = 4745444
|
SIZE (gstreamer/gst-plugins-bad-1.10.2.tar.xz) = 4730336
|
||||||
|
@ -1,21 +1,21 @@
|
|||||||
# $OpenBSD: Makefile,v 1.47 2016/11/17 16:56:05 ajacoutot Exp $
|
# $OpenBSD: Makefile,v 1.48 2016/11/30 11:08:02 ajacoutot Exp $
|
||||||
|
|
||||||
COMMENT= base elements for GStreamer
|
COMMENT= base elements for GStreamer
|
||||||
|
|
||||||
DISTNAME= gst-plugins-base-${V}
|
DISTNAME= gst-plugins-base-${V}
|
||||||
PKGNAME= ${GST_PKGNAME_PREFIX}-plugins-base-${V}
|
PKGNAME= ${GST_PKGNAME_PREFIX}-plugins-base-${V}
|
||||||
|
|
||||||
SHARED_LIBS += gsttag-1.0 3.1 # 1001.0
|
SHARED_LIBS += gsttag-1.0 3.1 # 1002.0
|
||||||
SHARED_LIBS += gstaudio-1.0 3.1 # 1001.0
|
SHARED_LIBS += gstaudio-1.0 3.1 # 1002.0
|
||||||
SHARED_LIBS += gstfft-1.0 3.1 # 1001.0
|
SHARED_LIBS += gstfft-1.0 3.1 # 1002.0
|
||||||
SHARED_LIBS += gstvideo-1.0 3.1 # 1001.0
|
SHARED_LIBS += gstvideo-1.0 3.1 # 1002.0
|
||||||
SHARED_LIBS += gstapp-1.0 3.1 # 1001.0
|
SHARED_LIBS += gstapp-1.0 3.1 # 1002.0
|
||||||
SHARED_LIBS += gstrtp-1.0 3.1 # 1001.0
|
SHARED_LIBS += gstrtp-1.0 3.1 # 1002.0
|
||||||
SHARED_LIBS += gstsdp-1.0 3.1 # 1001.0
|
SHARED_LIBS += gstsdp-1.0 3.1 # 1002.0
|
||||||
SHARED_LIBS += gstrtsp-1.0 3.1 # 1001.0
|
SHARED_LIBS += gstrtsp-1.0 3.1 # 1002.0
|
||||||
SHARED_LIBS += gstpbutils-1.0 3.1 # 1001.0
|
SHARED_LIBS += gstpbutils-1.0 3.1 # 1002.0
|
||||||
SHARED_LIBS += gstriff-1.0 3.1 # 1001.0
|
SHARED_LIBS += gstriff-1.0 3.1 # 1002.0
|
||||||
SHARED_LIBS += gstallocators-1.0 2.1 # 1001.0
|
SHARED_LIBS += gstallocators-1.0 2.1 # 1002.0
|
||||||
|
|
||||||
MASTER_SITES= ${MASTER_SITE_GST:=gst-plugins-base/}
|
MASTER_SITES= ${MASTER_SITE_GST:=gst-plugins-base/}
|
||||||
|
|
||||||
|
@ -1,2 +1,2 @@
|
|||||||
SHA256 (gstreamer/gst-plugins-base-1.10.1.tar.xz) = Zs/uKUx6r514Z+q6SEHKYlTqdPGotT4SifTTubbJdsk=
|
SHA256 (gstreamer/gst-plugins-base-1.10.2.tar.xz) = +8DUD8t0bS7+LqR0RGdAKZEvZuYQfyMnZtM7ciuX3iA=
|
||||||
SIZE (gstreamer/gst-plugins-base-1.10.1.tar.xz) = 3053860
|
SIZE (gstreamer/gst-plugins-base-1.10.2.tar.xz) = 3055764
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
# $OpenBSD: Makefile,v 1.43 2016/11/23 14:52:15 dcoppa Exp $
|
# $OpenBSD: Makefile,v 1.44 2016/11/30 11:08:02 ajacoutot Exp $
|
||||||
|
|
||||||
# XXX ossaudio(3) is only enabled to be used as a mixing device by
|
# XXX ossaudio(3) is only enabled to be used as a mixing device by
|
||||||
# x11/xfce4/xfce4-mixer
|
# x11/xfce4/xfce4-mixer
|
||||||
@ -12,8 +12,6 @@ PKGNAME= ${GST_PKGNAME_PREFIX}-plugins-good-${V}
|
|||||||
PKGNAME-main= ${PKGNAME}
|
PKGNAME-main= ${PKGNAME}
|
||||||
PKGNAME-pulse= ${GST_PKGNAME_PREFIX}-plugins-pulse-${V}
|
PKGNAME-pulse= ${GST_PKGNAME_PREFIX}-plugins-pulse-${V}
|
||||||
|
|
||||||
REVISION-main= 0
|
|
||||||
|
|
||||||
MASTER_SITES= ${MASTER_SITE_GST:=gst-plugins-good/}
|
MASTER_SITES= ${MASTER_SITE_GST:=gst-plugins-good/}
|
||||||
|
|
||||||
WANTLIB += ffi glib-2.0 gmodule-2.0 gobject-2.0 gstaudio-1.0 gstbase-1.0
|
WANTLIB += ffi glib-2.0 gmodule-2.0 gobject-2.0 gstaudio-1.0 gstbase-1.0
|
||||||
|
@ -1,2 +1,2 @@
|
|||||||
SHA256 (gstreamer/gst-plugins-good-1.10.1.tar.xz) = p2Qup+fBf7Z+lNDBflZ1e2V3+n7SRP+MEQMYQdNVbMI=
|
SHA256 (gstreamer/gst-plugins-good-1.10.2.tar.xz) = GY8yW8zpgtzh6+s2kppfQwuL+VKODVGeGN8LKeHSMxM=
|
||||||
SIZE (gstreamer/gst-plugins-good-1.10.1.tar.xz) = 3416632
|
SIZE (gstreamer/gst-plugins-good-1.10.2.tar.xz) = 3418120
|
||||||
|
@ -1,306 +0,0 @@
|
|||||||
$OpenBSD: patch-gst_flx_gstflxdec_c,v 1.1 2016/11/23 14:52:15 dcoppa Exp $
|
|
||||||
|
|
||||||
From 2e203a79b7d9af4029307c1a845b3c148d5f5e62 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Matthew Waters <matthew@centricular.com>
|
|
||||||
Date: Tue, 22 Nov 2016 19:05:00 +1100
|
|
||||||
Subject: flxdec: add some write bounds checking
|
|
||||||
|
|
||||||
Without checking the bounds of the frame we are writing into, we can
|
|
||||||
write off the end of the destination buffer.
|
|
||||||
|
|
||||||
https://scarybeastsecurity.blogspot.dk/2016/11/0day-exploit-advancing-exploitation.html
|
|
||||||
|
|
||||||
https://bugzilla.gnome.org/show_bug.cgi?id=774834
|
|
||||||
|
|
||||||
--- gst/flx/gstflxdec.c.orig Fri Nov 4 18:07:09 2016
|
|
||||||
+++ gst/flx/gstflxdec.c Wed Nov 23 12:13:57 2016
|
|
||||||
@@ -74,9 +74,9 @@ static gboolean gst_flxdec_src_query_handler (GstPad *
|
|
||||||
GstQuery * query);
|
|
||||||
|
|
||||||
static void flx_decode_color (GstFlxDec *, guchar *, guchar *, gint);
|
|
||||||
-static void flx_decode_brun (GstFlxDec *, guchar *, guchar *);
|
|
||||||
-static void flx_decode_delta_fli (GstFlxDec *, guchar *, guchar *);
|
|
||||||
-static void flx_decode_delta_flc (GstFlxDec *, guchar *, guchar *);
|
|
||||||
+static gboolean flx_decode_brun (GstFlxDec *, guchar *, guchar *);
|
|
||||||
+static gboolean flx_decode_delta_fli (GstFlxDec *, guchar *, guchar *);
|
|
||||||
+static gboolean flx_decode_delta_flc (GstFlxDec *, guchar *, guchar *);
|
|
||||||
|
|
||||||
#define rndalign(off) ((off) + ((off) & 1))
|
|
||||||
|
|
||||||
@@ -203,13 +203,14 @@ gst_flxdec_sink_event_handler (GstPad * pad, GstObject
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
-static void
|
|
||||||
+static gboolean
|
|
||||||
flx_decode_chunks (GstFlxDec * flxdec, gulong count, guchar * data,
|
|
||||||
guchar * dest)
|
|
||||||
{
|
|
||||||
FlxFrameChunk *hdr;
|
|
||||||
+ gboolean ret = TRUE;
|
|
||||||
|
|
||||||
- g_return_if_fail (data != NULL);
|
|
||||||
+ g_return_val_if_fail (data != NULL, FALSE);
|
|
||||||
|
|
||||||
while (count--) {
|
|
||||||
hdr = (FlxFrameChunk *) data;
|
|
||||||
@@ -228,17 +229,17 @@ flx_decode_chunks (GstFlxDec * flxdec, gulong count, g
|
|
||||||
break;
|
|
||||||
|
|
||||||
case FLX_BRUN:
|
|
||||||
- flx_decode_brun (flxdec, data, dest);
|
|
||||||
+ ret = flx_decode_brun (flxdec, data, dest);
|
|
||||||
data += rndalign (hdr->size) - FlxFrameChunkSize;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case FLX_LC:
|
|
||||||
- flx_decode_delta_fli (flxdec, data, dest);
|
|
||||||
+ ret = flx_decode_delta_fli (flxdec, data, dest);
|
|
||||||
data += rndalign (hdr->size) - FlxFrameChunkSize;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case FLX_SS2:
|
|
||||||
- flx_decode_delta_flc (flxdec, data, dest);
|
|
||||||
+ ret = flx_decode_delta_flc (flxdec, data, dest);
|
|
||||||
data += rndalign (hdr->size) - FlxFrameChunkSize;
|
|
||||||
break;
|
|
||||||
|
|
||||||
@@ -256,7 +257,12 @@ flx_decode_chunks (GstFlxDec * flxdec, gulong count, g
|
|
||||||
data += rndalign (hdr->size) - FlxFrameChunkSize;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
+
|
|
||||||
+ if (!ret)
|
|
||||||
+ break;
|
|
||||||
}
|
|
||||||
+
|
|
||||||
+ return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@@ -289,13 +295,13 @@ flx_decode_color (GstFlxDec * flxdec, guchar * data, g
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
-static void
|
|
||||||
+static gboolean
|
|
||||||
flx_decode_brun (GstFlxDec * flxdec, guchar * data, guchar * dest)
|
|
||||||
{
|
|
||||||
gulong count, lines, row;
|
|
||||||
guchar x;
|
|
||||||
|
|
||||||
- g_return_if_fail (flxdec != NULL);
|
|
||||||
+ g_return_val_if_fail (flxdec != NULL, FALSE);
|
|
||||||
|
|
||||||
lines = flxdec->hdr.height;
|
|
||||||
while (lines--) {
|
|
||||||
@@ -313,12 +319,21 @@ flx_decode_brun (GstFlxDec * flxdec, guchar * data, gu
|
|
||||||
if (count > 0x7f) {
|
|
||||||
/* literal run */
|
|
||||||
count = 0x100 - count;
|
|
||||||
+ if ((glong) row - (glong) count < 0) {
|
|
||||||
+ GST_ERROR_OBJECT (flxdec, "Invalid BRUN packet detected.");
|
|
||||||
+ return FALSE;
|
|
||||||
+ }
|
|
||||||
row -= count;
|
|
||||||
|
|
||||||
while (count--)
|
|
||||||
*dest++ = *data++;
|
|
||||||
|
|
||||||
} else {
|
|
||||||
+ if ((glong) row - (glong) count < 0) {
|
|
||||||
+ GST_ERROR_OBJECT (flxdec, "Invalid BRUN packet detected.");
|
|
||||||
+ return FALSE;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
/* replicate run */
|
|
||||||
row -= count;
|
|
||||||
x = *data++;
|
|
||||||
@@ -328,22 +343,28 @@ flx_decode_brun (GstFlxDec * flxdec, guchar * data, gu
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+
|
|
||||||
+ return TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
-static void
|
|
||||||
+static gboolean
|
|
||||||
flx_decode_delta_fli (GstFlxDec * flxdec, guchar * data, guchar * dest)
|
|
||||||
{
|
|
||||||
gulong count, packets, lines, start_line;
|
|
||||||
guchar *start_p, x;
|
|
||||||
|
|
||||||
- g_return_if_fail (flxdec != NULL);
|
|
||||||
- g_return_if_fail (flxdec->delta_data != NULL);
|
|
||||||
+ g_return_val_if_fail (flxdec != NULL, FALSE);
|
|
||||||
+ g_return_val_if_fail (flxdec->delta_data != NULL, FALSE);
|
|
||||||
|
|
||||||
/* use last frame for delta */
|
|
||||||
memcpy (dest, flxdec->delta_data, flxdec->size);
|
|
||||||
|
|
||||||
start_line = (data[0] + (data[1] << 8));
|
|
||||||
lines = (data[2] + (data[3] << 8));
|
|
||||||
+ if (start_line + lines > flxdec->hdr.height) {
|
|
||||||
+ GST_ERROR_OBJECT (flxdec, "Invalid FLI packet detected. too many lines.");
|
|
||||||
+ return FALSE;
|
|
||||||
+ }
|
|
||||||
data += 4;
|
|
||||||
|
|
||||||
/* start position of delta */
|
|
||||||
@@ -356,7 +377,8 @@ flx_decode_delta_fli (GstFlxDec * flxdec, guchar * dat
|
|
||||||
|
|
||||||
while (packets--) {
|
|
||||||
/* skip count */
|
|
||||||
- dest += *data++;
|
|
||||||
+ guchar skip = *data++;
|
|
||||||
+ dest += skip;
|
|
||||||
|
|
||||||
/* RLE count */
|
|
||||||
count = *data++;
|
|
||||||
@@ -364,12 +386,24 @@ flx_decode_delta_fli (GstFlxDec * flxdec, guchar * dat
|
|
||||||
if (count > 0x7f) {
|
|
||||||
/* literal run */
|
|
||||||
count = 0x100 - count;
|
|
||||||
- x = *data++;
|
|
||||||
|
|
||||||
+ if (skip + count > flxdec->hdr.width) {
|
|
||||||
+ GST_ERROR_OBJECT (flxdec, "Invalid FLI packet detected. "
|
|
||||||
+ "line too long.");
|
|
||||||
+ return FALSE;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ x = *data++;
|
|
||||||
while (count--)
|
|
||||||
*dest++ = x;
|
|
||||||
|
|
||||||
} else {
|
|
||||||
+ if (skip + count > flxdec->hdr.width) {
|
|
||||||
+ GST_ERROR_OBJECT (flxdec, "Invalid FLI packet detected. "
|
|
||||||
+ "line too long.");
|
|
||||||
+ return FALSE;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
/* replicate run */
|
|
||||||
while (count--)
|
|
||||||
*dest++ = *data++;
|
|
||||||
@@ -378,21 +412,27 @@ flx_decode_delta_fli (GstFlxDec * flxdec, guchar * dat
|
|
||||||
start_p += flxdec->hdr.width;
|
|
||||||
dest = start_p;
|
|
||||||
}
|
|
||||||
+
|
|
||||||
+ return TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
-static void
|
|
||||||
+static gboolean
|
|
||||||
flx_decode_delta_flc (GstFlxDec * flxdec, guchar * data, guchar * dest)
|
|
||||||
{
|
|
||||||
gulong count, lines, start_l, opcode;
|
|
||||||
guchar *start_p;
|
|
||||||
|
|
||||||
- g_return_if_fail (flxdec != NULL);
|
|
||||||
- g_return_if_fail (flxdec->delta_data != NULL);
|
|
||||||
+ g_return_val_if_fail (flxdec != NULL, FALSE);
|
|
||||||
+ g_return_val_if_fail (flxdec->delta_data != NULL, FALSE);
|
|
||||||
|
|
||||||
/* use last frame for delta */
|
|
||||||
memcpy (dest, flxdec->delta_data, flxdec->size);
|
|
||||||
|
|
||||||
lines = (data[0] + (data[1] << 8));
|
|
||||||
+ if (lines > flxdec->hdr.height) {
|
|
||||||
+ GST_ERROR_OBJECT (flxdec, "Invalid FLC packet detected. too many lines.");
|
|
||||||
+ return FALSE;
|
|
||||||
+ }
|
|
||||||
data += 2;
|
|
||||||
|
|
||||||
start_p = dest;
|
|
||||||
@@ -405,9 +445,15 @@ flx_decode_delta_flc (GstFlxDec * flxdec, guchar * dat
|
|
||||||
while ((opcode = (data[0] + (data[1] << 8))) & 0xc000) {
|
|
||||||
data += 2;
|
|
||||||
if ((opcode & 0xc000) == 0xc000) {
|
|
||||||
- /* skip count */
|
|
||||||
- start_l += (0x10000 - opcode);
|
|
||||||
- dest += flxdec->hdr.width * (0x10000 - opcode);
|
|
||||||
+ /* line skip count */
|
|
||||||
+ gulong skip = (0x10000 - opcode);
|
|
||||||
+ if (skip > flxdec->hdr.height) {
|
|
||||||
+ GST_ERROR_OBJECT (flxdec, "Invalid FLC packet detected. "
|
|
||||||
+ "skip line count too big.");
|
|
||||||
+ return FALSE;
|
|
||||||
+ }
|
|
||||||
+ start_l += skip;
|
|
||||||
+ dest += flxdec->hdr.width * skip;
|
|
||||||
} else {
|
|
||||||
/* last pixel */
|
|
||||||
dest += flxdec->hdr.width;
|
|
||||||
@@ -419,7 +465,8 @@ flx_decode_delta_flc (GstFlxDec * flxdec, guchar * dat
|
|
||||||
/* last opcode is the packet count */
|
|
||||||
while (opcode--) {
|
|
||||||
/* skip count */
|
|
||||||
- dest += *data++;
|
|
||||||
+ guchar skip = *data++;
|
|
||||||
+ dest += skip;
|
|
||||||
|
|
||||||
/* RLE count */
|
|
||||||
count = *data++;
|
|
||||||
@@ -427,12 +474,25 @@ flx_decode_delta_flc (GstFlxDec * flxdec, guchar * dat
|
|
||||||
if (count > 0x7f) {
|
|
||||||
/* replicate word run */
|
|
||||||
count = 0x100 - count;
|
|
||||||
+
|
|
||||||
+ if (skip + count > flxdec->hdr.width) {
|
|
||||||
+ GST_ERROR_OBJECT (flxdec, "Invalid FLC packet detected. "
|
|
||||||
+ "line too long.");
|
|
||||||
+ return FALSE;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
while (count--) {
|
|
||||||
*dest++ = data[0];
|
|
||||||
*dest++ = data[1];
|
|
||||||
}
|
|
||||||
data += 2;
|
|
||||||
} else {
|
|
||||||
+ if (skip + count > flxdec->hdr.width) {
|
|
||||||
+ GST_ERROR_OBJECT (flxdec, "Invalid FLC packet detected. "
|
|
||||||
+ "line too long.");
|
|
||||||
+ return FALSE;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
/* literal word run */
|
|
||||||
while (count--) {
|
|
||||||
*dest++ = *data++;
|
|
||||||
@@ -442,6 +502,8 @@ flx_decode_delta_flc (GstFlxDec * flxdec, guchar * dat
|
|
||||||
}
|
|
||||||
lines--;
|
|
||||||
}
|
|
||||||
+
|
|
||||||
+ return TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
static GstFlowReturn
|
|
||||||
@@ -571,9 +633,13 @@ gst_flxdec_chain (GstPad * pad, GstObject * parent, Gs
|
|
||||||
out = gst_buffer_new_and_alloc (flxdec->size * 4);
|
|
||||||
|
|
||||||
/* decode chunks */
|
|
||||||
- flx_decode_chunks (flxdec,
|
|
||||||
- ((FlxFrameType *) chunk)->chunks,
|
|
||||||
- chunk + FlxFrameTypeSize, flxdec->frame_data);
|
|
||||||
+ if (!flx_decode_chunks (flxdec,
|
|
||||||
+ ((FlxFrameType *) chunk)->chunks,
|
|
||||||
+ chunk + FlxFrameTypeSize, flxdec->frame_data)) {
|
|
||||||
+ GST_ELEMENT_ERROR (flxdec, STREAM, DECODE,
|
|
||||||
+ ("%s", "Could not decode chunk"), NULL);
|
|
||||||
+ return GST_FLOW_ERROR;
|
|
||||||
+ }
|
|
||||||
|
|
||||||
/* save copy of the current frame for possible delta. */
|
|
||||||
memcpy (flxdec->delta_data, flxdec->frame_data, flxdec->size);
|
|
||||||
@@ -611,7 +677,6 @@ wrong_type:
|
|
||||||
{
|
|
||||||
GST_ELEMENT_ERROR (flxdec, STREAM, WRONG_TYPE, (NULL),
|
|
||||||
("not a flx file (type %x)", flxh->type));
|
|
||||||
- gst_object_unref (flxdec);
|
|
||||||
return GST_FLOW_ERROR;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,2 +1,2 @@
|
|||||||
SHA256 (gstreamer/gst-libav-1.10.1.tar.xz) = J7KLjeDm3/HjlSQo6O2LpKEvRS94msCum75Q8Apccsc=
|
SHA256 (gstreamer/gst-libav-1.10.2.tar.xz) = o91wNiEfBh4e2gT5hbep3RqRt1T3Z/8lh+tuwo9E5zw=
|
||||||
SIZE (gstreamer/gst-libav-1.10.1.tar.xz) = 8529692
|
SIZE (gstreamer/gst-libav-1.10.2.tar.xz) = 8534416
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
$OpenBSD: patch-gst-libs_ext_libav_configure,v 1.12 2016/11/02 22:21:35 ajacoutot Exp $
|
$OpenBSD: patch-gst-libs_ext_libav_configure,v 1.13 2016/11/30 11:08:02 ajacoutot Exp $
|
||||||
--- gst-libs/ext/libav/configure.orig Tue Nov 1 17:01:32 2016
|
--- gst-libs/ext/libav/configure.orig Tue Nov 29 14:56:08 2016
|
||||||
+++ gst-libs/ext/libav/configure Wed Nov 2 21:42:30 2016
|
+++ gst-libs/ext/libav/configure Wed Nov 30 11:31:45 2016
|
||||||
@@ -5091,7 +5091,7 @@ die_license_disabled version3 libvo_amrwbenc
|
@@ -5097,7 +5097,7 @@ die_license_disabled version3 libvo_amrwbenc
|
||||||
|
|
||||||
enabled version3 && { enabled gpl && enable gplv3 || enable lgplv3; }
|
enabled version3 && { enabled gpl && enable gplv3 || enable lgplv3; }
|
||||||
|
|
||||||
|
@ -1,2 +1,2 @@
|
|||||||
SHA256 (gstreamer/gst-plugins-ugly-1.10.1.tar.xz) = pezVn8IJHutSNo3oHMapHBocGdxb3ehc6Q4e7V1Bg8I=
|
SHA256 (gstreamer/gst-plugins-ugly-1.10.2.tar.xz) = 8wPdTC68lj6LCwPDBp9wZXvPHNYiJNNErVebPdoX7J0=
|
||||||
SIZE (gstreamer/gst-plugins-ugly-1.10.1.tar.xz) = 905568
|
SIZE (gstreamer/gst-plugins-ugly-1.10.2.tar.xz) = 907316
|
||||||
|
@ -1,2 +1,2 @@
|
|||||||
SHA256 (gstreamer/gst-python-1.10.1.tar.xz) = UwWzSvdKGC/XLeDmCT628gbqTSba1T0PVkYDBj6AsBM=
|
SHA256 (gstreamer/gst-python-1.10.2.tar.xz) = 4WgKgpapmXjme1BwpBS6KwOaY+FXZfi+Nz0K1ye2kuo=
|
||||||
SIZE (gstreamer/gst-python-1.10.1.tar.xz) = 389376
|
SIZE (gstreamer/gst-python-1.10.2.tar.xz) = 389628
|
||||||
|
Loading…
x
Reference in New Issue
Block a user