summaryrefslogtreecommitdiff
path: root/multimedia/xine-lib/patches
diff options
context:
space:
mode:
authordrochner <drochner@pkgsrc.org>2009-04-05 13:15:01 +0000
committerdrochner <drochner@pkgsrc.org>2009-04-05 13:15:01 +0000
commitd3551cd683ad25e1356f68eb54eac4f2a6662acc (patch)
tree36a3ad9c7cdc7e0492ad590e906c36e296e982f9 /multimedia/xine-lib/patches
parent195fbce98e907f682eec77a46fc3c7a42c1538ea (diff)
downloadpkgsrc-d3551cd683ad25e1356f68eb54eac4f2a6662acc.tar.gz
add a patch from upstream CVS to fix an integer overflow in the
Quicktime demuxer, bump PKGREVISION
Diffstat (limited to 'multimedia/xine-lib/patches')
-rw-r--r--multimedia/xine-lib/patches/patch-ay26
1 files changed, 26 insertions, 0 deletions
diff --git a/multimedia/xine-lib/patches/patch-ay b/multimedia/xine-lib/patches/patch-ay
new file mode 100644
index 00000000000..9630bd4f2f8
--- /dev/null
+++ b/multimedia/xine-lib/patches/patch-ay
@@ -0,0 +1,26 @@
+$NetBSD: patch-ay,v 1.7 2009/04/05 13:15:01 drochner Exp $
+
+--- src/demuxers/demux_qt.c.orig 2009-04-05 11:28:05.000000000 +0200
++++ src/demuxers/demux_qt.c
+@@ -1535,7 +1535,8 @@ static qt_error parse_trak_atom (qt_trak
+ } else if (current_atom == STTS_ATOM) {
+
+ /* there should only be one of these atoms */
+- if (trak->time_to_sample_table) {
++ if (trak->time_to_sample_table
++ || current_atom_size < 12 || current_atom_size >= UINT_MAX) {
+ last_error = QT_HEADER_TROUBLE;
+ goto free_trak;
+ }
+@@ -1545,6 +1546,11 @@ static qt_error parse_trak_atom (qt_trak
+ debug_atom_load(" qt stts atom (time-to-sample atom): %d entries\n",
+ trak->time_to_sample_count);
+
++ if (trak->time_to_sample_count > (current_atom_size - 12) / 8) {
++ last_error = QT_HEADER_TROUBLE;
++ goto free_trak;
++ }
++
+ trak->time_to_sample_table = (time_to_sample_table_t *)calloc(
+ trak->time_to_sample_count+1, sizeof(time_to_sample_table_t));
+ if (!trak->time_to_sample_table) {