Skip to content

Commit

Permalink
libsepol: replace an assert with an error message
Browse files Browse the repository at this point in the history
When fuzzing hll/pp inputs, a policy module where the value of
scope->decl_ids_len has been modified to zero makes the program abort
(when it has been compiled without -DNDEBUG).

Change the behavior to report an error message instead. This eases
fuzzing functions like policydb_read().

Signed-off-by: Nicolas Iooss <[email protected]>
  • Loading branch information
fishilico authored and stephensmalley committed Nov 16, 2016
1 parent a96184b commit 784b43b
Showing 1 changed file with 4 additions and 1 deletion.
5 changes: 4 additions & 1 deletion libsepol/src/policydb.c
Original file line number Diff line number Diff line change
Expand Up @@ -3635,7 +3635,10 @@ static int scope_read(policydb_t * p, int symnum, struct policy_file *fp)
goto cleanup;
scope->scope = le32_to_cpu(buf[0]);
scope->decl_ids_len = le32_to_cpu(buf[1]);
assert(scope->decl_ids_len > 0);
if (scope->decl_ids_len == 0) {
ERR(fp->handle, "invalid scope with no declaration");
goto cleanup;
}
if ((scope->decl_ids =
malloc(scope->decl_ids_len * sizeof(uint32_t))) == NULL) {
goto cleanup;
Expand Down

0 comments on commit 784b43b

Please sign in to comment.