summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDiego 'Flameeyes' Pettenò <flameeyes@gmail.com>2007-12-18 21:12:12 +0100
committerDiego 'Flameeyes' Pettenò <flameeyes@gmail.com>2007-12-18 21:12:12 +0100
commitde2319031060f7ac4e7e4c169944490e43539777 (patch)
tree150b72eece8d247c16f0f1d2455213d8dc1c430c
parentc03568412615ffb294650149c5f6de18288f0976 (diff)
downloadxine-lib-de2319031060f7ac4e7e4c169944490e43539777.tar.gz
xine-lib-de2319031060f7ac4e7e4c169944490e43539777.tar.bz2
Check for buffer_len before allocating the buffer, so it hasn't to be freed.
-rw-r--r--src/demuxers/asfheader.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/src/demuxers/asfheader.c b/src/demuxers/asfheader.c
index 35bd187df..720bf5423 100644
--- a/src/demuxers/asfheader.c
+++ b/src/demuxers/asfheader.c
@@ -605,16 +605,15 @@ asf_header_t *asf_header_new (uint8_t *buffer, int buffer_len) {
uint32_t object_count;
uint16_t junk;
- if (! (asf_header = calloc(1, sizeof(asf_header_internal_t))) )
- return NULL;
-
lprintf("parsing_asf_header\n");
if (buffer_len < 6) {
printf("invalid buffer size\n");
- free(asf_header);
return NULL;
}
+ if (! (asf_header = calloc(1, sizeof(asf_header_internal_t))) )
+ return NULL;
+
asf_header->iconv_cd = iconv_open ("UTF-8", "UCS-2LE");
if (asf_header->iconv_cd == (iconv_t)-1) {
printf("iconv open error\n");