summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChoe Hwanjin <choe.hwanjin@gmail.com>2021-12-19 16:03:42 +0900
committerChoe Hwanjin <choe.hwanjin@gmail.com>2021-12-31 21:15:38 +0900
commit313b888f1df00f8e476c3ba25a8ce619baaefc91 (patch)
treeb2b1d4102c20388eac7d29f0e3842d39e4595e07
parent4f55605d415bef9d35c105aa6b58b10b4bccffd4 (diff)
downloadlibhangul-313b888f1df00f8e476c3ba25a8ce619baaefc91.tar.gz
hanja: Fix dereference of NULL
Static Analysis에서 발견된 "dereference of NULL" 문제를 수정한다. HanjaList 메모리 할당에 실패한 경우에 대한 처리가 되지 않고 있었다. list 할당에 실패한 경우 Hanja 아이템을 추가하지 않게 한다. https://github.com/libhangul/libhangul/issues/53
-rw-r--r--hangul/hanja.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/hangul/hanja.c b/hangul/hanja.c
index 0cc7349..0cbe347 100644
--- a/hangul/hanja.c
+++ b/hangul/hanja.c
@@ -436,15 +436,19 @@ hanja_table_match(const HanjaTable* table,
char* p = strtok_r(buf, ":", &save);
res = strcmp(p, key);
if (res == 0) {
+ if (*list == NULL) {
+ *list = hanja_list_new(key);
+ }
+
+ if (*list == NULL) {
+ break;
+ }
+
char* value = strtok_r(NULL, ":", &save);
char* comment = strtok_r(NULL, "\r\n", &save);
Hanja* hanja = hanja_new(p, value, comment);
- if (*list == NULL) {
- *list = hanja_list_new(key);
- }
-
hanja_list_append_n(*list, hanja, 1);
} else if (res > 0) {
break;