1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-23 17:34:34 +03:00
samba-mirror/librpc/ndr
Douglas Bagnall 3be368ff2b ndr: always attempt ACE coda pull if ACE type suggests a coda
We were skipping the pull in cases where the coda size was calculated
to be zero. This has the right result for empty conditional ACEs, but
not for Resource Attribute ACEs where the
CLAIM_SECURITY_ATTRIBUTE_RELATIVE_V1 coda was not intialised.

The situation is made a bit worse, because the function that
calculates the coda size (ndr_subcontext_size_of_ace_coda()) can
return zero in conditions that are not exactly errors, but in which
the would-be calculated value makes so little sense that zero is
thought to be a safer default.

Credit to OSS-Fuzz.

REF: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=66577
BUG: https://bugzilla.samba.org/show_bug.cgi?id=15613

Signed-off-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>

Autobuild-User(master): Andrew Bartlett <abartlet@samba.org>
Autobuild-Date(master): Mon Mar 25 06:00:21 UTC 2024 on atb-devel-224

(cherry picked from commit 6fb98f70c6)

Autobuild-User(v4-20-test): Jule Anger <janger@samba.org>
Autobuild-Date(v4-20-test): Tue Mar 26 11:17:58 UTC 2024 on atb-devel-224
2024-03-26 11:17:58 +00:00
..
libndr.h ndr: mark invalid pull ndr_flags as unlikely 2024-02-12 10:53:13 +00:00
ndr_auth.c librpc:ndr: Introduce ‘ndr_flags_type’ type 2023-11-01 20:10:45 +00:00
ndr_auth.h librpc:ndr: Introduce ‘ndr_flags_type’ type 2023-11-01 20:10:45 +00:00
ndr_backupkey.c librpc:ndr: Introduce ‘ndr_flags_type’ type 2023-11-01 20:10:45 +00:00
ndr_backupkey.h librpc:ndr: Introduce ‘ndr_flags_type’ type 2023-11-01 20:10:45 +00:00
ndr_basic.c ndr: skip talloc when pulling empty DATA_BLOB 2024-02-12 10:53:13 +00:00
ndr_bkupblobs.c librpc:ndr: Introduce ‘ndr_flags_type’ type 2023-11-01 20:10:45 +00:00
ndr_cab.c librpc:ndr: Introduce ‘ndr_flags_type’ type 2023-11-01 20:10:45 +00:00
ndr_cab.h librpc/ndr: Remove unused ndr_cab_generate_checksum() 2019-11-29 00:44:40 +00:00
ndr_claims.c librpc/ndr_claims: avoid 'bin/default' in #include 2023-09-26 23:45:35 +00:00
ndr_claims.h librpc/ndr: Use libndr compression for claims 2023-03-31 01:48:30 +00:00
ndr_compression.c librpc:ndr: Fix code spelling 2023-10-25 22:23:37 +00:00
ndr_compression.h librpc: Always call ndr_push_compression_state_init() for compression 2023-05-05 02:54:30 +00:00
ndr_dcerpc.c librpc:ndr: Introduce ‘ndr_flags_type’ type 2023-11-01 20:10:45 +00:00
ndr_dcerpc.h dcerpc.idl: Use simple boolean value instead of flag 2023-11-01 20:10:45 +00:00
ndr_dns_utils.c librpc:ndr: Introduce ‘ndr_flags_type’ type 2023-11-01 20:10:45 +00:00
ndr_dns_utils.h librpc:ndr: Introduce ‘ndr_flags_type’ type 2023-11-01 20:10:45 +00:00
ndr_dns.c librpc:ndr: Introduce ‘ndr_flags_type’ type 2023-11-01 20:10:45 +00:00
ndr_dns.h librpc:ndr: Introduce ‘ndr_flags_type’ type 2023-11-01 20:10:45 +00:00
ndr_dnsp.c librpc:ndr: Introduce ‘ndr_flags_type’ type 2023-11-01 20:10:45 +00:00
ndr_dnsp.h librpc:ndr: Introduce ‘ndr_flags_type’ type 2023-11-01 20:10:45 +00:00
ndr_dnsserver.c librpc:ndr: Introduce ‘ndr_flags_type’ type 2023-11-01 20:10:45 +00:00
ndr_dnsserver.h librpc:ndr: Introduce ‘ndr_flags_type’ type 2023-11-01 20:10:45 +00:00
ndr_drsblobs.c librpc:ndr: Introduce ‘ndr_flags_type’ type 2023-11-01 20:10:45 +00:00
ndr_drsblobs.h librpc:ndr: Introduce ‘ndr_flags_type’ type 2023-11-01 20:10:45 +00:00
ndr_drsuapi.c librpc:ndr: Introduce ‘ndr_flags_type’ type 2023-11-01 20:10:45 +00:00
ndr_drsuapi.h librpc:ndr: Introduce ‘libndr_flags’ type 2023-11-01 20:10:45 +00:00
ndr_frsrpc.c librpc:ndr: Introduce ‘ndr_flags_type’ type 2023-11-01 20:10:45 +00:00
ndr_frsrpc.h librpc:ndr: Introduce ‘ndr_flags_type’ type 2023-11-01 20:10:45 +00:00
ndr_ioctl.c
ndr_krb5pac.c librpc:ndr: Introduce ‘ndr_flags_type’ type 2023-11-01 20:10:45 +00:00
ndr_krb5pac.h librpc:ndr: Introduce ‘libndr_flags’ type 2023-11-01 20:10:45 +00:00
ndr_misc.c librpc/ndr: Use portable format specifiers 2023-09-27 02:43:28 +00:00
ndr_nbt.c librpc:idl: Make netlogon_samlogon_response public 2024-03-01 07:43:08 +00:00
ndr_nbt.h librpc:idl: Make netlogon_samlogon_response public 2024-03-01 07:43:08 +00:00
ndr_negoex.c librpc:ndr: Introduce ‘ndr_flags_type’ type 2023-11-01 20:10:45 +00:00
ndr_negoex.h librpc:ndr: Introduce ‘ndr_flags_type’ type 2023-11-01 20:10:45 +00:00
ndr_netlogon.c librpc:ndr: Introduce ‘ndr_flags_type’ type 2023-11-01 20:10:45 +00:00
ndr_netlogon.h librpc:ndr: Introduce ‘ndr_flags_type’ type 2023-11-01 20:10:45 +00:00
ndr_ntlmssp.c librpc:ndr: Introduce ‘ndr_flags_type’ type 2023-11-01 20:10:45 +00:00
ndr_ntlmssp.h librpc:ndr: Introduce ‘ndr_flags_type’ type 2023-11-01 20:10:45 +00:00
ndr_ntprinting.c librpc:ndr: Introduce ‘ndr_flags_type’ type 2023-11-01 20:10:45 +00:00
ndr_ntprinting.h librpc:ndr: Introduce ‘ndr_flags_type’ type 2023-11-01 20:10:45 +00:00
ndr_ODJ.c librpc: add custom odj_switch_level_from_guid() 2021-07-14 16:49:29 +00:00
ndr_ODJ.h librpc: add custom odj_switch_level_from_guid() 2021-07-14 16:49:29 +00:00
ndr_orpc.c librpc:ndr: Introduce ‘ndr_flags_type’ type 2023-11-01 20:10:45 +00:00
ndr_preg.c librpc:ndr: Introduce ‘ndr_flags_type’ type 2023-11-01 20:10:45 +00:00
ndr_preg.h librpc:ndr: Introduce ‘ndr_flags_type’ type 2023-11-01 20:10:45 +00:00
ndr_private.h selftest: Add test of NDR marshalling from python, starting with wbint 2021-06-02 03:56:36 +00:00
ndr_rap.c
ndr_rap.h
ndr_schannel.c pidl: Add and use ndr_print_steal_switch_value(), removing ndr_print_get_switch_value() 2019-12-12 02:30:40 +00:00
ndr_schannel.h
ndr_sec_helper.c ndr: always attempt ACE coda pull if ACE type suggests a coda 2024-03-26 11:17:58 +00:00
ndr_spoolss_buf.c librpc:ndr: Use correct libndr flags type 2023-11-30 00:02:33 +00:00
ndr_spoolss_buf.h librpc:ndr: Use correct libndr flags type 2023-11-30 00:02:33 +00:00
ndr_string.c librpc: Do not allow u16string to be encoded in a big‐endian context 2023-12-21 23:48:46 +00:00
ndr_svcctl.c
ndr_svcctl.h
ndr_table.c librpc:ndr: Fix code spelling 2023-06-23 13:44:31 +00:00
ndr_table.h
ndr_witness.c librpc:ndr: Introduce ‘ndr_flags_type’ type 2023-11-01 20:10:45 +00:00
ndr_witness.h librpc:ndr: Introduce ‘ndr_flags_type’ type 2023-11-01 20:10:45 +00:00
ndr_wmi.h librpc:ndr: Introduce ‘ndr_flags_type’ type 2023-11-01 20:10:45 +00:00
ndr_xattr.c librpc:ndr: Introduce ‘ndr_flags_type’ type 2023-11-01 20:10:45 +00:00
ndr_xattr.h librpc:ndr: Introduce ‘ndr_flags_type’ type 2023-11-01 20:10:45 +00:00
ndr.c librpc:ndr: Introduce ‘ndr_flags_type’ type 2023-11-01 20:10:45 +00:00
util.c librpc:ndr: Implement ndr_zero_memory() 2019-02-14 15:59:25 +01:00
uuid.c librpc/ndr: Use portable format specifiers 2023-09-27 02:43:28 +00:00