diff options
author | Petri Hintukainen <phintuka@users.sourceforge.net> | 2014-05-13 15:04:09 +0300 |
---|---|---|
committer | Petri Hintukainen <phintuka@users.sourceforge.net> | 2014-05-13 15:04:09 +0300 |
commit | 29cc3edd7dcb15a7f9d1a8f0e912001be32de320 (patch) | |
tree | fe1c6a8c259e08ed71fdeb210029fe180e2d8e1c /src | |
parent | 682b3d44a34a54fdae605851bc1ddc2f66381e30 (diff) | |
download | xine-lib-29cc3edd7dcb15a7f9d1a8f0e912001be32de320.tar.gz xine-lib-29cc3edd7dcb15a7f9d1a8f0e912001be32de320.tar.bz2 |
alphablend: use _x_freep (fix double free after failed calloc)
Diffstat (limited to 'src')
-rw-r--r-- | src/xine-engine/alphablend.c | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/src/xine-engine/alphablend.c b/src/xine-engine/alphablend.c index 0b5e3252f..d63cc546b 100644 --- a/src/xine-engine/alphablend.c +++ b/src/xine-engine/alphablend.c @@ -1121,7 +1121,7 @@ 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); + _x_freep(&extra_data->buffer); header = calloc(1, needed_buffer_size); if (!header) { extra_data->buffer_size = 0; @@ -1566,7 +1566,7 @@ 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); + _x_freep(&extra_data->buffer); header = calloc(1, needed_buffer_size); if (!header) { extra_data->buffer_size = 0; @@ -2163,10 +2163,7 @@ void _x_alphablend_init(alphablend_t *extra_data, xine_t *xine) void _x_alphablend_free(alphablend_t *extra_data) { - if (extra_data->buffer) { - free(extra_data->buffer); - extra_data->buffer = NULL; - } + _x_freep(&extra_data->buffer); extra_data->buffer_size = 0; } |