diff options
author | Diego 'Flameeyes' Pettenò <flameeyes@gmail.com> | 2007-12-18 21:12:12 +0100 |
---|---|---|
committer | Diego 'Flameeyes' Pettenò <flameeyes@gmail.com> | 2007-12-18 21:12:12 +0100 |
commit | de2319031060f7ac4e7e4c169944490e43539777 (patch) | |
tree | 150b72eece8d247c16f0f1d2455213d8dc1c430c | |
parent | c03568412615ffb294650149c5f6de18288f0976 (diff) | |
download | xine-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.c | 7 |
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");
|