From a21e696d905d12ee17481c5fe2ccbb67571c0572 Mon Sep 17 00:00:00 2001 From: Pavel Chupin Date: Fri, 9 Aug 2013 19:17:55 +0400 Subject: [PATCH] Avoid segfaults if properties are not initialized Null or constant dereferencing occurs if properties are not initialized. On Android devices it shouldn't happen but can be faced if testing bionic libc.so on Linux host. Change-Id: I8f047cbe17d0e7bcde40ace000a8aa53789c16cb Signed-off-by: Pavel Chupin --- libc/bionic/system_properties.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/libc/bionic/system_properties.c b/libc/bionic/system_properties.c index 4c2e5a21f..fd5643145 100644 --- a/libc/bionic/system_properties.c +++ b/libc/bionic/system_properties.c @@ -325,6 +325,8 @@ static void *to_prop_obj(prop_off_t off) { if (off > pa_data_size) return NULL; + if (!__system_property_area__) + return NULL; return __system_property_area__->data + off; } @@ -384,6 +386,8 @@ static const prop_info *find_property(prop_bt *trie, const char *name, { const char *remaining_name = name; + if (!trie) return NULL; + while (true) { char *sep = strchr(remaining_name, '.'); bool want_subtree = (sep != NULL);