This commit is contained in:
parent
36e0db74c9
commit
e6182c5433
@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:8f5a180fd5e129330f9893e5a89e38577d347322d3fd3240f5683ab7bd4df3c9
|
oid sha256:ab172925fb278e5953526435c3a6aad7b3969307051ed23db86ff1473c07aa0f
|
||||||
size 22308
|
size 21891
|
||||||
|
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:897b552cce7c9b13e11263dfcb82111b64d6fa38b27c6d1adc85c0a88ea3b798
|
|
||||||
size 5005675
|
|
3
xine-lib-1.1.11-crippled.tar.bz2
Normal file
3
xine-lib-1.1.11-crippled.tar.bz2
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:5ebbe7eac3eea9cdcea19cdc206343dcff301ee3b1947c789938f75e76783805
|
||||||
|
size 5065527
|
@ -1,6 +1,8 @@
|
|||||||
--- xine-lib-1.1.7.org/configure.ac 2007-08-16 11:12:26.000000000 +0000
|
Index: xine-lib-1.1.11/configure.ac
|
||||||
+++ xine-lib-1.1.7/configure.ac 2007-08-16 11:12:25.000000000 +0000
|
===================================================================
|
||||||
@@ -2509,6 +2509,28 @@
|
--- xine-lib-1.1.11.orig/configure.ac
|
||||||
|
+++ xine-lib-1.1.11/configure.ac
|
||||||
|
@@ -2545,6 +2545,28 @@ fi
|
||||||
|
|
||||||
AM_CONDITIONAL(HAVE_W32DLL, test "x$enable_w32dll" != "xno")
|
AM_CONDITIONAL(HAVE_W32DLL, test "x$enable_w32dll" != "xno")
|
||||||
|
|
||||||
@ -29,9 +31,11 @@
|
|||||||
|
|
||||||
dnl ---------------------------------------------
|
dnl ---------------------------------------------
|
||||||
dnl some include paths ( !!! DO NOT REMOVE !!! )
|
dnl some include paths ( !!! DO NOT REMOVE !!! )
|
||||||
--- xine-lib-1.1.7.org/src/xine-engine/xine.c 2007-08-16 11:12:25.000000000 +0000
|
Index: xine-lib-1.1.11/src/xine-engine/xine.c
|
||||||
+++ xine-lib-1.1.7/src/xine-engine/xine.c 2007-08-16 11:12:21.000000000 +0000
|
===================================================================
|
||||||
@@ -1643,6 +1643,15 @@
|
--- xine-lib-1.1.11.orig/src/xine-engine/xine.c
|
||||||
|
+++ xine-lib-1.1.11/src/xine-engine/xine.c
|
||||||
|
@@ -1780,6 +1780,15 @@ void xine_init (xine_t *this) {
|
||||||
0, NULL, this);
|
0, NULL, this);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -47,9 +51,11 @@
|
|||||||
* keep track of all opened streams
|
* keep track of all opened streams
|
||||||
*/
|
*/
|
||||||
this->streams = xine_list_new();
|
this->streams = xine_list_new();
|
||||||
--- xine-lib-1.1.7.org/src/xine-engine/video_decoder.c 2007-08-16 11:12:25.000000000 +0000
|
Index: xine-lib-1.1.11/src/xine-engine/video_decoder.c
|
||||||
+++ xine-lib-1.1.7/src/xine-engine/video_decoder.c 2007-08-16 11:40:56.000000000 +0000
|
===================================================================
|
||||||
@@ -39,6 +39,7 @@
|
--- xine-lib-1.1.11.orig/src/xine-engine/video_decoder.c
|
||||||
|
+++ xine-lib-1.1.11/src/xine-engine/video_decoder.c
|
||||||
|
@@ -37,6 +37,7 @@
|
||||||
|
|
||||||
#include "xine_internal.h"
|
#include "xine_internal.h"
|
||||||
#include "xineutils.h"
|
#include "xineutils.h"
|
||||||
@ -57,7 +63,7 @@
|
|||||||
#include <sched.h>
|
#include <sched.h>
|
||||||
|
|
||||||
#define SPU_SLEEP_INTERVAL (90000/2)
|
#define SPU_SLEEP_INTERVAL (90000/2)
|
||||||
@@ -369,6 +370,10 @@
|
@@ -376,6 +377,10 @@ static void *video_decoder_loop (void *s
|
||||||
stream->video_decoder_plugin = _x_get_video_decoder (stream, streamtype);
|
stream->video_decoder_plugin = _x_get_video_decoder (stream, streamtype);
|
||||||
|
|
||||||
_x_stream_info_set(stream, XINE_STREAM_INFO_VIDEO_HANDLED, (stream->video_decoder_plugin != NULL));
|
_x_stream_info_set(stream, XINE_STREAM_INFO_VIDEO_HANDLED, (stream->video_decoder_plugin != NULL));
|
||||||
@ -68,9 +74,11 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (stream->video_decoder_plugin)
|
if (stream->video_decoder_plugin)
|
||||||
--- xine-lib-1.1.7.org/src/xine-engine/audio_decoder.c 2007-08-16 11:12:25.000000000 +0000
|
Index: xine-lib-1.1.11/src/xine-engine/audio_decoder.c
|
||||||
+++ xine-lib-1.1.7/src/xine-engine/audio_decoder.c 2007-08-16 11:41:24.000000000 +0000
|
===================================================================
|
||||||
@@ -43,6 +43,7 @@
|
--- xine-lib-1.1.11.orig/src/xine-engine/audio_decoder.c
|
||||||
|
+++ xine-lib-1.1.11/src/xine-engine/audio_decoder.c
|
||||||
|
@@ -41,6 +41,7 @@
|
||||||
|
|
||||||
#include "xine_internal.h"
|
#include "xine_internal.h"
|
||||||
#include "xineutils.h"
|
#include "xineutils.h"
|
||||||
@ -78,7 +86,7 @@
|
|||||||
|
|
||||||
static void *audio_decoder_loop (void *stream_gen) {
|
static void *audio_decoder_loop (void *stream_gen) {
|
||||||
|
|
||||||
@@ -340,6 +341,10 @@
|
@@ -339,6 +340,10 @@ static void *audio_decoder_loop (void *s
|
||||||
|
|
||||||
_x_stream_info_set(stream, XINE_STREAM_INFO_AUDIO_HANDLED,
|
_x_stream_info_set(stream, XINE_STREAM_INFO_AUDIO_HANDLED,
|
||||||
(stream->audio_decoder_plugin != NULL));
|
(stream->audio_decoder_plugin != NULL));
|
||||||
@ -89,9 +97,11 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (audio_type != stream->audio_type) {
|
if (audio_type != stream->audio_type) {
|
||||||
--- xine-lib-1.1.7.org/src/xine-engine/Makefile.am 2007-08-16 11:12:25.000000000 +0000
|
Index: xine-lib-1.1.11/src/xine-engine/Makefile.am
|
||||||
+++ xine-lib-1.1.7/src/xine-engine/Makefile.am 2007-08-16 11:12:21.000000000 +0000
|
===================================================================
|
||||||
@@ -19,7 +19,7 @@
|
--- xine-lib-1.1.11.orig/src/xine-engine/Makefile.am
|
||||||
|
+++ xine-lib-1.1.11/src/xine-engine/Makefile.am
|
||||||
|
@@ -19,7 +19,7 @@ libxine_la_SOURCES = xine.c metronom.c c
|
||||||
video_overlay.c osd.c scratch.c demux.c vo_scale.c \
|
video_overlay.c osd.c scratch.c demux.c vo_scale.c \
|
||||||
xine_interface.c post.c tvmode.c broadcaster.c io_helper.c \
|
xine_interface.c post.c tvmode.c broadcaster.c io_helper.c \
|
||||||
input_rip.c input_cache.c info_helper.c refcounter.c \
|
input_rip.c input_cache.c info_helper.c refcounter.c \
|
||||||
@ -100,7 +110,7 @@
|
|||||||
|
|
||||||
# FIXME: these are currently unused:
|
# FIXME: these are currently unused:
|
||||||
EXTRA_DIST = lrb.c lrb.h accel_xvmc.h
|
EXTRA_DIST = lrb.c lrb.h accel_xvmc.h
|
||||||
@@ -39,7 +39,8 @@
|
@@ -39,7 +39,8 @@ xineinclude_HEADERS = buffer.h metronom
|
||||||
audio_out.h resample.h video_out.h xine_internal.h spu_decoder.h \
|
audio_out.h resample.h video_out.h xine_internal.h spu_decoder.h \
|
||||||
video_overlay.h osd.h scratch.h xine_plugin.h xineintl.h \
|
video_overlay.h osd.h scratch.h xine_plugin.h xineintl.h \
|
||||||
plugin_catalog.h audio_decoder.h video_decoder.h post.h \
|
plugin_catalog.h audio_decoder.h video_decoder.h post.h \
|
||||||
@ -110,8 +120,10 @@
|
|||||||
|
|
||||||
noinst_HEADERS = bswap.h ffmpeg_bswap.h
|
noinst_HEADERS = bswap.h ffmpeg_bswap.h
|
||||||
|
|
||||||
--- /dev/null 2007-08-16 10:48:37.000000000 +0000
|
Index: xine-lib-1.1.11/src/xine-engine/install_plugins_helper.h
|
||||||
+++ xine-lib-1.1.7/src/xine-engine/install_plugins_helper.h 2007-08-16 11:12:21.000000000 +0000
|
===================================================================
|
||||||
|
--- /dev/null
|
||||||
|
+++ xine-lib-1.1.11/src/xine-engine/install_plugins_helper.h
|
||||||
@@ -0,0 +1,35 @@
|
@@ -0,0 +1,35 @@
|
||||||
+/*
|
+/*
|
||||||
+ * Copyright (C) 2007 Sascha Sommer
|
+ * Copyright (C) 2007 Sascha Sommer
|
||||||
@ -148,8 +160,10 @@
|
|||||||
+
|
+
|
||||||
+
|
+
|
||||||
+#endif
|
+#endif
|
||||||
--- /dev/null 2007-03-17 21:04:06.000000000 +0100
|
Index: xine-lib-1.1.11/src/xine-engine/install_plugins_helper.c
|
||||||
+++ xine-lib-1.1.7/src/xine-engine/install_plugins_helper.c 2007-08-18 14:11:15.000000000 +0200
|
===================================================================
|
||||||
|
--- /dev/null
|
||||||
|
+++ xine-lib-1.1.11/src/xine-engine/install_plugins_helper.c
|
||||||
@@ -0,0 +1,106 @@
|
@@ -0,0 +1,106 @@
|
||||||
+/*
|
+/*
|
||||||
+ * Copyright (C) 2007 Sascha Sommer
|
+ * Copyright (C) 2007 Sascha Sommer
|
||||||
|
562
xine-lib-CVE-2008-1482.diff
Normal file
562
xine-lib-CVE-2008-1482.diff
Normal file
@ -0,0 +1,562 @@
|
|||||||
|
# HG changeset patch
|
||||||
|
# User Darren Salt <linux@youmustbejoking.demon.co.uk>
|
||||||
|
# Date 1206237088 0
|
||||||
|
# Node ID a3f2772fd14b57e0557ef45797ff04c768657a7e
|
||||||
|
# Parent 65c1570fcf1dfcb8e5fc1d6b8ed8a296ab776e9d
|
||||||
|
Check for failure of various memory allocations. (SA29484)
|
||||||
|
Ref. http://aluigi.altervista.org/adv/xinehof-adv.txt
|
||||||
|
|
||||||
|
diff --git a/src/demuxers/demux_film.c b/src/demuxers/demux_film.c
|
||||||
|
--- a/src/demuxers/demux_film.c
|
||||||
|
+++ b/src/demuxers/demux_film.c
|
||||||
|
@@ -257,6 +257,8 @@ static int open_film_file(demux_film_t *
|
||||||
|
film->sample_count = _X_BE_32(&film_header[i + 12]);
|
||||||
|
film->sample_table =
|
||||||
|
xine_xmalloc(film->sample_count * sizeof(film_sample_t));
|
||||||
|
+ if (!film->sample_table)
|
||||||
|
+ goto film_abort;
|
||||||
|
for (j = 0; j < film->sample_count; j++) {
|
||||||
|
|
||||||
|
film->sample_table[j].sample_offset =
|
||||||
|
@@ -333,11 +335,14 @@ static int open_film_file(demux_film_t *
|
||||||
|
free(film->interleave_buffer);
|
||||||
|
film->interleave_buffer =
|
||||||
|
xine_xmalloc(film->sample_table[0].sample_size);
|
||||||
|
+ if (!film->interleave_buffer)
|
||||||
|
+ goto film_abort;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
xine_log(film->stream->xine, XINE_LOG_MSG, _("unrecognized FILM chunk\n"));
|
||||||
|
+ film_abort:
|
||||||
|
free (film->interleave_buffer);
|
||||||
|
free (film->sample_table);
|
||||||
|
free (film_header);
|
||||||
|
diff --git a/src/demuxers/demux_flv.c b/src/demuxers/demux_flv.c
|
||||||
|
--- a/src/demuxers/demux_flv.c
|
||||||
|
+++ b/src/demuxers/demux_flv.c
|
||||||
|
@@ -85,7 +85,7 @@ typedef struct {
|
||||||
|
off_t filesize;
|
||||||
|
|
||||||
|
flv_index_entry_t *index;
|
||||||
|
- int num_indices;
|
||||||
|
+ unsigned int num_indices;
|
||||||
|
|
||||||
|
unsigned int cur_pts;
|
||||||
|
|
||||||
|
@@ -209,7 +209,7 @@ static int parse_flv_var(demux_flv_t *th
|
||||||
|
unsigned char *end = buf + size;
|
||||||
|
char *str;
|
||||||
|
unsigned char type;
|
||||||
|
- int len, num;
|
||||||
|
+ unsigned int len, num;
|
||||||
|
|
||||||
|
if (size < 1)
|
||||||
|
return 0;
|
||||||
|
@@ -283,6 +283,8 @@ static int parse_flv_var(demux_flv_t *th
|
||||||
|
str = tmp + 2;
|
||||||
|
tmp += len + 2;
|
||||||
|
len = parse_flv_var(this, tmp, end-tmp, str, len);
|
||||||
|
+ if (!len)
|
||||||
|
+ return 0;
|
||||||
|
tmp += len;
|
||||||
|
}
|
||||||
|
if (*tmp++ != FLV_DATA_TYPE_ENDOBJECT)
|
||||||
|
@@ -298,6 +300,8 @@ static int parse_flv_var(demux_flv_t *th
|
||||||
|
str = tmp + 2;
|
||||||
|
tmp += len + 2;
|
||||||
|
len = parse_flv_var(this, tmp, end-tmp, str, len);
|
||||||
|
+ if (!len)
|
||||||
|
+ return 0;
|
||||||
|
tmp += len;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
@@ -310,6 +314,8 @@ static int parse_flv_var(demux_flv_t *th
|
||||||
|
if (this->index)
|
||||||
|
free(this->index);
|
||||||
|
this->index = xine_xmalloc(num*sizeof(flv_index_entry_t));
|
||||||
|
+ if (!this->index)
|
||||||
|
+ return 0;
|
||||||
|
this->num_indices = num;
|
||||||
|
}
|
||||||
|
for (num = 0; num < this->num_indices && tmp < end; num++) {
|
||||||
|
@@ -326,6 +332,8 @@ static int parse_flv_var(demux_flv_t *th
|
||||||
|
if (this->index)
|
||||||
|
free(this->index);
|
||||||
|
this->index = xine_xmalloc(num*sizeof(flv_index_entry_t));
|
||||||
|
+ if (!this->index)
|
||||||
|
+ return 0;
|
||||||
|
this->num_indices = num;
|
||||||
|
}
|
||||||
|
for (num = 0; num < this->num_indices && tmp < end; num++) {
|
||||||
|
@@ -339,6 +347,8 @@ static int parse_flv_var(demux_flv_t *th
|
||||||
|
}
|
||||||
|
while (num-- && tmp < end) {
|
||||||
|
len = parse_flv_var(this, tmp, end-tmp, NULL, 0);
|
||||||
|
+ if (!len)
|
||||||
|
+ return 0;
|
||||||
|
tmp += len;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
@@ -360,7 +370,7 @@ static void parse_flv_script(demux_flv_t
|
||||||
|
unsigned char *end = buf + size;
|
||||||
|
int len;
|
||||||
|
|
||||||
|
- if (this->input->read(this->input, buf, size ) != size) {
|
||||||
|
+ if (!buf || this->input->read(this->input, buf, size ) != size) {
|
||||||
|
this->status = DEMUX_FINISHED;
|
||||||
|
free(buf);
|
||||||
|
return;
|
||||||
|
diff --git a/src/demuxers/demux_qt.c b/src/demuxers/demux_qt.c
|
||||||
|
--- a/src/demuxers/demux_qt.c
|
||||||
|
+++ b/src/demuxers/demux_qt.c
|
||||||
|
@@ -739,38 +739,52 @@ static void parse_meta_atom(qt_info *inf
|
||||||
|
if (current_atom == ART_ATOM) {
|
||||||
|
string_size = _X_BE_32(&meta_atom[i + 4]) - 16 + 1;
|
||||||
|
info->artist = xine_xmalloc(string_size);
|
||||||
|
- strncpy(info->artist, &meta_atom[i + 20], string_size - 1);
|
||||||
|
- info->artist[string_size - 1] = 0;
|
||||||
|
+ if (info->artist) {
|
||||||
|
+ strncpy(info->artist, &meta_atom[i + 20], string_size - 1);
|
||||||
|
+ info->artist[string_size - 1] = 0;
|
||||||
|
+ }
|
||||||
|
} else if (current_atom == NAM_ATOM) {
|
||||||
|
string_size = _X_BE_32(&meta_atom[i + 4]) - 16 + 1;
|
||||||
|
info->name = xine_xmalloc(string_size);
|
||||||
|
- strncpy(info->name, &meta_atom[i + 20], string_size - 1);
|
||||||
|
- info->name[string_size - 1] = 0;
|
||||||
|
+ if (info->name) {
|
||||||
|
+ strncpy(info->name, &meta_atom[i + 20], string_size - 1);
|
||||||
|
+ info->name[string_size - 1] = 0;
|
||||||
|
+ }
|
||||||
|
} else if (current_atom == ALB_ATOM) {
|
||||||
|
string_size = _X_BE_32(&meta_atom[i + 4]) - 16 + 1;
|
||||||
|
info->album = xine_xmalloc(string_size);
|
||||||
|
- strncpy(info->album, &meta_atom[i + 20], string_size - 1);
|
||||||
|
- info->album[string_size - 1] = 0;
|
||||||
|
+ if (info->album) {
|
||||||
|
+ strncpy(info->album, &meta_atom[i + 20], string_size - 1);
|
||||||
|
+ info->album[string_size - 1] = 0;
|
||||||
|
+ }
|
||||||
|
} else if (current_atom == GEN_ATOM) {
|
||||||
|
string_size = _X_BE_32(&meta_atom[i + 4]) - 16 + 1;
|
||||||
|
info->genre = xine_xmalloc(string_size);
|
||||||
|
- strncpy(info->genre, &meta_atom[i + 20], string_size - 1);
|
||||||
|
- info->genre[string_size - 1] = 0;
|
||||||
|
+ if (info->genre) {
|
||||||
|
+ strncpy(info->genre, &meta_atom[i + 20], string_size - 1);
|
||||||
|
+ info->genre[string_size - 1] = 0;
|
||||||
|
+ }
|
||||||
|
} else if (current_atom == TOO_ATOM) {
|
||||||
|
string_size = _X_BE_32(&meta_atom[i + 4]) - 16 + 1;
|
||||||
|
info->comment = xine_xmalloc(string_size);
|
||||||
|
- strncpy(info->comment, &meta_atom[i + 20], string_size - 1);
|
||||||
|
- info->comment[string_size - 1] = 0;
|
||||||
|
+ if (info->comment) {
|
||||||
|
+ strncpy(info->comment, &meta_atom[i + 20], string_size - 1);
|
||||||
|
+ info->comment[string_size - 1] = 0;
|
||||||
|
+ }
|
||||||
|
} else if (current_atom == WRT_ATOM) {
|
||||||
|
string_size = _X_BE_32(&meta_atom[i + 4]) - 16 + 1;
|
||||||
|
info->composer = xine_xmalloc(string_size);
|
||||||
|
- strncpy(info->composer, &meta_atom[i + 20], string_size - 1);
|
||||||
|
- info->composer[string_size - 1] = 0;
|
||||||
|
+ if (info->composer) {
|
||||||
|
+ strncpy(info->composer, &meta_atom[i + 20], string_size - 1);
|
||||||
|
+ info->composer[string_size - 1] = 0;
|
||||||
|
+ }
|
||||||
|
} else if (current_atom == DAY_ATOM) {
|
||||||
|
string_size = _X_BE_32(&meta_atom[i + 4]) - 16 + 1;
|
||||||
|
info->year = xine_xmalloc(string_size);
|
||||||
|
- strncpy(info->year, &meta_atom[i + 20], string_size - 1);
|
||||||
|
- info->year[string_size - 1] = 0;
|
||||||
|
+ if (info->year) {
|
||||||
|
+ strncpy(info->year, &meta_atom[i + 20], string_size - 1);
|
||||||
|
+ info->year[string_size - 1] = 0;
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -1549,32 +1563,29 @@ static qt_error parse_reference_atom (re
|
||||||
|
current_atom = _X_BE_32(&ref_atom[i]);
|
||||||
|
|
||||||
|
if (current_atom == RDRF_ATOM) {
|
||||||
|
+ size_t string_size = _X_BE_32(&ref_atom[i + 12]);
|
||||||
|
+ size_t url_offset = 0;
|
||||||
|
+
|
||||||
|
+ if (string_size >= current_atom_size || i + string_size >= ref_atom_size)
|
||||||
|
+ return QT_NOT_A_VALID_FILE;
|
||||||
|
|
||||||
|
/* if the URL starts with "http://", copy it */
|
||||||
|
- if (strncmp(&ref_atom[i + 16], "http://", 7) == 0
|
||||||
|
- || strncmp(&ref_atom[i + 16], "rtsp://", 7) == 0) {
|
||||||
|
-
|
||||||
|
- /* URL is spec'd to terminate with a NULL; don't trust it */
|
||||||
|
- ref->url = xine_xmalloc(_X_BE_32(&ref_atom[i + 12]) + 1);
|
||||||
|
- strncpy(ref->url, &ref_atom[i + 16], _X_BE_32(&ref_atom[i + 12]));
|
||||||
|
- ref->url[_X_BE_32(&ref_atom[i + 12]) - 1] = '\0';
|
||||||
|
-
|
||||||
|
- } else {
|
||||||
|
-
|
||||||
|
- int string_size;
|
||||||
|
-
|
||||||
|
- if (base_mrl)
|
||||||
|
- string_size = strlen(base_mrl) + _X_BE_32(&ref_atom[i + 12]) + 1;
|
||||||
|
- else
|
||||||
|
- string_size = _X_BE_32(&ref_atom[i + 12]) + 1;
|
||||||
|
-
|
||||||
|
- /* otherwise, append relative URL to base MRL */
|
||||||
|
- ref->url = xine_xmalloc(string_size);
|
||||||
|
- if (base_mrl)
|
||||||
|
- strcpy(ref->url, base_mrl);
|
||||||
|
- strncat(ref->url, &ref_atom[i + 16], _X_BE_32(&ref_atom[i + 12]));
|
||||||
|
- ref->url[string_size - 1] = '\0';
|
||||||
|
- }
|
||||||
|
+ if ( memcmp(&ref_atom[i + 16], "http://", 7) &&
|
||||||
|
+ memcmp(&ref_atom[i + 16], "rtsp://", 7) &&
|
||||||
|
+ base_mrl )
|
||||||
|
+ url_offset = strlen(base_mrl);
|
||||||
|
+
|
||||||
|
+ /* otherwise, append relative URL to base MRL */
|
||||||
|
+ string_size += url_offset;
|
||||||
|
+
|
||||||
|
+ ref->url = xine_xmalloc(string_size + 1);
|
||||||
|
+
|
||||||
|
+ if ( url_offset )
|
||||||
|
+ strcpy(ref->url, base_mrl);
|
||||||
|
+
|
||||||
|
+ memcpy(ref->url + url_offset, &ref_atom[i + 16], _X_BE_32(&ref_atom[i + 12]));
|
||||||
|
+
|
||||||
|
+ ref->url[string_size] = '\0';
|
||||||
|
|
||||||
|
debug_atom_load(" qt rdrf URL reference:\n %s\n", ref->url);
|
||||||
|
|
||||||
|
@@ -1993,8 +2004,12 @@ static void parse_moov_atom(qt_info *inf
|
||||||
|
info->references = (reference_t *)realloc(info->references,
|
||||||
|
info->reference_count * sizeof(reference_t));
|
||||||
|
|
||||||
|
- parse_reference_atom(&info->references[info->reference_count - 1],
|
||||||
|
- &moov_atom[i - 4], info->base_mrl);
|
||||||
|
+ error = parse_reference_atom(&info->references[info->reference_count - 1],
|
||||||
|
+ &moov_atom[i - 4], info->base_mrl);
|
||||||
|
+ if (error != QT_OK) {
|
||||||
|
+ info->last_error = error;
|
||||||
|
+ return;
|
||||||
|
+ }
|
||||||
|
|
||||||
|
} else {
|
||||||
|
debug_atom_load(" qt: unknown atom into the moov atom (0x%08X)\n", current_atom);
|
||||||
|
diff --git a/src/demuxers/demux_real.c b/src/demuxers/demux_real.c
|
||||||
|
--- a/src/demuxers/demux_real.c
|
||||||
|
+++ b/src/demuxers/demux_real.c
|
||||||
|
@@ -175,7 +175,8 @@ static void real_parse_index(demux_real_
|
||||||
|
off_t original_pos = this->input->get_current_pos(this->input);
|
||||||
|
unsigned char index_chunk_header[INDEX_CHUNK_HEADER_SIZE];
|
||||||
|
unsigned char index_record[INDEX_RECORD_SIZE];
|
||||||
|
- int i, entries, stream_num;
|
||||||
|
+ int i;
|
||||||
|
+ unsigned int entries, stream_num;
|
||||||
|
real_index_entry_t **index;
|
||||||
|
|
||||||
|
while(next_index_chunk) {
|
||||||
|
@@ -230,10 +231,11 @@ static void real_parse_index(demux_real_
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
- if(index && entries) {
|
||||||
|
+ if(index && entries)
|
||||||
|
/* Allocate memory for index */
|
||||||
|
*index = xine_xmalloc(entries * sizeof(real_index_entry_t));
|
||||||
|
|
||||||
|
+ if(index && entries && *index) {
|
||||||
|
/* Read index */
|
||||||
|
for(i = 0; i < entries; i++) {
|
||||||
|
if(this->input->read(this->input, index_record, INDEX_RECORD_SIZE)
|
||||||
|
diff --git a/src/demuxers/demux_wc3movie.c b/src/demuxers/demux_wc3movie.c
|
||||||
|
--- a/src/demuxers/demux_wc3movie.c
|
||||||
|
+++ b/src/demuxers/demux_wc3movie.c
|
||||||
|
@@ -389,6 +389,12 @@ static int open_mve_file(demux_mve_t *th
|
||||||
|
/* load the palette chunks */
|
||||||
|
this->palettes = xine_xmalloc(this->number_of_shots * PALETTE_SIZE *
|
||||||
|
sizeof(palette_entry_t));
|
||||||
|
+
|
||||||
|
+ if (!this->shot_offsets || !this->palettes) {
|
||||||
|
+ free (this->shot_offsets);
|
||||||
|
+ return 0;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
for (i = 0; i < this->number_of_shots; i++) {
|
||||||
|
/* make sure there was a valid palette chunk preamble */
|
||||||
|
if (this->input->read(this->input, preamble, PREAMBLE_SIZE) !=
|
||||||
|
@@ -460,8 +466,9 @@ static int open_mve_file(demux_mve_t *th
|
||||||
|
|
||||||
|
case BNAM_TAG:
|
||||||
|
/* load the name into the stream attributes */
|
||||||
|
- title = realloc (title, chunk_size);
|
||||||
|
- if (this->input->read(this->input, title, chunk_size) != chunk_size) {
|
||||||
|
+ free (title);
|
||||||
|
+ title = malloc (chunk_size);
|
||||||
|
+ if (!title || this->input->read(this->input, title, chunk_size) != chunk_size) {
|
||||||
|
free (title);
|
||||||
|
free (this->palettes);
|
||||||
|
free (this->shot_offsets);
|
||||||
|
diff --git a/src/demuxers/ebml.c b/src/demuxers/ebml.c
|
||||||
|
--- a/src/demuxers/ebml.c
|
||||||
|
+++ b/src/demuxers/ebml.c
|
||||||
|
@@ -424,10 +424,15 @@ int ebml_check_header(ebml_parser_t *ebm
|
||||||
|
|
||||||
|
case EBML_ID_DOCTYPE: {
|
||||||
|
char *text = malloc(elem.len + 1);
|
||||||
|
+ if (!text)
|
||||||
|
+ return 0;
|
||||||
|
|
||||||
|
text[elem.len] = '\0';
|
||||||
|
if (!ebml_read_ascii (ebml, &elem, text))
|
||||||
|
- return 0;
|
||||||
|
+ {
|
||||||
|
+ free (text);
|
||||||
|
+ return 0;
|
||||||
|
+ }
|
||||||
|
|
||||||
|
lprintf("doctype: %s\n", text);
|
||||||
|
if (ebml->doctype)
|
||||||
|
# HG changeset patch
|
||||||
|
# User Darren Salt <linux@youmustbejoking.demon.co.uk>
|
||||||
|
# Date 1206287553 0
|
||||||
|
# Node ID 6f9e9feb84e595be0482395722bc784764713fb3
|
||||||
|
# Parent a3f2772fd14b57e0557ef45797ff04c768657a7e
|
||||||
|
Replace various malloc(x*sizeof(y)) with calloc(x,sizeof(y)).
|
||||||
|
|
||||||
|
diff --git a/src/demuxers/demux_film.c b/src/demuxers/demux_film.c
|
||||||
|
--- a/src/demuxers/demux_film.c
|
||||||
|
+++ b/src/demuxers/demux_film.c
|
||||||
|
@@ -256,7 +256,7 @@ static int open_film_file(demux_film_t *
|
||||||
|
film->frequency = _X_BE_32(&film_header[i + 8]);
|
||||||
|
film->sample_count = _X_BE_32(&film_header[i + 12]);
|
||||||
|
film->sample_table =
|
||||||
|
- xine_xmalloc(film->sample_count * sizeof(film_sample_t));
|
||||||
|
+ calloc(film->sample_count, sizeof(film_sample_t));
|
||||||
|
if (!film->sample_table)
|
||||||
|
goto film_abort;
|
||||||
|
for (j = 0; j < film->sample_count; j++) {
|
||||||
|
diff --git a/src/demuxers/demux_flac.c b/src/demuxers/demux_flac.c
|
||||||
|
--- a/src/demuxers/demux_flac.c
|
||||||
|
+++ b/src/demuxers/demux_flac.c
|
||||||
|
@@ -164,7 +164,7 @@ static int open_flac_file(demux_flac_t *
|
||||||
|
case 3:
|
||||||
|
lprintf ("SEEKTABLE metadata, %d bytes\n", block_length);
|
||||||
|
flac->seekpoint_count = block_length / FLAC_SEEKPOINT_SIZE;
|
||||||
|
- flac->seekpoints = xine_xmalloc(flac->seekpoint_count *
|
||||||
|
+ flac->seekpoints = calloc(flac->seekpoint_count,
|
||||||
|
sizeof(flac_seekpoint_t));
|
||||||
|
for (i = 0; i < flac->seekpoint_count; i++) {
|
||||||
|
if (flac->input->read(flac->input, buffer, FLAC_SEEKPOINT_SIZE) != FLAC_SEEKPOINT_SIZE)
|
||||||
|
diff --git a/src/demuxers/demux_flv.c b/src/demuxers/demux_flv.c
|
||||||
|
--- a/src/demuxers/demux_flv.c
|
||||||
|
+++ b/src/demuxers/demux_flv.c
|
||||||
|
@@ -313,7 +313,7 @@ static int parse_flv_var(demux_flv_t *th
|
||||||
|
if (!this->index || this->num_indices != num) {
|
||||||
|
if (this->index)
|
||||||
|
free(this->index);
|
||||||
|
- this->index = xine_xmalloc(num*sizeof(flv_index_entry_t));
|
||||||
|
+ this->index = calloc(num, sizeof(flv_index_entry_t));
|
||||||
|
if (!this->index)
|
||||||
|
return 0;
|
||||||
|
this->num_indices = num;
|
||||||
|
@@ -331,7 +331,7 @@ static int parse_flv_var(demux_flv_t *th
|
||||||
|
if (!this->index || this->num_indices != num) {
|
||||||
|
if (this->index)
|
||||||
|
free(this->index);
|
||||||
|
- this->index = xine_xmalloc(num*sizeof(flv_index_entry_t));
|
||||||
|
+ this->index = calloc(num, sizeof(flv_index_entry_t));
|
||||||
|
if (!this->index)
|
||||||
|
return 0;
|
||||||
|
this->num_indices = num;
|
||||||
|
diff --git a/src/demuxers/demux_mpgaudio.c b/src/demuxers/demux_mpgaudio.c
|
||||||
|
--- a/src/demuxers/demux_mpgaudio.c
|
||||||
|
+++ b/src/demuxers/demux_mpgaudio.c
|
||||||
|
@@ -460,7 +460,7 @@ static vbri_header_t* parse_vbri_header(
|
||||||
|
lprintf("entry_frames: %d\n", vbri->entry_frames);
|
||||||
|
|
||||||
|
if ((ptr + (vbri->toc_entries + 1) * vbri->entry_size) >= (buf + bufsize)) return 0;
|
||||||
|
- vbri->toc = xine_xmalloc (sizeof(int) * (vbri->toc_entries + 1));
|
||||||
|
+ vbri->toc = calloc (vbri->toc_entries + 1, sizeof (int));
|
||||||
|
if (!vbri->toc) {
|
||||||
|
free (vbri);
|
||||||
|
return NULL;
|
||||||
|
diff --git a/src/demuxers/demux_qt.c b/src/demuxers/demux_qt.c
|
||||||
|
--- a/src/demuxers/demux_qt.c
|
||||||
|
+++ b/src/demuxers/demux_qt.c
|
||||||
|
@@ -911,8 +911,8 @@ static qt_error parse_trak_atom (qt_trak
|
||||||
|
debug_atom_load(" qt elst atom (edit list atom): %d entries\n",
|
||||||
|
trak->edit_list_count);
|
||||||
|
|
||||||
|
- trak->edit_list_table = (edit_list_table_t *)xine_xmalloc(
|
||||||
|
- trak->edit_list_count * sizeof(edit_list_table_t));
|
||||||
|
+ trak->edit_list_table = (edit_list_table_t *)calloc(
|
||||||
|
+ trak->edit_list_count, sizeof(edit_list_table_t));
|
||||||
|
if (!trak->edit_list_table) {
|
||||||
|
last_error = QT_NO_MEMORY;
|
||||||
|
goto free_trak;
|
||||||
|
@@ -947,7 +947,7 @@ static qt_error parse_trak_atom (qt_trak
|
||||||
|
|
||||||
|
/* allocate space for each of the properties unions */
|
||||||
|
trak->stsd_atoms_count = _X_BE_32(&trak_atom[i + 8]);
|
||||||
|
- trak->stsd_atoms = xine_xmalloc(trak->stsd_atoms_count * sizeof(properties_t));
|
||||||
|
+ trak->stsd_atoms = calloc(trak->stsd_atoms_count, sizeof(properties_t));
|
||||||
|
if (!trak->stsd_atoms) {
|
||||||
|
last_error = QT_NO_MEMORY;
|
||||||
|
goto free_trak;
|
||||||
|
@@ -1345,8 +1345,8 @@ static qt_error parse_trak_atom (qt_trak
|
||||||
|
|
||||||
|
/* allocate space and load table only if sample size is 0 */
|
||||||
|
if (trak->sample_size == 0) {
|
||||||
|
- trak->sample_size_table = (unsigned int *)malloc(
|
||||||
|
- trak->sample_size_count * sizeof(unsigned int));
|
||||||
|
+ trak->sample_size_table = (unsigned int *)calloc(
|
||||||
|
+ trak->sample_size_count, sizeof(unsigned int));
|
||||||
|
if (!trak->sample_size_table) {
|
||||||
|
last_error = QT_NO_MEMORY;
|
||||||
|
goto free_trak;
|
||||||
|
@@ -1376,8 +1376,8 @@ static qt_error parse_trak_atom (qt_trak
|
||||||
|
debug_atom_load(" qt stss atom (sample sync atom): %d sync samples\n",
|
||||||
|
trak->sync_sample_count);
|
||||||
|
|
||||||
|
- trak->sync_sample_table = (unsigned int *)malloc(
|
||||||
|
- trak->sync_sample_count * sizeof(unsigned int));
|
||||||
|
+ trak->sync_sample_table = (unsigned int *)calloc(
|
||||||
|
+ trak->sync_sample_count, sizeof(unsigned int));
|
||||||
|
if (!trak->sync_sample_table) {
|
||||||
|
last_error = QT_NO_MEMORY;
|
||||||
|
goto free_trak;
|
||||||
|
@@ -1405,8 +1405,8 @@ static qt_error parse_trak_atom (qt_trak
|
||||||
|
debug_atom_load(" qt stco atom (32-bit chunk offset atom): %d chunk offsets\n",
|
||||||
|
trak->chunk_offset_count);
|
||||||
|
|
||||||
|
- trak->chunk_offset_table = (int64_t *)malloc(
|
||||||
|
- trak->chunk_offset_count * sizeof(int64_t));
|
||||||
|
+ trak->chunk_offset_table = (int64_t *)calloc(
|
||||||
|
+ trak->chunk_offset_count, sizeof(int64_t));
|
||||||
|
if (!trak->chunk_offset_table) {
|
||||||
|
last_error = QT_NO_MEMORY;
|
||||||
|
goto free_trak;
|
||||||
|
@@ -1433,8 +1433,8 @@ static qt_error parse_trak_atom (qt_trak
|
||||||
|
debug_atom_load(" qt co64 atom (64-bit chunk offset atom): %d chunk offsets\n",
|
||||||
|
trak->chunk_offset_count);
|
||||||
|
|
||||||
|
- trak->chunk_offset_table = (int64_t *)malloc(
|
||||||
|
- trak->chunk_offset_count * sizeof(int64_t));
|
||||||
|
+ trak->chunk_offset_table = (int64_t *)calloc(
|
||||||
|
+ trak->chunk_offset_count, sizeof(int64_t));
|
||||||
|
if (!trak->chunk_offset_table) {
|
||||||
|
last_error = QT_NO_MEMORY;
|
||||||
|
goto free_trak;
|
||||||
|
@@ -1464,8 +1464,8 @@ static qt_error parse_trak_atom (qt_trak
|
||||||
|
debug_atom_load(" qt stsc atom (sample-to-chunk atom): %d entries\n",
|
||||||
|
trak->sample_to_chunk_count);
|
||||||
|
|
||||||
|
- trak->sample_to_chunk_table = (sample_to_chunk_table_t *)malloc(
|
||||||
|
- trak->sample_to_chunk_count * sizeof(sample_to_chunk_table_t));
|
||||||
|
+ trak->sample_to_chunk_table = (sample_to_chunk_table_t *)calloc(
|
||||||
|
+ trak->sample_to_chunk_count, sizeof(sample_to_chunk_table_t));
|
||||||
|
if (!trak->sample_to_chunk_table) {
|
||||||
|
last_error = QT_NO_MEMORY;
|
||||||
|
goto free_trak;
|
||||||
|
@@ -1499,8 +1499,8 @@ 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);
|
||||||
|
|
||||||
|
- trak->time_to_sample_table = (time_to_sample_table_t *)malloc(
|
||||||
|
- (trak->time_to_sample_count+1) * sizeof(time_to_sample_table_t));
|
||||||
|
+ 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) {
|
||||||
|
last_error = QT_NO_MEMORY;
|
||||||
|
goto free_trak;
|
||||||
|
@@ -1697,8 +1697,7 @@ static qt_error build_frame_table(qt_tra
|
||||||
|
/* in this case, the total number of frames is equal to the number of
|
||||||
|
* entries in the sample size table */
|
||||||
|
trak->frame_count = trak->sample_size_count;
|
||||||
|
- trak->frames = (qt_frame *)malloc(
|
||||||
|
- trak->frame_count * sizeof(qt_frame));
|
||||||
|
+ trak->frames = (qt_frame *)calloc(trak->frame_count, sizeof(qt_frame));
|
||||||
|
if (!trak->frames)
|
||||||
|
return QT_NO_MEMORY;
|
||||||
|
trak->current_frame = 0;
|
||||||
|
@@ -1710,7 +1709,7 @@ static qt_error build_frame_table(qt_tra
|
||||||
|
pts_index_countdown =
|
||||||
|
trak->time_to_sample_table[pts_index].count;
|
||||||
|
|
||||||
|
- media_id_counts = xine_xmalloc(trak->stsd_atoms_count * sizeof(int));
|
||||||
|
+ media_id_counts = calloc(trak->stsd_atoms_count, sizeof(int));
|
||||||
|
if (!media_id_counts)
|
||||||
|
return QT_NO_MEMORY;
|
||||||
|
memset(media_id_counts, 0, trak->stsd_atoms_count * sizeof(int));
|
||||||
|
@@ -1848,8 +1847,7 @@ static qt_error build_frame_table(qt_tra
|
||||||
|
/* in this case, the total number of frames is equal to the number of
|
||||||
|
* chunks */
|
||||||
|
trak->frame_count = trak->chunk_offset_count;
|
||||||
|
- trak->frames = (qt_frame *)malloc(
|
||||||
|
- trak->frame_count * sizeof(qt_frame));
|
||||||
|
+ trak->frames = (qt_frame *)calloc(trak->frame_count, sizeof(qt_frame));
|
||||||
|
if (!trak->frames)
|
||||||
|
return QT_NO_MEMORY;
|
||||||
|
|
||||||
|
diff --git a/src/demuxers/demux_real.c b/src/demuxers/demux_real.c
|
||||||
|
--- a/src/demuxers/demux_real.c
|
||||||
|
+++ b/src/demuxers/demux_real.c
|
||||||
|
@@ -233,7 +233,7 @@ static void real_parse_index(demux_real_
|
||||||
|
|
||||||
|
if(index && entries)
|
||||||
|
/* Allocate memory for index */
|
||||||
|
- *index = xine_xmalloc(entries * sizeof(real_index_entry_t));
|
||||||
|
+ *index = calloc(entries, sizeof(real_index_entry_t));
|
||||||
|
|
||||||
|
if(index && entries && *index) {
|
||||||
|
/* Read index */
|
||||||
|
diff --git a/src/demuxers/demux_tta.c b/src/demuxers/demux_tta.c
|
||||||
|
--- a/src/demuxers/demux_tta.c
|
||||||
|
+++ b/src/demuxers/demux_tta.c
|
||||||
|
@@ -87,7 +87,7 @@ static int open_tta_file(demux_tta_t *th
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
- this->seektable = xine_xmalloc(sizeof(uint32_t)*this->totalframes);
|
||||||
|
+ this->seektable = calloc(this->totalframes, sizeof(uint32_t));
|
||||||
|
this->input->read(this->input, this->seektable, sizeof(uint32_t)*this->totalframes);
|
||||||
|
|
||||||
|
/* Skip the CRC32 */
|
||||||
|
diff --git a/src/demuxers/demux_vmd.c b/src/demuxers/demux_vmd.c
|
||||||
|
--- a/src/demuxers/demux_vmd.c
|
||||||
|
+++ b/src/demuxers/demux_vmd.c
|
||||||
|
@@ -168,7 +168,7 @@ static int open_vmd_file(demux_vmd_t *th
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
- this->frame_table = xine_xmalloc(this->frame_count * sizeof(vmd_frame_t));
|
||||||
|
+ this->frame_table = calloc(this->frame_count, sizeof(vmd_frame_t));
|
||||||
|
|
||||||
|
current_offset = this->data_start = _X_LE_32(&vmd_header[20]);
|
||||||
|
this->data_size = toc_offset - this->data_start;
|
||||||
|
diff --git a/src/demuxers/demux_wc3movie.c b/src/demuxers/demux_wc3movie.c
|
||||||
|
--- a/src/demuxers/demux_wc3movie.c
|
||||||
|
+++ b/src/demuxers/demux_wc3movie.c
|
||||||
|
@@ -378,7 +378,7 @@ static int open_mve_file(demux_mve_t *th
|
||||||
|
this->number_of_shots = _X_LE_32(&preamble[0]);
|
||||||
|
|
||||||
|
/* allocate space for the shot offset index and set offsets to 0 */
|
||||||
|
- this->shot_offsets = xine_xmalloc(this->number_of_shots * sizeof(off_t));
|
||||||
|
+ this->shot_offsets = calloc(this->number_of_shots, sizeof(off_t));
|
||||||
|
this->current_shot = 0;
|
||||||
|
for (i = 0; i < this->number_of_shots; i++)
|
||||||
|
this->shot_offsets[i] = 0;
|
||||||
|
@@ -387,7 +387,7 @@ static int open_mve_file(demux_mve_t *th
|
||||||
|
this->input->seek(this->input, 12, SEEK_CUR);
|
||||||
|
|
||||||
|
/* load the palette chunks */
|
||||||
|
- this->palettes = xine_xmalloc(this->number_of_shots * PALETTE_SIZE *
|
||||||
|
+ this->palettes = calloc(this->number_of_shots, PALETTE_SIZE *
|
||||||
|
sizeof(palette_entry_t));
|
||||||
|
|
||||||
|
if (!this->shot_offsets || !this->palettes) {
|
@ -1,6 +1,8 @@
|
|||||||
--- xine-lib-1.1.8/src/audio_out/audio_alsa_out.c
|
Index: xine-lib-1.1.11/src/audio_out/audio_alsa_out.c
|
||||||
+++ xine-lib-1.1.8/src/audio_out/audio_alsa_out.c
|
===================================================================
|
||||||
@@ -44,6 +44,7 @@
|
--- xine-lib-1.1.11.orig/src/audio_out/audio_alsa_out.c
|
||||||
|
+++ xine-lib-1.1.11/src/audio_out/audio_alsa_out.c
|
||||||
|
@@ -41,6 +41,7 @@
|
||||||
#ifdef HAVE_ALLOCA_H
|
#ifdef HAVE_ALLOCA_H
|
||||||
#include <alloca.h>
|
#include <alloca.h>
|
||||||
#endif
|
#endif
|
||||||
|
@ -1,7 +1,8 @@
|
|||||||
diff -urp ../xine-lib-1.1.2.orig/src/input/input_dvd.c ./src/input/input_dvd.c
|
Index: src/input/input_dvd.c
|
||||||
--- ../xine-lib-1.1.2.orig/src/input/input_dvd.c 2006-07-09 16:37:35.000000000 +0200
|
===================================================================
|
||||||
+++ ./src/input/input_dvd.c 2006-10-11 14:19:43.000000000 +0200
|
--- src/input/input_dvd.c.orig
|
||||||
@@ -1391,7 +1391,12 @@ check_solaris_vold_device(dvd_input_clas
|
+++ src/input/input_dvd.c
|
||||||
|
@@ -1385,7 +1385,12 @@ check_solaris_vold_device(dvd_input_clas
|
||||||
|
|
||||||
static int dvd_parse_try_open(dvd_input_plugin_t *this, const char *locator)
|
static int dvd_parse_try_open(dvd_input_plugin_t *this, const char *locator)
|
||||||
{
|
{
|
||||||
@ -15,7 +16,7 @@ diff -urp ../xine-lib-1.1.2.orig/src/input/input_dvd.c ./src/input/input_dvd.c
|
|||||||
|
|
||||||
/* FIXME: we temporarily special-case "dvd:/" for compatibility;
|
/* FIXME: we temporarily special-case "dvd:/" for compatibility;
|
||||||
* actually "dvd:/" should play a DVD image stored in /, but for
|
* actually "dvd:/" should play a DVD image stored in /, but for
|
||||||
@@ -1407,7 +1412,6 @@ static int dvd_parse_try_open(dvd_input_
|
@@ -1401,7 +1406,6 @@ static int dvd_parse_try_open(dvd_input_
|
||||||
xine_setenv("DVDCSS_RAW_DEVICE", "", 1);
|
xine_setenv("DVDCSS_RAW_DEVICE", "", 1);
|
||||||
} else {
|
} else {
|
||||||
/* use default DVD device */
|
/* use default DVD device */
|
||||||
@ -23,7 +24,7 @@ diff -urp ../xine-lib-1.1.2.orig/src/input/input_dvd.c ./src/input/input_dvd.c
|
|||||||
xine_cfg_entry_t raw_device;
|
xine_cfg_entry_t raw_device;
|
||||||
if (xine_config_lookup_entry(this->stream->xine,
|
if (xine_config_lookup_entry(this->stream->xine,
|
||||||
"media.dvd.raw_device", &raw_device))
|
"media.dvd.raw_device", &raw_device))
|
||||||
@@ -1415,6 +1419,23 @@ static int dvd_parse_try_open(dvd_input_
|
@@ -1409,6 +1413,23 @@ static int dvd_parse_try_open(dvd_input_
|
||||||
intended_dvd_device = class->dvd_device;
|
intended_dvd_device = class->dvd_device;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -47,7 +48,7 @@ diff -urp ../xine-lib-1.1.2.orig/src/input/input_dvd.c ./src/input/input_dvd.c
|
|||||||
/* attempt to open DVD */
|
/* attempt to open DVD */
|
||||||
if (this->opened) {
|
if (this->opened) {
|
||||||
if (intended_dvd_device == this->current_dvd_device) {
|
if (intended_dvd_device == this->current_dvd_device) {
|
||||||
@@ -1477,8 +1498,11 @@ static int dvd_parse_mrl(dvd_input_plugi
|
@@ -1471,8 +1492,11 @@ static int dvd_parse_mrl(dvd_input_plugi
|
||||||
}
|
}
|
||||||
|
|
||||||
static int dvd_plugin_open (input_plugin_t *this_gen) {
|
static int dvd_plugin_open (input_plugin_t *this_gen) {
|
||||||
@ -58,9 +59,9 @@ diff -urp ../xine-lib-1.1.2.orig/src/input/input_dvd.c ./src/input/input_dvd.c
|
|||||||
+ plugin_node_t *node;
|
+ plugin_node_t *node;
|
||||||
+ int i;
|
+ int i;
|
||||||
|
|
||||||
char *locator;
|
char *locator, *locator_orig;
|
||||||
char *title_part;
|
char *title_part;
|
||||||
@@ -1487,6 +1511,23 @@ static int dvd_plugin_open (input_plugin
|
@@ -1481,6 +1505,23 @@ static int dvd_plugin_open (input_plugin
|
||||||
|
|
||||||
trace_print("Called\n");
|
trace_print("Called\n");
|
||||||
|
|
||||||
@ -82,5 +83,5 @@ diff -urp ../xine-lib-1.1.2.orig/src/input/input_dvd.c ./src/input/input_dvd.c
|
|||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
/* we already checked the "dvd:/" MRL before */
|
/* we already checked the "dvd:/" MRL before */
|
||||||
locator = this->mrl + (sizeof("dvd:") - 1);
|
locator_orig = locator = strdup (this->mrl + (sizeof("dvd:") - 1));
|
||||||
|
|
||||||
|
@ -1,7 +1,8 @@
|
|||||||
diff -urp ../xine-lib-1.1.4.orig/src/xine-engine/load_plugins.c ./src/xine-engine/load_plugins.c
|
Index: src/xine-engine/load_plugins.c
|
||||||
--- ../xine-lib-1.1.4.orig/src/xine-engine/load_plugins.c 2007-01-19 00:30:18.000000000 +0100
|
===================================================================
|
||||||
+++ ./src/xine-engine/load_plugins.c 2007-01-30 19:04:56.000000000 +0100
|
--- src/xine-engine/load_plugins.c.orig
|
||||||
@@ -2366,9 +2366,19 @@ char *xine_get_file_extensions (xine_t *
|
+++ src/xine-engine/load_plugins.c
|
||||||
|
@@ -2401,9 +2401,19 @@ char *xine_get_file_extensions (xine_t *
|
||||||
plugin_node_t *node;
|
plugin_node_t *node;
|
||||||
char *str;
|
char *str;
|
||||||
int list_id, list_size;
|
int list_id, list_size;
|
||||||
@ -21,7 +22,7 @@ diff -urp ../xine-lib-1.1.4.orig/src/xine-engine/load_plugins.c ./src/xine-engin
|
|||||||
/* calc length of output */
|
/* calc length of output */
|
||||||
|
|
||||||
len = 0;
|
len = 0;
|
||||||
@@ -2382,7 +2392,8 @@ char *xine_get_file_extensions (xine_t *
|
@@ -2417,7 +2427,8 @@ char *xine_get_file_extensions (xine_t *
|
||||||
|
|
||||||
cls = (demux_class_t *)node->plugin_class;
|
cls = (demux_class_t *)node->plugin_class;
|
||||||
|
|
||||||
@ -31,7 +32,7 @@ diff -urp ../xine-lib-1.1.4.orig/src/xine-engine/load_plugins.c ./src/xine-engin
|
|||||||
len += strlen(exts) + 1;
|
len += strlen(exts) + 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2402,7 +2413,8 @@ char *xine_get_file_extensions (xine_t *
|
@@ -2437,7 +2448,8 @@ char *xine_get_file_extensions (xine_t *
|
||||||
|
|
||||||
cls = (demux_class_t *)node->plugin_class;
|
cls = (demux_class_t *)node->plugin_class;
|
||||||
|
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
diff -urp ../xine-lib-1.1.2-orig/doc/README_xxmc.html ./doc/README_xxmc.html
|
Index: doc/README_xxmc.html
|
||||||
--- ../xine-lib-1.1.2-orig/doc/README_xxmc.html 2006-08-11 16:22:08.000000000 +0200
|
===================================================================
|
||||||
+++ ./doc/README_xxmc.html 2006-08-11 16:22:42.000000000 +0200
|
--- doc/README_xxmc.html.orig
|
||||||
|
+++ doc/README_xxmc.html
|
||||||
@@ -70,7 +70,7 @@ installing</h2>
|
@@ -70,7 +70,7 @@ installing</h2>
|
||||||
Make sure you have the XvMC wrapper installed. The wrapper will try to
|
Make sure you have the XvMC wrapper installed. The wrapper will try to
|
||||||
figure out at run-time what xvmc-hardware specific driver to load. If
|
figure out at run-time what xvmc-hardware specific driver to load. If
|
||||||
@ -10,10 +11,11 @@ diff -urp ../xine-lib-1.1.2-orig/doc/README_xxmc.html ./doc/README_xxmc.html
|
|||||||
and try to load the hardware-specific library mentioned in that file.
|
and try to load the hardware-specific library mentioned in that file.
|
||||||
If you downloaded the XvMC wrapper from the unichrome site, the default
|
If you downloaded the XvMC wrapper from the unichrome site, the default
|
||||||
XvMCConfig will make the XvMC wrapper try to load the Nvidia XvMC
|
XvMCConfig will make the XvMC wrapper try to load the Nvidia XvMC
|
||||||
diff -urp ../xine-lib-1.1.2-orig/doc/faq/faq.sgml ./doc/faq/faq.sgml
|
Index: doc/faq/faq.sgml
|
||||||
--- ../xine-lib-1.1.2-orig/doc/faq/faq.sgml 2006-08-11 16:22:08.000000000 +0200
|
===================================================================
|
||||||
+++ ./doc/faq/faq.sgml 2006-08-11 16:24:58.000000000 +0200
|
--- doc/faq/faq.sgml.orig
|
||||||
@@ -394,12 +394,12 @@
|
+++ doc/faq/faq.sgml
|
||||||
|
@@ -455,12 +455,12 @@
|
||||||
<para>
|
<para>
|
||||||
If you want to have Xv support compiled in, make sure you either have
|
If you want to have Xv support compiled in, make sure you either have
|
||||||
a shared Xv library on your system, e.g.
|
a shared Xv library on your system, e.g.
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
--- configure.ac 2007-06-27 18:29:50.000000000 +0200
|
Index: configure.ac
|
||||||
+++ configure.ac 2007-06-27 18:13:42.000000000 +0200
|
===================================================================
|
||||||
@@ -1059,6 +1059,28 @@
|
--- configure.ac.orig
|
||||||
|
+++ configure.ac
|
||||||
|
@@ -1070,6 +1070,28 @@ AC_SUBST([SDL_CFLAGS])
|
||||||
AC_SUBST([SDL_LIBS])
|
AC_SUBST([SDL_LIBS])
|
||||||
|
|
||||||
dnl ---------------------------------------------
|
dnl ---------------------------------------------
|
||||||
@ -29,7 +31,7 @@
|
|||||||
dnl check for Libstk
|
dnl check for Libstk
|
||||||
dnl ---------------------------------------------
|
dnl ---------------------------------------------
|
||||||
|
|
||||||
@@ -2676,6 +2698,7 @@
|
@@ -2731,6 +2753,7 @@ src/libxineadec/Makefile
|
||||||
src/libxineadec/gsm610/Makefile
|
src/libxineadec/gsm610/Makefile
|
||||||
src/libxineadec/nosefart/Makefile
|
src/libxineadec/nosefart/Makefile
|
||||||
src/libreal/Makefile
|
src/libreal/Makefile
|
||||||
@ -37,7 +39,7 @@
|
|||||||
src/post/Makefile
|
src/post/Makefile
|
||||||
src/post/planar/Makefile
|
src/post/planar/Makefile
|
||||||
src/post/goom/Makefile
|
src/post/goom/Makefile
|
||||||
@@ -2854,6 +2877,9 @@
|
@@ -2918,6 +2941,9 @@ echo ""
|
||||||
dnl audio decoders
|
dnl audio decoders
|
||||||
echo " * audio decoder plugins:"
|
echo " * audio decoder plugins:"
|
||||||
echo " - GSM 06.10 - linear PCM"
|
echo " - GSM 06.10 - linear PCM"
|
||||||
@ -47,9 +49,11 @@
|
|||||||
if test "x$with_external_ffmpeg" = "xyes"; then
|
if test "x$with_external_ffmpeg" = "xyes"; then
|
||||||
echo " - ffmpeg (external library):"
|
echo " - ffmpeg (external library):"
|
||||||
else
|
else
|
||||||
--- src/Makefile.am 2007-06-27 18:29:50.000000000 +0200
|
Index: src/Makefile.am
|
||||||
+++ src/Makefile.am 2007-06-27 17:33:56.000000000 +0200
|
===================================================================
|
||||||
@@ -25,6 +25,7 @@
|
--- src/Makefile.am.orig
|
||||||
|
+++ src/Makefile.am
|
||||||
|
@@ -25,6 +25,7 @@ SUBDIRS = \
|
||||||
libreal \
|
libreal \
|
||||||
libfaad \
|
libfaad \
|
||||||
libmusepack \
|
libmusepack \
|
||||||
@ -57,8 +61,10 @@
|
|||||||
post \
|
post \
|
||||||
combined \
|
combined \
|
||||||
vdr
|
vdr
|
||||||
--- src/mjpeg/Makefile.am 1970-01-01 01:00:00.000000000 +0100
|
Index: src/mjpeg/Makefile.am
|
||||||
+++ src/mjpeg/Makefile.am 2007-06-27 18:25:54.000000000 +0200
|
===================================================================
|
||||||
|
--- /dev/null
|
||||||
|
+++ src/mjpeg/Makefile.am
|
||||||
@@ -0,0 +1,9 @@
|
@@ -0,0 +1,9 @@
|
||||||
+include $(top_srcdir)/misc/Makefile.common
|
+include $(top_srcdir)/misc/Makefile.common
|
||||||
+
|
+
|
||||||
@ -69,8 +75,10 @@
|
|||||||
+xineplug_decode_mjpeg_la_CFLAGS = $(VISIBILITY_FLAG)
|
+xineplug_decode_mjpeg_la_CFLAGS = $(VISIBILITY_FLAG)
|
||||||
+xineplug_decode_mjpeg_la_LDFLAGS = $(xineplug_ldflags)
|
+xineplug_decode_mjpeg_la_LDFLAGS = $(xineplug_ldflags)
|
||||||
+endif
|
+endif
|
||||||
--- src/mjpeg/xine_mjpeg_decoder.c 1970-01-01 01:00:00.000000000 +0100
|
Index: src/mjpeg/xine_mjpeg_decoder.c
|
||||||
+++ src/mjpeg/xine_mjpeg_decoder.c 2007-06-27 18:12:23.000000000 +0200
|
===================================================================
|
||||||
|
--- /dev/null
|
||||||
|
+++ src/mjpeg/xine_mjpeg_decoder.c
|
||||||
@@ -0,0 +1,388 @@
|
@@ -0,0 +1,388 @@
|
||||||
+/*
|
+/*
|
||||||
+ * Copyright (C) 2007 Marcus Meissner
|
+ * Copyright (C) 2007 Marcus Meissner
|
||||||
@ -460,8 +468,10 @@
|
|||||||
+ { PLUGIN_VIDEO_DECODER, 18, "mjpeg", XINE_VERSION_CODE, &dec_info_video, init_plugin },
|
+ { PLUGIN_VIDEO_DECODER, 18, "mjpeg", XINE_VERSION_CODE, &dec_info_video, init_plugin },
|
||||||
+ { PLUGIN_NONE, 0, "", 0, NULL, NULL }
|
+ { PLUGIN_NONE, 0, "", 0, NULL, NULL }
|
||||||
+};
|
+};
|
||||||
--- src/mjpeg/Makefile.in 2006-11-25 20:28:17.000000000 +0100
|
Index: src/mjpeg/Makefile.in
|
||||||
+++ src/mjpeg/Makefile.in 2007-06-28 13:29:11.000000000 +0200
|
===================================================================
|
||||||
|
--- /dev/null
|
||||||
|
+++ src/mjpeg/Makefile.in
|
||||||
@@ -0,0 +1,751 @@
|
@@ -0,0 +1,751 @@
|
||||||
+# Makefile.in generated by automake 1.10 from Makefile.am.
|
+# Makefile.in generated by automake 1.10 from Makefile.am.
|
||||||
+# @configure_input@
|
+# @configure_input@
|
||||||
@ -1214,9 +1224,11 @@
|
|||||||
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||||
+# Otherwise a system limit (for SysV at least) may be exceeded.
|
+# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||||
+.NOEXPORT:
|
+.NOEXPORT:
|
||||||
--- configure
|
Index: configure
|
||||||
|
===================================================================
|
||||||
|
--- configure.orig
|
||||||
+++ configure
|
+++ configure
|
||||||
@@ -53416,6 +53416,7 @@
|
@@ -53851,6 +53851,7 @@ echo ""
|
||||||
echo " * video decoder plugins:"
|
echo " * video decoder plugins:"
|
||||||
echo " - MPEG 1,2 - Amiga Bitplane"
|
echo " - MPEG 1,2 - Amiga Bitplane"
|
||||||
echo " - Raw RGB - Raw YUV"
|
echo " - Raw RGB - Raw YUV"
|
||||||
@ -1224,13 +1236,15 @@
|
|||||||
if test "x$with_external_ffmpeg" = "xyes"; then
|
if test "x$with_external_ffmpeg" = "xyes"; then
|
||||||
echo " - ffmpeg (external library):"
|
echo " - ffmpeg (external library):"
|
||||||
else
|
else
|
||||||
--- src/Makefile.in
|
Index: src/Makefile.in
|
||||||
|
===================================================================
|
||||||
|
--- src/Makefile.in.orig
|
||||||
+++ src/Makefile.in
|
+++ src/Makefile.in
|
||||||
@@ -546,6 +546,7 @@
|
@@ -399,6 +399,7 @@ SUBDIRS = \
|
||||||
libreal \
|
libreal \
|
||||||
libfaad \
|
libfaad \
|
||||||
libmusepack \
|
libmusepack \
|
||||||
+ mjpeg \
|
+ mjpeg \
|
||||||
post \
|
post \
|
||||||
combined \
|
combined
|
||||||
vdr
|
|
||||||
|
@ -1,7 +1,8 @@
|
|||||||
diff -ur ../xine-lib-1.1.1-orig/src/libw32dll/wine/ldt_keeper.c ./src/libw32dll/wine/ldt_keeper.c
|
Index: src/libw32dll/wine/ldt_keeper.c
|
||||||
--- ../xine-lib-1.1.1-orig/src/libw32dll/wine/ldt_keeper.c 2006-01-02 12:43:47.000000000 +0100
|
===================================================================
|
||||||
+++ ./src/libw32dll/wine/ldt_keeper.c 2006-01-02 12:43:51.000000000 +0100
|
--- src/libw32dll/wine/ldt_keeper.c.orig
|
||||||
@@ -79,6 +79,10 @@
|
+++ src/libw32dll/wine/ldt_keeper.c
|
||||||
|
@@ -77,6 +77,10 @@ int modify_ldt(int func, void *ptr, unsi
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@ -10,5 +11,5 @@ diff -ur ../xine-lib-1.1.1-orig/src/libw32dll/wine/ldt_keeper.c ./src/libw32dll/
|
|||||||
+#define modify_ldt_ldt_s user_desc
|
+#define modify_ldt_ldt_s user_desc
|
||||||
+#endif
|
+#endif
|
||||||
#else
|
#else
|
||||||
#if defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__)
|
#if defined(__NetBSD__) || defined(__FreeBSD_kernel__) || defined(__OpenBSD__)
|
||||||
#include <machine/segments.h>
|
#include <machine/segments.h>
|
||||||
|
@ -1,3 +1,36 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Mar 25 19:26:50 CET 2008 - mhopf@suse.de
|
||||||
|
|
||||||
|
- Security fix for bnc#372877: integer overflows in malloc
|
||||||
|
CVE-2008-1482
|
||||||
|
- Added missing aalib-devel dependency.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Mar 19 16:42:18 CET 2008 - mhopf@suse.de
|
||||||
|
|
||||||
|
- Update to 1.1.11:
|
||||||
|
* Security fixes:
|
||||||
|
- Array Indexing Vulnerability in sdpplin_parse(). (CVE-2008-0073)
|
||||||
|
* Reworked the plugin directory naming so that external plugins don't have
|
||||||
|
to be rebuilt for every release. We now use a naming scheme based on the
|
||||||
|
API/ABI versioning, checking older directories - with this release, the
|
||||||
|
plugin directory name is 1.20, and if this gets bumped to 1.21 in a
|
||||||
|
future release, 1.20 will still be available for external plugins.
|
||||||
|
(Any directories not 1.* won't be looked in.)
|
||||||
|
* Made the version parsing much more reliable; it wasn't properly coping
|
||||||
|
with four-part version numbers. This affects any program whose build
|
||||||
|
scripts use xine-lib's automake macros.
|
||||||
|
* Fixed an off-by-one in the FLAC security fix patch. This breakage was
|
||||||
|
causing failure to play some files.
|
||||||
|
* Support 16-bit big-endian DTS audio.
|
||||||
|
* Improved frame snapshot API. (ABI extension.)
|
||||||
|
* Re-add support for # (stream parameter separator) in raw filenames,
|
||||||
|
without the bugs found in the original implementation.
|
||||||
|
(This is a convenience feature for users only. Front ends which rely on
|
||||||
|
it for functions like subtitle file detection must instead use file://
|
||||||
|
MRLs; if they don't, we consider them to be buggy.)
|
||||||
|
* Fixed long delay when closing stream on dual core systems [Bug #33]
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Mon Mar 10 13:28:58 CET 2008 - lnussel@suse.de
|
Mon Mar 10 13:28:58 CET 2008 - lnussel@suse.de
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# spec file for package xine-lib (Version 1.1.10.1)
|
# spec file for package xine-lib (Version 1.1.11)
|
||||||
#
|
#
|
||||||
# Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany.
|
# Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany.
|
||||||
# This file and all modifications and additions to the pristine
|
# This file and all modifications and additions to the pristine
|
||||||
@ -28,14 +28,14 @@ Name: xine-lib
|
|||||||
# 0: Build all except xine-internal 1: Build only xine-internal 2: Build all
|
# 0: Build all except xine-internal 1: Build only xine-internal 2: Build all
|
||||||
# 1+2 need uncrippled source
|
# 1+2 need uncrippled source
|
||||||
%define BUILD_XINE %{?_with_internal:2}%{!?_with_internal:%build_xine_default}
|
%define BUILD_XINE %{?_with_internal:2}%{!?_with_internal:%build_xine_default}
|
||||||
BuildRequires: ImageMagick-devel SDL-devel arts-devel cdparanoia curl-devel esound-devel flac-devel giflib-devel glib2-devel gnome-common gnome-vfs2-devel gnutls-devel gtk2-devel imlib2-devel krb5-devel libcdio-devel libdrm-devel libmng-devel libsmbclient libsmbclient-devel libtheora-devel libvorbis-devel lirc readline-devel speex-devel update-desktop-files vcdimager-devel
|
BuildRequires: ImageMagick-devel SDL-devel aalib-devel arts-devel cdparanoia curl-devel esound-devel flac-devel giflib-devel glib2-devel gnome-common gnome-vfs2-devel gnutls-devel gtk2-devel imlib2-devel krb5-devel libcdio-devel libdrm-devel libmng-devel libsmbclient libsmbclient-devel libtheora-devel libvorbis-devel lirc readline-devel speex-devel update-desktop-files vcdimager-devel
|
||||||
%if %BUILD_XINE > 0
|
%if %BUILD_XINE > 0
|
||||||
BuildRequires: mad-devel
|
BuildRequires: mad-devel
|
||||||
%endif
|
%endif
|
||||||
Recommends: opensuse-codecs-installer
|
Recommends: opensuse-codecs-installer
|
||||||
Version: 1.1.10.1
|
Version: 1.1.11
|
||||||
Release: 10
|
Release: 2
|
||||||
%define abiversion 1.1.10
|
%define abiversion 1.20
|
||||||
Summary: Video Player with Plug-Ins
|
Summary: Video Player with Plug-Ins
|
||||||
Group: Productivity/Multimedia/Video/Players
|
Group: Productivity/Multimedia/Video/Players
|
||||||
License: GPL v2 or later; Public Domain, Freeware
|
License: GPL v2 or later; Public Domain, Freeware
|
||||||
@ -52,6 +52,7 @@ Source13: lcd.tar.bz2
|
|||||||
Source99: precheckin_cripple_tarball.sh
|
Source99: precheckin_cripple_tarball.sh
|
||||||
# *** xine-lib: Bugfixes
|
# *** xine-lib: Bugfixes
|
||||||
Patch26: xine-lib-doc-fix-X11R6.diff
|
Patch26: xine-lib-doc-fix-X11R6.diff
|
||||||
|
Patch30: xine-lib-CVE-2008-1482.diff
|
||||||
# *** Addons
|
# *** Addons
|
||||||
Patch50: vdr-xine-lib-0.8.1.diff.bz2
|
Patch50: vdr-xine-lib-0.8.1.diff.bz2
|
||||||
Patch51: vdr-xine-SUSE.diff
|
Patch51: vdr-xine-SUSE.diff
|
||||||
@ -168,6 +169,7 @@ else
|
|||||||
fi
|
fi
|
||||||
cd xine-lib-%version
|
cd xine-lib-%version
|
||||||
%patch26
|
%patch26
|
||||||
|
%patch30 -p1
|
||||||
%patch50 -p1
|
%patch50 -p1
|
||||||
%patch51 -p1
|
%patch51 -p1
|
||||||
%patch52 -p1
|
%patch52 -p1
|
||||||
@ -448,6 +450,33 @@ echo "/usr/share/xine/mad" >> files.internal
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Tue Mar 25 2008 mhopf@suse.de
|
||||||
|
- Security fix for bnc#372877: integer overflows in malloc
|
||||||
|
CVE-2008-1482
|
||||||
|
- Added missing aalib-devel dependency.
|
||||||
|
* Wed Mar 19 2008 mhopf@suse.de
|
||||||
|
- Update to 1.1.11:
|
||||||
|
* Security fixes:
|
||||||
|
- Array Indexing Vulnerability in sdpplin_parse(). (CVE-2008-0073)
|
||||||
|
* Reworked the plugin directory naming so that external plugins don't have
|
||||||
|
to be rebuilt for every release. We now use a naming scheme based on the
|
||||||
|
API/ABI versioning, checking older directories - with this release, the
|
||||||
|
plugin directory name is 1.20, and if this gets bumped to 1.21 in a
|
||||||
|
future release, 1.20 will still be available for external plugins.
|
||||||
|
(Any directories not 1.* won't be looked in.)
|
||||||
|
* Made the version parsing much more reliable; it wasn't properly coping
|
||||||
|
with four-part version numbers. This affects any program whose build
|
||||||
|
scripts use xine-lib's automake macros.
|
||||||
|
* Fixed an off-by-one in the FLAC security fix patch. This breakage was
|
||||||
|
causing failure to play some files.
|
||||||
|
* Support 16-bit big-endian DTS audio.
|
||||||
|
* Improved frame snapshot API. (ABI extension.)
|
||||||
|
* Re-add support for # (stream parameter separator) in raw filenames,
|
||||||
|
without the bugs found in the original implementation.
|
||||||
|
(This is a convenience feature for users only. Front ends which rely on
|
||||||
|
it for functions like subtitle file detection must instead use file://
|
||||||
|
MRLs; if they don't, we consider them to be buggy.)
|
||||||
|
* Fixed long delay when closing stream on dual core systems [Bug #33]
|
||||||
* Mon Mar 10 2008 lnussel@suse.de
|
* Mon Mar 10 2008 lnussel@suse.de
|
||||||
- get rid of nosrc so a debuginfo package get created (bnc#284030)
|
- get rid of nosrc so a debuginfo package get created (bnc#284030)
|
||||||
* Fri Feb 15 2008 lnussel@suse.de
|
* Fri Feb 15 2008 lnussel@suse.de
|
||||||
|
Loading…
Reference in New Issue
Block a user