From d8af9ee017ed1018343d30272f55b90dd03a3559 Mon Sep 17 00:00:00 2001 From: Ebrahim Byagowi Date: Wed, 18 Sep 2019 00:47:55 +0430 Subject: [PATCH] Don't rely on nullptr deref recovery Fixes this -fno-sanitize-recover=undefined fail, /types/language: hb-common.cc:385:20: runtime error: member access within null pointer of type 'const struct hb_language_impl_t' #0 0x4caa34 in hb_language_to_string /home/user/code/harfbuzz/src/hb-common.cc:385:20 #1 0x4c9be8 in test_types_language /home/user/code/harfbuzz/test/api/test-common.c:205:3 #2 0x7f9557e72f49 (/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0+0x72f49) #3 0x7f9557e72e7a (/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0+0x72e7a) #4 0x7f9557e73121 in g_test_run_suite (/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0+0x73121) #5 0x7f9557e73140 in g_test_run (/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0+0x73140) #6 0x4c88a3 in hb_test_run /home/user/code/harfbuzz/test/api/./hb-test.h:88:10 #7 0x4c88a3 in main /home/user/code/harfbuzz/test/api/test-common.c:224:10 #8 0x7f9556e64b96 in __libc_start_main /build/glibc-OTsEL5/glibc-2.27/csu/../csu/libc-start.c:310 #9 0x41e7d9 in _start (/home/user/code/harfbuzz/test/api/test-common+0x41e7d9) --- src/hb-common.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/hb-common.cc b/src/hb-common.cc index 0720237b7..08ec04e41 100644 --- a/src/hb-common.cc +++ b/src/hb-common.cc @@ -381,7 +381,8 @@ hb_language_from_string (const char *str, int len) const char * hb_language_to_string (hb_language_t language) { - /* This is actually nullptr-safe! */ + if (!language) return nullptr; + return language->s; }