diff options
author | mosu <mosu@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2003-10-30 14:50:04 +0000 |
---|---|---|
committer | mosu <mosu@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2003-10-30 14:50:04 +0000 |
commit | c5c7fbf3fff6021cbb3248869b83a670751082b0 (patch) | |
tree | 1247d56197faaf41effe4f1e85d184c62e26dcda /libmpdemux | |
parent | f879cb74af64b652f1be5513871cacc017db6de6 (diff) |
Fixed wrong allocation of the BITMAPINFOHEADER structure which would crash mplayer in some cases.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@11330 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libmpdemux')
-rw-r--r-- | libmpdemux/demux_mkv.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/libmpdemux/demux_mkv.cpp b/libmpdemux/demux_mkv.cpp index b56b928fd7..04d458f43a 100644 --- a/libmpdemux/demux_mkv.cpp +++ b/libmpdemux/demux_mkv.cpp @@ -2020,12 +2020,12 @@ extern "C" int demux_mkv_open(demuxer_t *demuxer) { BITMAPINFOHEADER *bih; idesc = NULL; - bih = (BITMAPINFOHEADER *)safemalloc(track->private_size); - memset(bih, 0, sizeof(BITMAPINFOHEADER)); if (track->ms_compat) { // MS compatibility mode BITMAPINFOHEADER *src; src = (BITMAPINFOHEADER *)track->private_data; + bih = (BITMAPINFOHEADER *)safemalloc(track->private_size); + memset(bih, 0, track->private_size); bih->biSize = get_uint32(&src->biSize); bih->biWidth = get_uint32(&src->biWidth); bih->biHeight = get_uint32(&src->biHeight); @@ -2042,6 +2042,8 @@ extern "C" int demux_mkv_open(demuxer_t *demuxer) { track->private_size - sizeof(BITMAPINFOHEADER)); } else { + bih = (BITMAPINFOHEADER *)safemalloc(sizeof(BITMAPINFOHEADER)); + memset(bih, 0, sizeof(BITMAPINFOHEADER)); bih->biSize = sizeof(BITMAPINFOHEADER); bih->biWidth = track->v_width; bih->biHeight = track->v_height; |