From bd79a83dfa044e11ba948b28c2c13209143194a2 Mon Sep 17 00:00:00 2001 From: Amit Agrawal Date: Mon, 13 Feb 2017 22:25:13 +0530 Subject: [PATCH] tbm_surface_internal_set_debug_data: adding check for existence of old data to avoid crash Change-Id: I3b18531d898d5cd756756c054db073bc581ec89e Signed-off-by: Amit Agrawal --- src/tbm_surface_internal.c | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/src/tbm_surface_internal.c b/src/tbm_surface_internal.c index 828538b..b7bb20a 100644 --- a/src/tbm_surface_internal.c +++ b/src/tbm_surface_internal.c @@ -1355,19 +1355,21 @@ tbm_surface_internal_set_debug_data(tbm_surface_h surface, char *key, char *valu if (!LIST_IS_EMPTY(&surface->debug_data_list)) { LIST_FOR_EACH_ENTRY(old_data, &surface->debug_data_list, item_link) { - if (!strcmp(old_data->key, key)) { - if (old_data->value && value && !strncmp(old_data->value, value, strlen(old_data->value))) { - TBM_TRACE("tbm_surface(%p) Already exist key(%s) and value(%s)!\n", surface, key, value); - goto add_debug_key_list; + if (old_data) { + if (!strcmp(old_data->key, key)) { + if (old_data->value && value && !strncmp(old_data->value, value, strlen(old_data->value))) { + TBM_TRACE("tbm_surface(%p) Already exist key(%s) and value(%s)!\n", surface, key, value); + goto add_debug_key_list; + } + + if (old_data->value) + free(old_data->value); + + if (value) + old_data->value = strdup(value); + else + old_data->value = NULL; } - - if (old_data->value) - free(old_data->value); - - if (value) - old_data->value = strdup(value); - else - old_data->value = NULL; } } } -- 2.7.4