mirror of
https://github.com/samba-team/samba.git
synced 2025-01-10 01:18:15 +03:00
libcli/security: claims_conversions: check for NULL in claims array
If by mistake we end up with a NULL in our array of claims pointers,
it is better to return an error than crash.
There can be NULLs in the array if a resource attribute ACE has a
claim that uses 0 as a relative data pointer. Samba assumes this means
a NULL pointer, rather than a zero offset.
Credit to OSS-Fuzz.
REF: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=66777
BUG: https://bugzilla.samba.org/show_bug.cgi?id=15606
Signed-off-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
(cherry picked from commit 78f728063a
)
This commit is contained in:
parent
99b6feac93
commit
ce78896e26
@ -935,6 +935,16 @@ NTSTATUS claim_v1_check_and_sort(TALLOC_CTX *mem_ctx,
|
||||
.case_sensitive = case_sensitive
|
||||
};
|
||||
|
||||
/*
|
||||
* It could be that the values array contains a NULL pointer, in which
|
||||
* case we don't need to worry about what type it is.
|
||||
*/
|
||||
for (i = 0; i < claim->value_count; i++) {
|
||||
if (claim->values[i].int_value == NULL) {
|
||||
return NT_STATUS_INVALID_PARAMETER;
|
||||
}
|
||||
}
|
||||
|
||||
if (claim->value_type == CLAIM_SECURITY_ATTRIBUTE_TYPE_BOOLEAN) {
|
||||
NTSTATUS status = claim_v1_check_and_sort_boolean(mem_ctx, claim);
|
||||
if (NT_STATUS_IS_OK(status)) {
|
||||
|
Loading…
Reference in New Issue
Block a user