1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-10 01:18:15 +03:00
samba-mirror/librpc/ndr
Douglas Bagnall c73034cf7c librpc/security.idl: adjust size calculations for upcoming ace types
Soon we will get Conditional ACEs and Resource Attribute ACES, each of
which have trailing bytes at the end of the ACE. Here's a diagram:

              ____      The ACE size field may indicate a size bigger
  .type      /    |     than the known parts, even when you take
  .flags    /     |     rounding to a multiple of four into account.
  .size  --'      |     This extra data is meaningful in some ACEs.
  .access_mask    |
  .trustee (sid) _|  <- known data ends here.
                  :
   "coda"      ___:  <- the trailing part, Zero size unless the size
                        field points beyond the end of the known data.
			Probably empty for ordinary ACE types.

Until now we have thrown away these extra bytes, because they have no
meaning in the ACE types we recognise. But with conditional and
resource attribute ACEs we need to catch and process these bytes, so
we add an extra field for that.

Thus we can drop the manually written ndr_pull_security_ace() that
discarded the trailing bytes, because we just allow it to be pulled
into an unused blob. In the very common case, the blob will be empty.

Microsoft does not use a common name across different ACE types to
describe this end-data -- "coda" is a Samba term.

Signed-off-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
2023-08-24 02:53:31 +00:00
..
libndr.h librpc:ndr: Add ‘int64’ type 2023-08-15 18:46:33 +00:00
ndr_auth.c
ndr_auth.h
ndr_backupkey.c librpc:ndr: Fix code spelling 2023-06-23 13:44:31 +00:00
ndr_backupkey.h
ndr_basic.c librpc:ndr: Add ‘int64’ type 2023-08-15 18:46:33 +00:00
ndr_bkupblobs.c
ndr_cab.c librpc: Always call ndr_push_compression_state_init() for compression 2023-05-05 02:54:30 +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: Add missing newlines to error messages 2023-04-12 13:52:31 +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: Remove unneeded casts 2023-08-08 04:39:36 +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
ndr_dcerpc.h
ndr_dns_utils.c ndr/dns-utils: Make error message slightly more readable 2023-08-08 04:39:36 +00:00
ndr_dns_utils.h CVE-2020-10745: ndr/dns-utils: prepare for NBT compatibility 2020-07-02 09:01:41 +00:00
ndr_dns.c CVE-2020-10745: ndr/dns-utils: prepare for NBT compatibility 2020-07-02 09:01:41 +00:00
ndr_dns.h
ndr_dnsp.c librpc: Do not access name[-1] trying to push "" into a dnsp_name 2019-12-20 11:33:52 +00:00
ndr_dnsp.h
ndr_dnsserver.c
ndr_dnsserver.h
ndr_drsblobs.c
ndr_drsblobs.h
ndr_drsuapi.c librpc: Always call ndr_push_compression_state_init() for compression 2023-05-05 02:54:30 +00:00
ndr_drsuapi.h
ndr_frsrpc.c
ndr_frsrpc.h
ndr_ioctl.c
ndr_krb5pac.c CVE-2020-25721 krb5pac: Add new buffers for samAccountName and objectSID 2021-11-09 19:45:32 +00:00
ndr_krb5pac.h
ndr_misc.c lib: Simplify parse_guid_string() and ndr_syntax_id_from_string() 2021-01-28 16:58:35 +00:00
ndr_nbt.c CVE-2020-10745: ndr/dns-utils: prepare for NBT compatibility 2020-07-02 09:01:41 +00:00
ndr_nbt.h librpc/ndr: add ndr_print_netlogon_samlogon_response() 2019-09-26 18:41:26 +00:00
ndr_negoex.c pidl: Avoid leaving array_size NDR tokens around 2021-06-02 03:56:36 +00:00
ndr_negoex.h build: Get rid of hardcoded 'bin/default' in includes 2019-02-08 08:51:19 +01:00
ndr_netlogon.c
ndr_netlogon.h
ndr_ntlmssp.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_ntlmssp.h
ndr_ntprinting.c
ndr_ntprinting.h
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 ndr_orpc: properly allocate empty DUALSTRINGARRAY 2019-11-20 04:41:28 +00:00
ndr_preg.c
ndr_preg.h
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 librpc/security.idl: adjust size calculations for upcoming ace types 2023-08-24 02:53:31 +00:00
ndr_spoolss_buf.c pidl: Avoid leaving array_size NDR tokens around 2021-06-02 03:56:36 +00:00
ndr_spoolss_buf.h librpc: pidlify spoolss_EnumPerMachineConnections 2020-01-08 23:51:31 +00:00
ndr_string.c ndr_string: Move string length calculation fallback into default case 2023-08-08 04:39:37 +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
ndr_witness.h
ndr_wmi.h
ndr_xattr.c
ndr_xattr.h
ndr.c librpc:ndr: Use portable integer types 2023-08-21 23:37:29 +00:00
util.c librpc:ndr: Implement ndr_zero_memory() 2019-02-14 15:59:25 +01:00
uuid.c librpc: Simplify GUID_hexstring() 2021-08-24 17:32:28 +00:00