From 1324f12dc8213fc0f7e4549665f7d3f5b7f3100e Mon Sep 17 00:00:00 2001 From: Thibaut Mattern Date: Sat, 12 Jan 2008 16:51:25 +0100 Subject: Fixed metadata reading when length=0. Fixed bug id=17. --- src/demuxers/asfheader.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/demuxers/asfheader.c b/src/demuxers/asfheader.c index ea92f878b..eb74c0886 100644 --- a/src/demuxers/asfheader.c +++ b/src/demuxers/asfheader.c @@ -142,9 +142,9 @@ static uint8_t *asf_reader_get_bytes(asf_reader_t *reader, size_t size) { static char *asf_reader_get_string(asf_reader_t *reader, size_t size, iconv_t cd) { char *inbuf, *outbuf; size_t inbytesleft, outbytesleft; - char scratch[2048]; + char scratch[2048]; - if ((reader->size - reader->pos) < size) + if ((size == 0) ||((reader->size - reader->pos) < size)) return NULL; inbuf = (char *)reader->buffer + reader->pos; @@ -599,6 +599,12 @@ static int asf_header_parse_content_description(asf_header_t *header_pub, uint8_ content->description = asf_reader_get_string(&reader, description_length, header->iconv_cd); content->rating = asf_reader_get_string(&reader, rating_length, header->iconv_cd); + lprintf("title: %d chars: \"%s\"\n", title_length, content->title); + lprintf("author: %d chars: \"%s\"\n", author_length, content->author); + lprintf("copyright: %d chars: \"%s\"\n", copyright_length, content->copyright); + lprintf("description: %d chars: \"%s\"\n", description_length, content->description); + lprintf("rating: %d chars: \"%s\"\n", rating_length, content->rating); + header->pub.content = content; return 1; } -- cgit v1.2.3