From 476abbd3d2c89c3951d9144f2f483e9d9e551a75 Mon Sep 17 00:00:00 2001 From: Bastien Nocera Date: Tue, 6 May 2003 12:04:41 +0000 Subject: - make sure that the read_size is not bigger than the buffer we're sending back CVS patchset: 4778 CVS date: 2003/05/06 12:04:41 --- src/xine-engine/demux.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/xine-engine/demux.c b/src/xine-engine/demux.c index ed802d8fa..59721aedc 100644 --- a/src/xine-engine/demux.c +++ b/src/xine-engine/demux.c @@ -39,6 +39,11 @@ #include #endif +#ifdef MIN +#undef MIN +#endif +#define MIN(a,b) ( (a) < (b) ) ? (a) : (b) + /* #define LOG */ @@ -350,8 +355,9 @@ int xine_demux_read_header( input_plugin_t *input, unsigned char *buffer, off_t return 0; input->seek(input, 0, SEEK_SET); } else if (input->get_capabilities(input) & INPUT_CAP_PREVIEW) { - buf = xine_xmalloc(size); - read_size = input->get_optional_data(input, buf, size); + buf = xine_xmalloc(MAX_PREVIEW_SIZE); + read_size = input->get_optional_data(input, buf, INPUT_OPTIONAL_DATA_PREVIEW); + read_size = MIN (read_size, size); memcpy(buffer, buf, size); free(buf); } else { -- cgit v1.2.3