From: Choe Hwanjin Date: Mon, 23 Feb 2015 14:57:06 +0000 (+0900) Subject: hanja_list_new()에서 발생할 가능성이 있는 memory leak 수정 X-Git-Tag: submit/tizen/20150602.011752~3 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=1c737780302cd65ba3044a6d1de567b4e2730dd3;p=platform%2Fcore%2Fuifw%2Flibhangul.git hanja_list_new()에서 발생할 가능성이 있는 memory leak 수정 strdup이 실패할 경우와 malloc이 실패할 경우에 대한 처리를 강화한다. Change-Id: I1e8faf0130b2d285fe716f0bea02d6301265d1d8 --- diff --git a/hangul/hanja.c b/hangul/hanja.c index bfad1e0..0cc7349 100644 --- a/hangul/hanja.c +++ b/hangul/hanja.c @@ -338,18 +338,22 @@ hanja_list_new(const char *key) HanjaList *list; list = malloc(sizeof(*list)); - if (list != NULL) { - list->key = strdup(key); - list->len = 0; - list->alloc = 1; - list->items = malloc(list->alloc * sizeof(list->items[0])); - if (list->items == NULL) { - if (list->key) - free(list->key); - - free(list); - list = NULL; - } + if (list == NULL) + return NULL; + + list->key = strdup(key); + if (list->key == NULL) { + free(list); + return NULL; + } + + list->len = 0; + list->alloc = 1; + list->items = malloc(list->alloc * sizeof(list->items[0])); + if (list->items == NULL) { + free(list->key); + free(list); + return NULL; } return list;