summaryrefslogtreecommitdiff
path: root/multimedia/xine-lib/patches
diff options
context:
space:
mode:
authordrochner <drochner@pkgsrc.org>2007-01-09 14:46:31 +0000
committerdrochner <drochner@pkgsrc.org>2007-01-09 14:46:31 +0000
commita9b8d97d09ae14f32c040020a71d16f73e39fd9e (patch)
treed14c074246ecfa161ad402e07ba9a8b5efd756bb /multimedia/xine-lib/patches
parentc2adaf574e1dc755bd620d0995095dd5e2512bef (diff)
downloadpkgsrc-a9b8d97d09ae14f32c040020a71d16f73e39fd9e.tar.gz
in local copy of libdvdnav:
-avoid file descriptor leak -advance buffer pointer correctly on short reads from an unnamed contributor add limit check to real parser (CVE-2006-6172) from mplayer svn bump PKGREVISION
Diffstat (limited to 'multimedia/xine-lib/patches')
-rw-r--r--multimedia/xine-lib/patches/patch-eb12
-rw-r--r--multimedia/xine-lib/patches/patch-ec17
-rw-r--r--multimedia/xine-lib/patches/patch-ed25
-rw-r--r--multimedia/xine-lib/patches/patch-ee13
-rw-r--r--multimedia/xine-lib/patches/patch-ef13
5 files changed, 80 insertions, 0 deletions
diff --git a/multimedia/xine-lib/patches/patch-eb b/multimedia/xine-lib/patches/patch-eb
new file mode 100644
index 00000000000..c3deb37dde4
--- /dev/null
+++ b/multimedia/xine-lib/patches/patch-eb
@@ -0,0 +1,12 @@
+$NetBSD: patch-eb,v 1.1 2007/01/09 14:46:31 drochner Exp $
+
+--- src/input/libdvdnav/dvd_input.c.orig 2007-01-09 00:03:58.000000000 +0100
++++ src/input/libdvdnav/dvd_input.c
+@@ -319,6 +319,7 @@ static int file_read(dvd_input_t dev, vo
+ return (int) (bytes / DVD_VIDEO_LB_LEN);
+ }
+
++ buffer += ret;
+ len -= ret;
+ }
+
diff --git a/multimedia/xine-lib/patches/patch-ec b/multimedia/xine-lib/patches/patch-ec
new file mode 100644
index 00000000000..ec488b1c049
--- /dev/null
+++ b/multimedia/xine-lib/patches/patch-ec
@@ -0,0 +1,17 @@
+$NetBSD: patch-ec,v 1.1 2007/01/09 14:46:31 drochner Exp $
+
+--- src/input/libdvdnav/dvd_reader.c.orig 2007-01-09 00:09:32.000000000 +0100
++++ src/input/libdvdnav/dvd_reader.c
+@@ -603,10 +603,12 @@ static int findDirFile( const char *path
+ sprintf( filename, "%s%s%s", path,
+ ( ( path[ strlen( path ) - 1 ] == '/' ) ? "" : "/" ),
+ ent->d_name );
++ closedir( dir );
+ return 0;
+ }
+ }
+
++ closedir( dir );
+ return -1;
+ }
+
diff --git a/multimedia/xine-lib/patches/patch-ed b/multimedia/xine-lib/patches/patch-ed
new file mode 100644
index 00000000000..063fd89f1be
--- /dev/null
+++ b/multimedia/xine-lib/patches/patch-ed
@@ -0,0 +1,25 @@
+$NetBSD: patch-ed,v 1.1 2007/01/09 14:46:31 drochner Exp $
+
+--- src/input/libreal/asmrp.c.orig 2006-11-29 20:43:01.000000000 +0100
++++ src/input/libreal/asmrp.c
+@@ -37,6 +37,7 @@
+ #include <stdlib.h>
+ #include <stdio.h>
+ #include <string.h>
++#include "asmrp.h"
+
+ #define LOG_MODULE "asmrp"
+ #define LOG_VERBOSE
+@@ -618,8 +619,10 @@ static int asmrp_eval (asmrp_t *p, int *
+ if (asmrp_rule (p)) {
+ lprintf ("rule #%d is true\n", rule_num);
+
+- matches[num_matches] = rule_num;
+- num_matches++;
++ if(num_matches < MAX_RULEMATCHES - 1)
++ matches[num_matches++] = rule_num;
++ else
++ printf("Ignoring matched asm rule %d, too many matched rules.\n", rule_num);
+ }
+
+ rule_num++;
diff --git a/multimedia/xine-lib/patches/patch-ee b/multimedia/xine-lib/patches/patch-ee
new file mode 100644
index 00000000000..2cc5e62de71
--- /dev/null
+++ b/multimedia/xine-lib/patches/patch-ee
@@ -0,0 +1,13 @@
+$NetBSD: patch-ee,v 1.1 2007/01/09 14:46:31 drochner Exp $
+
+--- src/input/libreal/real.c.orig 2006-11-29 20:43:01.000000000 +0100
++++ src/input/libreal/real.c
+@@ -472,7 +472,7 @@ rmff_header_t *real_parse_sdp(char *data
+ int j=0;
+ int n;
+ char b[64];
+- int rulematches[16];
++ int rulematches[MAX_RULEMATCHES];
+
+ lprintf("calling asmrp_match with:\n%s\n%u\n", desc->stream[i]->asm_rule_book, bandwidth);
+
diff --git a/multimedia/xine-lib/patches/patch-ef b/multimedia/xine-lib/patches/patch-ef
new file mode 100644
index 00000000000..ccba09cc4ab
--- /dev/null
+++ b/multimedia/xine-lib/patches/patch-ef
@@ -0,0 +1,13 @@
+$NetBSD: patch-ef,v 1.1 2007/01/09 14:46:31 drochner Exp $
+
+--- src/input/libreal/asmrp.h.orig 2006-11-29 20:43:01.000000000 +0100
++++ src/input/libreal/asmrp.h
+@@ -37,6 +37,8 @@
+ #ifndef HAVE_ASMRP_H
+ #define HAVE_ASMRP_H
+
++#define MAX_RULEMATCHES 16
++
+ int asmrp_match (const char *rules, int bandwidth, int *matches, int matchesizxe) ;
+
+ #endif