Skip to content
Snippets Groups Projects
Commit bb880a28 authored by Nick Kralevich's avatar Nick Kralevich
Browse files

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
parent 1b2ea497
No related branches found
No related tags found
No related merge requests found
......@@ -116,11 +116,16 @@ void *init_type_iter(void *policydbp, const char *type, bool is_attr)
} 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;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment