summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPetri Hintukainen <phintuka@users.sourceforge.net>2014-05-13 15:04:09 +0300
committerPetri Hintukainen <phintuka@users.sourceforge.net>2014-05-13 15:04:09 +0300
commit29cc3edd7dcb15a7f9d1a8f0e912001be32de320 (patch)
treefe1c6a8c259e08ed71fdeb210029fe180e2d8e1c /src
parent682b3d44a34a54fdae605851bc1ddc2f66381e30 (diff)
downloadxine-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.c9
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;
}