diff options
author | Darren Salt <linux@youmustbejoking.demon.co.uk> | 2006-06-22 23:47:16 +0000 |
---|---|---|
committer | Darren Salt <linux@youmustbejoking.demon.co.uk> | 2006-06-22 23:47:16 +0000 |
commit | 52e8f3c3d01ea5ba0d8827cfcc845072974e7904 (patch) | |
tree | fbd5f7fc9ce837259fb4510e0e6799f4f073f861 | |
parent | 4c05246c20f41d1e19ade1e21325c5c3815d8cf8 (diff) | |
download | xine-lib-52e8f3c3d01ea5ba0d8827cfcc845072974e7904.tar.gz xine-lib-52e8f3c3d01ea5ba0d8827cfcc845072974e7904.tar.bz2 |
Fix two identical instances of either null-dereference or use-after-free.
Also (hopefully) avoid memleak on allocation failure.
CVS patchset: 8071
CVS date: 2006/06/22 23:47:16
-rw-r--r-- | src/xine-engine/alphablend.c | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/src/xine-engine/alphablend.c b/src/xine-engine/alphablend.c index b38042369..6f224ca30 100644 --- a/src/xine-engine/alphablend.c +++ b/src/xine-engine/alphablend.c @@ -1124,14 +1124,13 @@ static uint8_t *(*blend_yuv_grow_extra_data(alphablend_t *extra_data, int osd_wi if (extra_data->buffer_size < needed_buffer_size) { free(extra_data->buffer); - extra_data->buffer = xine_xmalloc(needed_buffer_size); - - if (!extra_data->buffer) { + header = xine_xmalloc(needed_buffer_size); + if (!header) { extra_data->buffer_size = 0; return 0; } - extra_data->buffer_size = needed_buffer_size; + extra_data->buffer = header; header->max_width = 0; } @@ -1535,14 +1534,13 @@ static uint8_t *(*blend_yuy2_grow_extra_data(alphablend_t *extra_data, int osd_w if (extra_data->buffer_size < needed_buffer_size) { free(extra_data->buffer); - extra_data->buffer = xine_xmalloc(needed_buffer_size); - - if (!extra_data->buffer) { + header = xine_xmalloc(needed_buffer_size); + if (!header) { extra_data->buffer_size = 0; return 0; } - extra_data->buffer_size = needed_buffer_size; + extra_data->buffer = header; header->max_width = 0; } |