gracefully handle hashtab_search failures
Otherwise we crash on a null pointer exception.
Test: Reference a non-existent type in test code and make sure
the test doesn't crash.
Change-Id: I5839d2740d51c0df7a8909a3f8430850ae1b2675
diff --git a/tests/sepol_wrap.cpp b/tests/sepol_wrap.cpp
index 41f13bf..15f3e70 100644
--- a/tests/sepol_wrap.cpp
+++ b/tests/sepol_wrap.cpp
@@ -116,11 +116,16 @@
} else {
out->alltypes = TYPE_ITER_LOOKUP;
out->d = static_cast<type_datum *>(hashtab_search(db->p_types.table, type));
+ if (out->d == nullptr) {
+ std::cerr << "\"" << type << "\" does not exist" << std::endl;
+ free(out);
+ return nullptr;
+ }
if (is_attr && out->d->flavor != TYPE_ATTRIB) {
std::cerr << "\"" << type << "\" MUST be an attribute in the policy" << std::endl;
free(out);
return nullptr;
- } else if (!is_attr && out->d->flavor !=TYPE_TYPE) {
+ } else if (!is_attr && out->d->flavor != TYPE_TYPE) {
std::cerr << "\"" << type << "\" MUST be a type in the policy" << std::endl;
free(out);
return nullptr;