OBS User unknown 2008-03-27 22:30:14 +00:00 committed by Git OBS Bridge
parent 36e0db74c9
commit e6182c5433
13 changed files with 762 additions and 103 deletions

View File

@ -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

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:897b552cce7c9b13e11263dfcb82111b64d6fa38b27c6d1adc85c0a88ea3b798
size 5005675

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:5ebbe7eac3eea9cdcea19cdc206343dcff301ee3b1947c789938f75e76783805
size 5065527

View File

@ -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
View 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) {

View File

@ -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

View File

@ -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));

View File

@ -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;

View File

@ -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.

View File

@ -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

View File

@ -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>

View File

@ -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

View File

@ -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