692 lines
36 KiB
Diff
692 lines
36 KiB
Diff
|
From 3ef3c708b4ae4f2637d3307dc363389df0b7f05a Mon Sep 17 00:00:00 2001
|
||
|
From: Andreas Schneider <asn@samba.org>
|
||
|
Date: Wed, 13 Feb 2019 10:35:13 +0100
|
||
|
Subject: [PATCH 1/5] librpc:ndr: Implement ndr_zero_memory()
|
||
|
|
||
|
BUG: https://bugzilla.samba.org/show_bug.cgi?id=13778
|
||
|
|
||
|
Signed-off-by: Andreas Schneider <asn@samba.org>
|
||
|
(cherry picked from commit e1325697c868c6e423d7551e4316e7c72e250dab)
|
||
|
---
|
||
|
librpc/ABI/ndr-0.2.0.sigs | 264 ++++++++++++++++++++++++++++++++++++++
|
||
|
librpc/ndr/libndr.h | 1 +
|
||
|
librpc/ndr/util.c | 5 +
|
||
|
librpc/wscript_build | 2 +-
|
||
|
4 files changed, 271 insertions(+), 1 deletion(-)
|
||
|
create mode 100644 librpc/ABI/ndr-0.2.0.sigs
|
||
|
|
||
|
diff --git a/librpc/ABI/ndr-0.2.0.sigs b/librpc/ABI/ndr-0.2.0.sigs
|
||
|
new file mode 100644
|
||
|
index 00000000000..6346f2fb491
|
||
|
--- /dev/null
|
||
|
+++ b/librpc/ABI/ndr-0.2.0.sigs
|
||
|
@@ -0,0 +1,264 @@
|
||
|
+GUID_all_zero: bool (const struct GUID *)
|
||
|
+GUID_buf_string: char *(const struct GUID *, struct GUID_txt_buf *)
|
||
|
+GUID_compare: int (const struct GUID *, const struct GUID *)
|
||
|
+GUID_equal: bool (const struct GUID *, const struct GUID *)
|
||
|
+GUID_from_data_blob: NTSTATUS (const DATA_BLOB *, struct GUID *)
|
||
|
+GUID_from_ndr_blob: NTSTATUS (const DATA_BLOB *, struct GUID *)
|
||
|
+GUID_from_string: NTSTATUS (const char *, struct GUID *)
|
||
|
+GUID_hexstring: char *(TALLOC_CTX *, const struct GUID *)
|
||
|
+GUID_random: struct GUID (void)
|
||
|
+GUID_string: char *(TALLOC_CTX *, const struct GUID *)
|
||
|
+GUID_string2: char *(TALLOC_CTX *, const struct GUID *)
|
||
|
+GUID_to_ndr_blob: NTSTATUS (const struct GUID *, TALLOC_CTX *, DATA_BLOB *)
|
||
|
+GUID_zero: struct GUID (void)
|
||
|
+ndr_align_size: size_t (uint32_t, size_t)
|
||
|
+ndr_charset_length: uint32_t (const void *, charset_t)
|
||
|
+ndr_check_array_length: enum ndr_err_code (struct ndr_pull *, void *, uint32_t)
|
||
|
+ndr_check_array_size: enum ndr_err_code (struct ndr_pull *, void *, uint32_t)
|
||
|
+ndr_check_padding: void (struct ndr_pull *, size_t)
|
||
|
+ndr_check_pipe_chunk_trailer: enum ndr_err_code (struct ndr_pull *, int, uint32_t)
|
||
|
+ndr_check_string_terminator: enum ndr_err_code (struct ndr_pull *, uint32_t, uint32_t)
|
||
|
+ndr_get_array_length: uint32_t (struct ndr_pull *, const void *)
|
||
|
+ndr_get_array_size: uint32_t (struct ndr_pull *, const void *)
|
||
|
+ndr_map_error2errno: int (enum ndr_err_code)
|
||
|
+ndr_map_error2ntstatus: NTSTATUS (enum ndr_err_code)
|
||
|
+ndr_map_error2string: const char *(enum ndr_err_code)
|
||
|
+ndr_policy_handle_empty: bool (const struct policy_handle *)
|
||
|
+ndr_policy_handle_equal: bool (const struct policy_handle *, const struct policy_handle *)
|
||
|
+ndr_print_DATA_BLOB: void (struct ndr_print *, const char *, DATA_BLOB)
|
||
|
+ndr_print_GUID: void (struct ndr_print *, const char *, const struct GUID *)
|
||
|
+ndr_print_HRESULT: void (struct ndr_print *, const char *, HRESULT)
|
||
|
+ndr_print_KRB5_EDATA_NTSTATUS: void (struct ndr_print *, const char *, const struct KRB5_EDATA_NTSTATUS *)
|
||
|
+ndr_print_NTSTATUS: void (struct ndr_print *, const char *, NTSTATUS)
|
||
|
+ndr_print_NTTIME: void (struct ndr_print *, const char *, NTTIME)
|
||
|
+ndr_print_NTTIME_1sec: void (struct ndr_print *, const char *, NTTIME)
|
||
|
+ndr_print_NTTIME_hyper: void (struct ndr_print *, const char *, NTTIME)
|
||
|
+ndr_print_WERROR: void (struct ndr_print *, const char *, WERROR)
|
||
|
+ndr_print_array_uint8: void (struct ndr_print *, const char *, const uint8_t *, uint32_t)
|
||
|
+ndr_print_bad_level: void (struct ndr_print *, const char *, uint16_t)
|
||
|
+ndr_print_bitmap_flag: void (struct ndr_print *, size_t, const char *, uint32_t, uint32_t)
|
||
|
+ndr_print_bool: void (struct ndr_print *, const char *, const bool)
|
||
|
+ndr_print_debug: void (ndr_print_fn_t, const char *, void *)
|
||
|
+ndr_print_debug_helper: void (struct ndr_print *, const char *, ...)
|
||
|
+ndr_print_debugc: void (int, ndr_print_fn_t, const char *, void *)
|
||
|
+ndr_print_debugc_helper: void (struct ndr_print *, const char *, ...)
|
||
|
+ndr_print_dlong: void (struct ndr_print *, const char *, int64_t)
|
||
|
+ndr_print_double: void (struct ndr_print *, const char *, double)
|
||
|
+ndr_print_enum: void (struct ndr_print *, const char *, const char *, const char *, uint32_t)
|
||
|
+ndr_print_function_debug: void (ndr_print_function_t, const char *, int, void *)
|
||
|
+ndr_print_function_string: char *(TALLOC_CTX *, ndr_print_function_t, const char *, int, void *)
|
||
|
+ndr_print_get_switch_value: uint32_t (struct ndr_print *, const void *)
|
||
|
+ndr_print_gid_t: void (struct ndr_print *, const char *, gid_t)
|
||
|
+ndr_print_hyper: void (struct ndr_print *, const char *, uint64_t)
|
||
|
+ndr_print_int16: void (struct ndr_print *, const char *, int16_t)
|
||
|
+ndr_print_int32: void (struct ndr_print *, const char *, int32_t)
|
||
|
+ndr_print_int3264: void (struct ndr_print *, const char *, int32_t)
|
||
|
+ndr_print_int8: void (struct ndr_print *, const char *, int8_t)
|
||
|
+ndr_print_ipv4address: void (struct ndr_print *, const char *, const char *)
|
||
|
+ndr_print_ipv6address: void (struct ndr_print *, const char *, const char *)
|
||
|
+ndr_print_ndr_syntax_id: void (struct ndr_print *, const char *, const struct ndr_syntax_id *)
|
||
|
+ndr_print_netr_SamDatabaseID: void (struct ndr_print *, const char *, enum netr_SamDatabaseID)
|
||
|
+ndr_print_netr_SchannelType: void (struct ndr_print *, const char *, enum netr_SchannelType)
|
||
|
+ndr_print_null: void (struct ndr_print *)
|
||
|
+ndr_print_pointer: void (struct ndr_print *, const char *, void *)
|
||
|
+ndr_print_policy_handle: void (struct ndr_print *, const char *, const struct policy_handle *)
|
||
|
+ndr_print_printf_helper: void (struct ndr_print *, const char *, ...)
|
||
|
+ndr_print_ptr: void (struct ndr_print *, const char *, const void *)
|
||
|
+ndr_print_set_switch_value: enum ndr_err_code (struct ndr_print *, const void *, uint32_t)
|
||
|
+ndr_print_sockaddr_storage: void (struct ndr_print *, const char *, const struct sockaddr_storage *)
|
||
|
+ndr_print_string: void (struct ndr_print *, const char *, const char *)
|
||
|
+ndr_print_string_array: void (struct ndr_print *, const char *, const char **)
|
||
|
+ndr_print_string_helper: void (struct ndr_print *, const char *, ...)
|
||
|
+ndr_print_struct: void (struct ndr_print *, const char *, const char *)
|
||
|
+ndr_print_struct_string: char *(TALLOC_CTX *, ndr_print_fn_t, const char *, void *)
|
||
|
+ndr_print_svcctl_ServerType: void (struct ndr_print *, const char *, uint32_t)
|
||
|
+ndr_print_time_t: void (struct ndr_print *, const char *, time_t)
|
||
|
+ndr_print_timespec: void (struct ndr_print *, const char *, const struct timespec *)
|
||
|
+ndr_print_timeval: void (struct ndr_print *, const char *, const struct timeval *)
|
||
|
+ndr_print_udlong: void (struct ndr_print *, const char *, uint64_t)
|
||
|
+ndr_print_udlongr: void (struct ndr_print *, const char *, uint64_t)
|
||
|
+ndr_print_uid_t: void (struct ndr_print *, const char *, uid_t)
|
||
|
+ndr_print_uint16: void (struct ndr_print *, const char *, uint16_t)
|
||
|
+ndr_print_uint32: void (struct ndr_print *, const char *, uint32_t)
|
||
|
+ndr_print_uint3264: void (struct ndr_print *, const char *, uint32_t)
|
||
|
+ndr_print_uint8: void (struct ndr_print *, const char *, uint8_t)
|
||
|
+ndr_print_union: void (struct ndr_print *, const char *, int, const char *)
|
||
|
+ndr_print_union_debug: void (ndr_print_fn_t, const char *, uint32_t, void *)
|
||
|
+ndr_print_union_string: char *(TALLOC_CTX *, ndr_print_fn_t, const char *, uint32_t, void *)
|
||
|
+ndr_print_winreg_Data: void (struct ndr_print *, const char *, const union winreg_Data *)
|
||
|
+ndr_print_winreg_Data_GPO: void (struct ndr_print *, const char *, const union winreg_Data_GPO *)
|
||
|
+ndr_print_winreg_Type: void (struct ndr_print *, const char *, enum winreg_Type)
|
||
|
+ndr_pull_DATA_BLOB: enum ndr_err_code (struct ndr_pull *, int, DATA_BLOB *)
|
||
|
+ndr_pull_GUID: enum ndr_err_code (struct ndr_pull *, int, struct GUID *)
|
||
|
+ndr_pull_HRESULT: enum ndr_err_code (struct ndr_pull *, int, HRESULT *)
|
||
|
+ndr_pull_KRB5_EDATA_NTSTATUS: enum ndr_err_code (struct ndr_pull *, int, struct KRB5_EDATA_NTSTATUS *)
|
||
|
+ndr_pull_NTSTATUS: enum ndr_err_code (struct ndr_pull *, int, NTSTATUS *)
|
||
|
+ndr_pull_NTTIME: enum ndr_err_code (struct ndr_pull *, int, NTTIME *)
|
||
|
+ndr_pull_NTTIME_1sec: enum ndr_err_code (struct ndr_pull *, int, NTTIME *)
|
||
|
+ndr_pull_NTTIME_hyper: enum ndr_err_code (struct ndr_pull *, int, NTTIME *)
|
||
|
+ndr_pull_WERROR: enum ndr_err_code (struct ndr_pull *, int, WERROR *)
|
||
|
+ndr_pull_advance: enum ndr_err_code (struct ndr_pull *, uint32_t)
|
||
|
+ndr_pull_align: enum ndr_err_code (struct ndr_pull *, size_t)
|
||
|
+ndr_pull_append: enum ndr_err_code (struct ndr_pull *, DATA_BLOB *)
|
||
|
+ndr_pull_array_length: enum ndr_err_code (struct ndr_pull *, const void *)
|
||
|
+ndr_pull_array_size: enum ndr_err_code (struct ndr_pull *, const void *)
|
||
|
+ndr_pull_array_uint8: enum ndr_err_code (struct ndr_pull *, int, uint8_t *, uint32_t)
|
||
|
+ndr_pull_bytes: enum ndr_err_code (struct ndr_pull *, uint8_t *, uint32_t)
|
||
|
+ndr_pull_charset: enum ndr_err_code (struct ndr_pull *, int, const char **, uint32_t, uint8_t, charset_t)
|
||
|
+ndr_pull_charset_to_null: enum ndr_err_code (struct ndr_pull *, int, const char **, uint32_t, uint8_t, charset_t)
|
||
|
+ndr_pull_dlong: enum ndr_err_code (struct ndr_pull *, int, int64_t *)
|
||
|
+ndr_pull_double: enum ndr_err_code (struct ndr_pull *, int, double *)
|
||
|
+ndr_pull_enum_uint16: enum ndr_err_code (struct ndr_pull *, int, uint16_t *)
|
||
|
+ndr_pull_enum_uint1632: enum ndr_err_code (struct ndr_pull *, int, uint16_t *)
|
||
|
+ndr_pull_enum_uint32: enum ndr_err_code (struct ndr_pull *, int, uint32_t *)
|
||
|
+ndr_pull_enum_uint8: enum ndr_err_code (struct ndr_pull *, int, uint8_t *)
|
||
|
+ndr_pull_error: enum ndr_err_code (struct ndr_pull *, enum ndr_err_code, const char *, ...)
|
||
|
+ndr_pull_generic_ptr: enum ndr_err_code (struct ndr_pull *, uint32_t *)
|
||
|
+ndr_pull_get_relative_base_offset: uint32_t (struct ndr_pull *)
|
||
|
+ndr_pull_get_switch_value: uint32_t (struct ndr_pull *, const void *)
|
||
|
+ndr_pull_gid_t: enum ndr_err_code (struct ndr_pull *, int, gid_t *)
|
||
|
+ndr_pull_hyper: enum ndr_err_code (struct ndr_pull *, int, uint64_t *)
|
||
|
+ndr_pull_init_blob: struct ndr_pull *(const DATA_BLOB *, TALLOC_CTX *)
|
||
|
+ndr_pull_int16: enum ndr_err_code (struct ndr_pull *, int, int16_t *)
|
||
|
+ndr_pull_int32: enum ndr_err_code (struct ndr_pull *, int, int32_t *)
|
||
|
+ndr_pull_int8: enum ndr_err_code (struct ndr_pull *, int, int8_t *)
|
||
|
+ndr_pull_ipv4address: enum ndr_err_code (struct ndr_pull *, int, const char **)
|
||
|
+ndr_pull_ipv6address: enum ndr_err_code (struct ndr_pull *, int, const char **)
|
||
|
+ndr_pull_ndr_syntax_id: enum ndr_err_code (struct ndr_pull *, int, struct ndr_syntax_id *)
|
||
|
+ndr_pull_netr_SamDatabaseID: enum ndr_err_code (struct ndr_pull *, int, enum netr_SamDatabaseID *)
|
||
|
+ndr_pull_netr_SchannelType: enum ndr_err_code (struct ndr_pull *, int, enum netr_SchannelType *)
|
||
|
+ndr_pull_pointer: enum ndr_err_code (struct ndr_pull *, int, void **)
|
||
|
+ndr_pull_policy_handle: enum ndr_err_code (struct ndr_pull *, int, struct policy_handle *)
|
||
|
+ndr_pull_pop: enum ndr_err_code (struct ndr_pull *)
|
||
|
+ndr_pull_ref_ptr: enum ndr_err_code (struct ndr_pull *, uint32_t *)
|
||
|
+ndr_pull_relative_ptr1: enum ndr_err_code (struct ndr_pull *, const void *, uint32_t)
|
||
|
+ndr_pull_relative_ptr2: enum ndr_err_code (struct ndr_pull *, const void *)
|
||
|
+ndr_pull_relative_ptr_short: enum ndr_err_code (struct ndr_pull *, uint16_t *)
|
||
|
+ndr_pull_restore_relative_base_offset: void (struct ndr_pull *, uint32_t)
|
||
|
+ndr_pull_set_switch_value: enum ndr_err_code (struct ndr_pull *, const void *, uint32_t)
|
||
|
+ndr_pull_setup_relative_base_offset1: enum ndr_err_code (struct ndr_pull *, const void *, uint32_t)
|
||
|
+ndr_pull_setup_relative_base_offset2: enum ndr_err_code (struct ndr_pull *, const void *)
|
||
|
+ndr_pull_steal_switch_value: uint32_t (struct ndr_pull *, const void *)
|
||
|
+ndr_pull_string: enum ndr_err_code (struct ndr_pull *, int, const char **)
|
||
|
+ndr_pull_string_array: enum ndr_err_code (struct ndr_pull *, int, const char ***)
|
||
|
+ndr_pull_struct_blob: enum ndr_err_code (const DATA_BLOB *, TALLOC_CTX *, void *, ndr_pull_flags_fn_t)
|
||
|
+ndr_pull_struct_blob_all: enum ndr_err_code (const DATA_BLOB *, TALLOC_CTX *, void *, ndr_pull_flags_fn_t)
|
||
|
+ndr_pull_struct_blob_all_noalloc: enum ndr_err_code (const DATA_BLOB *, void *, ndr_pull_flags_fn_t)
|
||
|
+ndr_pull_subcontext_end: enum ndr_err_code (struct ndr_pull *, struct ndr_pull *, size_t, ssize_t)
|
||
|
+ndr_pull_subcontext_start: enum ndr_err_code (struct ndr_pull *, struct ndr_pull **, size_t, ssize_t)
|
||
|
+ndr_pull_svcctl_ServerType: enum ndr_err_code (struct ndr_pull *, int, uint32_t *)
|
||
|
+ndr_pull_time_t: enum ndr_err_code (struct ndr_pull *, int, time_t *)
|
||
|
+ndr_pull_timespec: enum ndr_err_code (struct ndr_pull *, int, struct timespec *)
|
||
|
+ndr_pull_timeval: enum ndr_err_code (struct ndr_pull *, int, struct timeval *)
|
||
|
+ndr_pull_trailer_align: enum ndr_err_code (struct ndr_pull *, size_t)
|
||
|
+ndr_pull_udlong: enum ndr_err_code (struct ndr_pull *, int, uint64_t *)
|
||
|
+ndr_pull_udlongr: enum ndr_err_code (struct ndr_pull *, int, uint64_t *)
|
||
|
+ndr_pull_uid_t: enum ndr_err_code (struct ndr_pull *, int, uid_t *)
|
||
|
+ndr_pull_uint16: enum ndr_err_code (struct ndr_pull *, int, uint16_t *)
|
||
|
+ndr_pull_uint1632: enum ndr_err_code (struct ndr_pull *, int, uint16_t *)
|
||
|
+ndr_pull_uint32: enum ndr_err_code (struct ndr_pull *, int, uint32_t *)
|
||
|
+ndr_pull_uint3264: enum ndr_err_code (struct ndr_pull *, int, uint32_t *)
|
||
|
+ndr_pull_uint8: enum ndr_err_code (struct ndr_pull *, int, uint8_t *)
|
||
|
+ndr_pull_union_align: enum ndr_err_code (struct ndr_pull *, size_t)
|
||
|
+ndr_pull_union_blob: enum ndr_err_code (const DATA_BLOB *, TALLOC_CTX *, void *, uint32_t, ndr_pull_flags_fn_t)
|
||
|
+ndr_pull_union_blob_all: enum ndr_err_code (const DATA_BLOB *, TALLOC_CTX *, void *, uint32_t, ndr_pull_flags_fn_t)
|
||
|
+ndr_pull_winreg_Data: enum ndr_err_code (struct ndr_pull *, int, union winreg_Data *)
|
||
|
+ndr_pull_winreg_Data_GPO: enum ndr_err_code (struct ndr_pull *, int, union winreg_Data_GPO *)
|
||
|
+ndr_pull_winreg_Type: enum ndr_err_code (struct ndr_pull *, int, enum winreg_Type *)
|
||
|
+ndr_push_DATA_BLOB: enum ndr_err_code (struct ndr_push *, int, DATA_BLOB)
|
||
|
+ndr_push_GUID: enum ndr_err_code (struct ndr_push *, int, const struct GUID *)
|
||
|
+ndr_push_HRESULT: enum ndr_err_code (struct ndr_push *, int, HRESULT)
|
||
|
+ndr_push_KRB5_EDATA_NTSTATUS: enum ndr_err_code (struct ndr_push *, int, const struct KRB5_EDATA_NTSTATUS *)
|
||
|
+ndr_push_NTSTATUS: enum ndr_err_code (struct ndr_push *, int, NTSTATUS)
|
||
|
+ndr_push_NTTIME: enum ndr_err_code (struct ndr_push *, int, NTTIME)
|
||
|
+ndr_push_NTTIME_1sec: enum ndr_err_code (struct ndr_push *, int, NTTIME)
|
||
|
+ndr_push_NTTIME_hyper: enum ndr_err_code (struct ndr_push *, int, NTTIME)
|
||
|
+ndr_push_WERROR: enum ndr_err_code (struct ndr_push *, int, WERROR)
|
||
|
+ndr_push_align: enum ndr_err_code (struct ndr_push *, size_t)
|
||
|
+ndr_push_array_uint8: enum ndr_err_code (struct ndr_push *, int, const uint8_t *, uint32_t)
|
||
|
+ndr_push_blob: DATA_BLOB (struct ndr_push *)
|
||
|
+ndr_push_bytes: enum ndr_err_code (struct ndr_push *, const uint8_t *, uint32_t)
|
||
|
+ndr_push_charset: enum ndr_err_code (struct ndr_push *, int, const char *, uint32_t, uint8_t, charset_t)
|
||
|
+ndr_push_charset_to_null: enum ndr_err_code (struct ndr_push *, int, const char *, uint32_t, uint8_t, charset_t)
|
||
|
+ndr_push_dlong: enum ndr_err_code (struct ndr_push *, int, int64_t)
|
||
|
+ndr_push_double: enum ndr_err_code (struct ndr_push *, int, double)
|
||
|
+ndr_push_enum_uint16: enum ndr_err_code (struct ndr_push *, int, uint16_t)
|
||
|
+ndr_push_enum_uint1632: enum ndr_err_code (struct ndr_push *, int, uint16_t)
|
||
|
+ndr_push_enum_uint32: enum ndr_err_code (struct ndr_push *, int, uint32_t)
|
||
|
+ndr_push_enum_uint8: enum ndr_err_code (struct ndr_push *, int, uint8_t)
|
||
|
+ndr_push_error: enum ndr_err_code (struct ndr_push *, enum ndr_err_code, const char *, ...)
|
||
|
+ndr_push_expand: enum ndr_err_code (struct ndr_push *, uint32_t)
|
||
|
+ndr_push_full_ptr: enum ndr_err_code (struct ndr_push *, const void *)
|
||
|
+ndr_push_get_relative_base_offset: uint32_t (struct ndr_push *)
|
||
|
+ndr_push_get_switch_value: uint32_t (struct ndr_push *, const void *)
|
||
|
+ndr_push_gid_t: enum ndr_err_code (struct ndr_push *, int, gid_t)
|
||
|
+ndr_push_hyper: enum ndr_err_code (struct ndr_push *, int, uint64_t)
|
||
|
+ndr_push_init_ctx: struct ndr_push *(TALLOC_CTX *)
|
||
|
+ndr_push_int16: enum ndr_err_code (struct ndr_push *, int, int16_t)
|
||
|
+ndr_push_int32: enum ndr_err_code (struct ndr_push *, int, int32_t)
|
||
|
+ndr_push_int8: enum ndr_err_code (struct ndr_push *, int, int8_t)
|
||
|
+ndr_push_ipv4address: enum ndr_err_code (struct ndr_push *, int, const char *)
|
||
|
+ndr_push_ipv6address: enum ndr_err_code (struct ndr_push *, int, const char *)
|
||
|
+ndr_push_ndr_syntax_id: enum ndr_err_code (struct ndr_push *, int, const struct ndr_syntax_id *)
|
||
|
+ndr_push_netr_SamDatabaseID: enum ndr_err_code (struct ndr_push *, int, enum netr_SamDatabaseID)
|
||
|
+ndr_push_netr_SchannelType: enum ndr_err_code (struct ndr_push *, int, enum netr_SchannelType)
|
||
|
+ndr_push_pipe_chunk_trailer: enum ndr_err_code (struct ndr_push *, int, uint32_t)
|
||
|
+ndr_push_pointer: enum ndr_err_code (struct ndr_push *, int, void *)
|
||
|
+ndr_push_policy_handle: enum ndr_err_code (struct ndr_push *, int, const struct policy_handle *)
|
||
|
+ndr_push_ref_ptr: enum ndr_err_code (struct ndr_push *)
|
||
|
+ndr_push_relative_ptr1: enum ndr_err_code (struct ndr_push *, const void *)
|
||
|
+ndr_push_relative_ptr2_end: enum ndr_err_code (struct ndr_push *, const void *)
|
||
|
+ndr_push_relative_ptr2_start: enum ndr_err_code (struct ndr_push *, const void *)
|
||
|
+ndr_push_restore_relative_base_offset: void (struct ndr_push *, uint32_t)
|
||
|
+ndr_push_set_switch_value: enum ndr_err_code (struct ndr_push *, const void *, uint32_t)
|
||
|
+ndr_push_setup_relative_base_offset1: enum ndr_err_code (struct ndr_push *, const void *, uint32_t)
|
||
|
+ndr_push_setup_relative_base_offset2: enum ndr_err_code (struct ndr_push *, const void *)
|
||
|
+ndr_push_short_relative_ptr1: enum ndr_err_code (struct ndr_push *, const void *)
|
||
|
+ndr_push_short_relative_ptr2: enum ndr_err_code (struct ndr_push *, const void *)
|
||
|
+ndr_push_string: enum ndr_err_code (struct ndr_push *, int, const char *)
|
||
|
+ndr_push_string_array: enum ndr_err_code (struct ndr_push *, int, const char **)
|
||
|
+ndr_push_struct_blob: enum ndr_err_code (DATA_BLOB *, TALLOC_CTX *, const void *, ndr_push_flags_fn_t)
|
||
|
+ndr_push_struct_into_fixed_blob: enum ndr_err_code (DATA_BLOB *, const void *, ndr_push_flags_fn_t)
|
||
|
+ndr_push_subcontext_end: enum ndr_err_code (struct ndr_push *, struct ndr_push *, size_t, ssize_t)
|
||
|
+ndr_push_subcontext_start: enum ndr_err_code (struct ndr_push *, struct ndr_push **, size_t, ssize_t)
|
||
|
+ndr_push_svcctl_ServerType: enum ndr_err_code (struct ndr_push *, int, uint32_t)
|
||
|
+ndr_push_time_t: enum ndr_err_code (struct ndr_push *, int, time_t)
|
||
|
+ndr_push_timespec: enum ndr_err_code (struct ndr_push *, int, const struct timespec *)
|
||
|
+ndr_push_timeval: enum ndr_err_code (struct ndr_push *, int, const struct timeval *)
|
||
|
+ndr_push_trailer_align: enum ndr_err_code (struct ndr_push *, size_t)
|
||
|
+ndr_push_udlong: enum ndr_err_code (struct ndr_push *, int, uint64_t)
|
||
|
+ndr_push_udlongr: enum ndr_err_code (struct ndr_push *, int, uint64_t)
|
||
|
+ndr_push_uid_t: enum ndr_err_code (struct ndr_push *, int, uid_t)
|
||
|
+ndr_push_uint16: enum ndr_err_code (struct ndr_push *, int, uint16_t)
|
||
|
+ndr_push_uint1632: enum ndr_err_code (struct ndr_push *, int, uint16_t)
|
||
|
+ndr_push_uint32: enum ndr_err_code (struct ndr_push *, int, uint32_t)
|
||
|
+ndr_push_uint3264: enum ndr_err_code (struct ndr_push *, int, uint32_t)
|
||
|
+ndr_push_uint8: enum ndr_err_code (struct ndr_push *, int, uint8_t)
|
||
|
+ndr_push_union_align: enum ndr_err_code (struct ndr_push *, size_t)
|
||
|
+ndr_push_union_blob: enum ndr_err_code (DATA_BLOB *, TALLOC_CTX *, void *, uint32_t, ndr_push_flags_fn_t)
|
||
|
+ndr_push_unique_ptr: enum ndr_err_code (struct ndr_push *, const void *)
|
||
|
+ndr_push_winreg_Data: enum ndr_err_code (struct ndr_push *, int, const union winreg_Data *)
|
||
|
+ndr_push_winreg_Data_GPO: enum ndr_err_code (struct ndr_push *, int, const union winreg_Data_GPO *)
|
||
|
+ndr_push_winreg_Type: enum ndr_err_code (struct ndr_push *, int, enum winreg_Type)
|
||
|
+ndr_push_zero: enum ndr_err_code (struct ndr_push *, uint32_t)
|
||
|
+ndr_set_flags: void (uint32_t *, uint32_t)
|
||
|
+ndr_size_DATA_BLOB: uint32_t (int, const DATA_BLOB *, int)
|
||
|
+ndr_size_GUID: size_t (const struct GUID *, int)
|
||
|
+ndr_size_string: uint32_t (int, const char * const *, int)
|
||
|
+ndr_size_string_array: size_t (const char **, uint32_t, int)
|
||
|
+ndr_size_struct: size_t (const void *, int, ndr_push_flags_fn_t)
|
||
|
+ndr_size_union: size_t (const void *, int, uint32_t, ndr_push_flags_fn_t)
|
||
|
+ndr_size_winreg_Data_GPO: size_t (const union winreg_Data_GPO *, uint32_t, int)
|
||
|
+ndr_string_array_size: size_t (struct ndr_push *, const char *)
|
||
|
+ndr_string_length: uint32_t (const void *, uint32_t)
|
||
|
+ndr_syntax_id_equal: bool (const struct ndr_syntax_id *, const struct ndr_syntax_id *)
|
||
|
+ndr_syntax_id_from_string: bool (const char *, struct ndr_syntax_id *)
|
||
|
+ndr_syntax_id_null: uuid = {time_low = 0, time_mid = 0, time_hi_and_version = 0, clock_seq = "\000", node = "\000\000\000\000\000"}, if_version = 0
|
||
|
+ndr_syntax_id_to_string: char *(TALLOC_CTX *, const struct ndr_syntax_id *)
|
||
|
+ndr_token_peek: uint32_t (struct ndr_token_list *, const void *)
|
||
|
+ndr_token_retrieve: enum ndr_err_code (struct ndr_token_list *, const void *, uint32_t *)
|
||
|
+ndr_token_retrieve_cmp_fn: enum ndr_err_code (struct ndr_token_list *, const void *, uint32_t *, comparison_fn_t, bool)
|
||
|
+ndr_token_store: enum ndr_err_code (TALLOC_CTX *, struct ndr_token_list *, const void *, uint32_t)
|
||
|
+ndr_transfer_syntax_ndr: uuid = {time_low = 2324192516, time_mid = 7403, time_hi_and_version = 4553, clock_seq = "\237\350", node = "\b\000+\020H`"}, if_version = 2
|
||
|
+ndr_transfer_syntax_ndr64: uuid = {time_low = 1903232307, time_mid = 48826, time_hi_and_version = 18743, clock_seq = "\203\031", node = "\265\333\357\234\314\066"}, if_version = 1
|
||
|
+ndr_zero_memory: void (void *, size_t)
|
||
|
diff --git a/librpc/ndr/libndr.h b/librpc/ndr/libndr.h
|
||
|
index c31496fe1dc..1f0f3c227cf 100644
|
||
|
--- a/librpc/ndr/libndr.h
|
||
|
+++ b/librpc/ndr/libndr.h
|
||
|
@@ -493,6 +493,7 @@ void ndr_print_dom_sid0(struct ndr_print *ndr, const char *name, const struct do
|
||
|
size_t ndr_size_dom_sid0(const struct dom_sid *sid, int flags);
|
||
|
void ndr_print_GUID(struct ndr_print *ndr, const char *name, const struct GUID *guid);
|
||
|
void ndr_print_sockaddr_storage(struct ndr_print *ndr, const char *name, const struct sockaddr_storage *ss);
|
||
|
+void ndr_zero_memory(void *ptr, size_t len);
|
||
|
bool ndr_syntax_id_equal(const struct ndr_syntax_id *i1, const struct ndr_syntax_id *i2);
|
||
|
char *ndr_syntax_id_to_string(TALLOC_CTX *mem_ctx, const struct ndr_syntax_id *id);
|
||
|
bool ndr_syntax_id_from_string(const char *s, struct ndr_syntax_id *id);
|
||
|
diff --git a/librpc/ndr/util.c b/librpc/ndr/util.c
|
||
|
index b2df28dde09..0eb7eba9e5e 100644
|
||
|
--- a/librpc/ndr/util.c
|
||
|
+++ b/librpc/ndr/util.c
|
||
|
@@ -29,3 +29,8 @@ _PUBLIC_ void ndr_print_sockaddr_storage(struct ndr_print *ndr, const char *name
|
||
|
char addr[INET6_ADDRSTRLEN];
|
||
|
ndr->print(ndr, "%-25s: %s", name, print_sockaddr(addr, sizeof(addr), ss));
|
||
|
}
|
||
|
+
|
||
|
+_PUBLIC_ void ndr_zero_memory(void *ptr, size_t len)
|
||
|
+{
|
||
|
+ memset_s(ptr, len, 0, len);
|
||
|
+}
|
||
|
diff --git a/librpc/wscript_build b/librpc/wscript_build
|
||
|
index 9669dfce2bf..8e113c422b2 100644
|
||
|
--- a/librpc/wscript_build
|
||
|
+++ b/librpc/wscript_build
|
||
|
@@ -725,7 +725,7 @@ bld.SAMBA_LIBRARY('ndr',
|
||
|
public_deps='samba-errors talloc samba-util util_str_hex',
|
||
|
public_headers='gen_ndr/misc.h gen_ndr/ndr_misc.h ndr/libndr.h:ndr.h',
|
||
|
header_path= [('*gen_ndr*', 'gen_ndr')],
|
||
|
- vnum='0.1.2',
|
||
|
+ vnum='0.2.0',
|
||
|
abi_directory='ABI',
|
||
|
abi_match='ndr_* GUID_*',
|
||
|
)
|
||
|
--
|
||
|
2.20.1
|
||
|
|
||
|
|
||
|
From 0923cd3b6d50355a292bf0bc1012e49f71d15683 Mon Sep 17 00:00:00 2001
|
||
|
From: Andreas Schneider <asn@samba.org>
|
||
|
Date: Wed, 13 Feb 2019 10:38:02 +0100
|
||
|
Subject: [PATCH 2/5] librpc:ndr: Add NDR_ZERO_STRUCT(P) macros
|
||
|
|
||
|
BUG: https://bugzilla.samba.org/show_bug.cgi?id=13778
|
||
|
|
||
|
Signed-off-by: Andreas Schneider <asn@samba.org>
|
||
|
(cherry picked from commit e3c49978057e3b81c69d1dfbe65182fd91ad79d4)
|
||
|
---
|
||
|
librpc/ndr/libndr.h | 7 +++++++
|
||
|
1 file changed, 7 insertions(+)
|
||
|
|
||
|
diff --git a/librpc/ndr/libndr.h b/librpc/ndr/libndr.h
|
||
|
index 1f0f3c227cf..9c403319b6e 100644
|
||
|
--- a/librpc/ndr/libndr.h
|
||
|
+++ b/librpc/ndr/libndr.h
|
||
|
@@ -411,6 +411,13 @@ enum ndr_compression_alg {
|
||
|
if (unlikely(!(s))) return ndr_push_error(ndr, NDR_ERR_ALLOC, "push alloc %s failed: %s\n", # s, __location__); \
|
||
|
} while (0)
|
||
|
|
||
|
+#define NDR_ZERO_STRUCT(x) ndr_zero_memory(&(x), sizeof(x))
|
||
|
+#define NDR_ZERO_STRUCTP(x) do { \
|
||
|
+ if ((x) != NULL) { \
|
||
|
+ ndr_zero_memory((x), sizeof(*(x))); \
|
||
|
+ } \
|
||
|
+} while(0)
|
||
|
+
|
||
|
/* these are used when generic fn pointers are needed for ndr push/pull fns */
|
||
|
typedef enum ndr_err_code (*ndr_push_flags_fn_t)(struct ndr_push *, int ndr_flags, const void *);
|
||
|
typedef enum ndr_err_code (*ndr_pull_flags_fn_t)(struct ndr_pull *, int ndr_flags, void *);
|
||
|
--
|
||
|
2.20.1
|
||
|
|
||
|
|
||
|
From 2580d726f35f1d8e323d3d9cb82dd70b22d18ba0 Mon Sep 17 00:00:00 2001
|
||
|
From: Andreas Schneider <asn@samba.org>
|
||
|
Date: Wed, 13 Feb 2019 10:41:19 +0100
|
||
|
Subject: [PATCH 3/5] pidl: Use NDR_ZERO_STRUCT(P) macros
|
||
|
|
||
|
BUG: https://bugzilla.samba.org/show_bug.cgi?id=13778
|
||
|
|
||
|
Signed-off-by: Andreas Schneider <asn@samba.org>
|
||
|
(cherry picked from commit b5a3f338d9840a1569da65f5ed784a62ed2094a7)
|
||
|
---
|
||
|
pidl/lib/Parse/Pidl/Samba3/ServerNDR.pm | 2 +-
|
||
|
pidl/lib/Parse/Pidl/Samba4/COM/Proxy.pm | 2 +-
|
||
|
pidl/lib/Parse/Pidl/Samba4/NDR/Client.pm | 6 +++---
|
||
|
pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm | 6 +++---
|
||
|
4 files changed, 8 insertions(+), 8 deletions(-)
|
||
|
|
||
|
diff --git a/pidl/lib/Parse/Pidl/Samba3/ServerNDR.pm b/pidl/lib/Parse/Pidl/Samba3/ServerNDR.pm
|
||
|
index c87d17a5a78..fa7303b8543 100644
|
||
|
--- a/pidl/lib/Parse/Pidl/Samba3/ServerNDR.pm
|
||
|
+++ b/pidl/lib/Parse/Pidl/Samba3/ServerNDR.pm
|
||
|
@@ -103,7 +103,7 @@ sub CallWithStruct($$$$$$)
|
||
|
if (grep(/out/, @{$_->{DIRECTION}})) { $hasout = 1; }
|
||
|
}
|
||
|
|
||
|
- pidl "ZERO_STRUCT(r->out);" if ($hasout);
|
||
|
+ pidl "NDR_ZERO_STRUCT(r->out);" if ($hasout);
|
||
|
|
||
|
foreach (@{$fn->{ELEMENTS}}) {
|
||
|
my @dir = @{$_->{DIRECTION}};
|
||
|
diff --git a/pidl/lib/Parse/Pidl/Samba4/COM/Proxy.pm b/pidl/lib/Parse/Pidl/Samba4/COM/Proxy.pm
|
||
|
index 35e6e3f0d19..de050e8f8c6 100644
|
||
|
--- a/pidl/lib/Parse/Pidl/Samba4/COM/Proxy.pm
|
||
|
+++ b/pidl/lib/Parse/Pidl/Samba4/COM/Proxy.pm
|
||
|
@@ -101,7 +101,7 @@ static $tn dcom_proxy_$interface->{NAME}_$name(struct $interface->{NAME} *d, TAL
|
||
|
return status;
|
||
|
}
|
||
|
|
||
|
- ZERO_STRUCT(r.in.ORPCthis);
|
||
|
+ NDR_ZERO_STRUCT(r.in.ORPCthis);
|
||
|
r.in.ORPCthis.version.MajorVersion = COM_MAJOR_VERSION;
|
||
|
r.in.ORPCthis.version.MinorVersion = COM_MINOR_VERSION;
|
||
|
";
|
||
|
diff --git a/pidl/lib/Parse/Pidl/Samba4/NDR/Client.pm b/pidl/lib/Parse/Pidl/Samba4/NDR/Client.pm
|
||
|
index 040cd5a4bd3..734e86dd183 100644
|
||
|
--- a/pidl/lib/Parse/Pidl/Samba4/NDR/Client.pm
|
||
|
+++ b/pidl/lib/Parse/Pidl/Samba4/NDR/Client.pm
|
||
|
@@ -496,7 +496,7 @@ sub ParseFunction_Send($$$$)
|
||
|
|
||
|
if (defined($fn->{RETURN_TYPE})) {
|
||
|
$self->pidl("/* Result */");
|
||
|
- $self->pidl("ZERO_STRUCT(state->orig.out.result);");
|
||
|
+ $self->pidl("NDR_ZERO_STRUCT(state->orig.out.result);");
|
||
|
$self->pidl("");
|
||
|
}
|
||
|
|
||
|
@@ -585,7 +585,7 @@ sub ParseFunction_Done($$$$)
|
||
|
}
|
||
|
|
||
|
$self->pidl("/* Reset temporary structure */");
|
||
|
- $self->pidl("ZERO_STRUCT(state->tmp);");
|
||
|
+ $self->pidl("NDR_ZERO_STRUCT(state->tmp);");
|
||
|
$self->pidl("");
|
||
|
|
||
|
$self->pidl("tevent_req_done(req);");
|
||
|
@@ -698,7 +698,7 @@ sub ParseFunction_Sync($$$$)
|
||
|
|
||
|
if (defined($fn->{RETURN_TYPE})) {
|
||
|
$self->pidl("/* Result */");
|
||
|
- $self->pidl("ZERO_STRUCT(r.out.result);");
|
||
|
+ $self->pidl("NDR_ZERO_STRUCT(r.out.result);");
|
||
|
$self->pidl("");
|
||
|
}
|
||
|
|
||
|
diff --git a/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm b/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm
|
||
|
index eae58a9a432..432e52f89c4 100644
|
||
|
--- a/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm
|
||
|
+++ b/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm
|
||
|
@@ -1134,7 +1134,7 @@ sub ParseElementPullLevel
|
||
|
if (has_property($e, "skip") or has_property($e, "skip_noinit")) {
|
||
|
$self->pidl("/* [skip] '$var_name' */");
|
||
|
if (not has_property($e, "skip_noinit")) {
|
||
|
- $self->pidl("ZERO_STRUCT($var_name);");
|
||
|
+ $self->pidl("NDR_ZERO_STRUCT($var_name);");
|
||
|
}
|
||
|
return;
|
||
|
}
|
||
|
@@ -2551,7 +2551,7 @@ sub ParseFunctionPull($$)
|
||
|
# out to be too tricky (tridge)
|
||
|
foreach my $e (@{$fn->{ELEMENTS}}) {
|
||
|
next unless grep(/out/, @{$e->{DIRECTION}});
|
||
|
- $self->pidl("ZERO_STRUCT(r->out);");
|
||
|
+ $self->pidl("NDR_ZERO_STRUCT(r->out);");
|
||
|
$self->pidl("");
|
||
|
last;
|
||
|
}
|
||
|
@@ -2600,7 +2600,7 @@ sub ParseFunctionPull($$)
|
||
|
if (grep(/in/, @{$e->{DIRECTION}})) {
|
||
|
$self->pidl("*r->out.$e->{NAME} = *r->in.$e->{NAME};");
|
||
|
} else {
|
||
|
- $self->pidl("ZERO_STRUCTP(r->out.$e->{NAME});");
|
||
|
+ $self->pidl("NDR_ZERO_STRUCTP(r->out.$e->{NAME});");
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
--
|
||
|
2.20.1
|
||
|
|
||
|
|
||
|
From aaaa4cbd6194cc2cb4d16d08545ef6c15e84e9c3 Mon Sep 17 00:00:00 2001
|
||
|
From: Andreas Schneider <asn@samba.org>
|
||
|
Date: Wed, 6 Feb 2019 16:05:48 +0100
|
||
|
Subject: [PATCH 4/5] lib:util: Move discard_const(_p) to own header for
|
||
|
libndr.h
|
||
|
|
||
|
BUG: https://bugzilla.samba.org/show_bug.cgi?id=13778
|
||
|
|
||
|
Signed-off-by: Andreas Schneider <asn@samba.org>
|
||
|
Reviewed-by: Guenther Deschner <gd@samba.org>
|
||
|
(cherry picked from commit 69fd926b8a8c601c77006bc3cd156ce189464d45)
|
||
|
---
|
||
|
lib/util/discard.h | 51 +++++++++++++++++++++++++++++++++
|
||
|
lib/util/memory.h | 27 -----------------
|
||
|
lib/util/samba_util.h | 1 +
|
||
|
lib/util/wscript_build | 2 +-
|
||
|
librpc/ndr/libndr.h | 2 +-
|
||
|
source3/libsmb/samlogon_cache.c | 1 +
|
||
|
6 files changed, 55 insertions(+), 29 deletions(-)
|
||
|
create mode 100644 lib/util/discard.h
|
||
|
|
||
|
diff --git a/lib/util/discard.h b/lib/util/discard.h
|
||
|
new file mode 100644
|
||
|
index 00000000000..d2b74ac989c
|
||
|
--- /dev/null
|
||
|
+++ b/lib/util/discard.h
|
||
|
@@ -0,0 +1,51 @@
|
||
|
+/*
|
||
|
+ Unix SMB/CIFS implementation.
|
||
|
+ Samba utility functions
|
||
|
+ Copyright (C) Andrew Tridgell 1992-1999
|
||
|
+ Copyright (C) Jelmer Vernooij <jelmer@samba.org> 2008
|
||
|
+
|
||
|
+ This program is free software; you can redistribute it and/or modify
|
||
|
+ it under the terms of the GNU General Public License as published by
|
||
|
+ the Free Software Foundation; either version 3 of the License, or
|
||
|
+ (at your option) any later version.
|
||
|
+
|
||
|
+ This program is distributed in the hope that it will be useful,
|
||
|
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
|
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||
|
+ GNU General Public License for more details.
|
||
|
+
|
||
|
+ You should have received a copy of the GNU General Public License
|
||
|
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||
|
+*/
|
||
|
+
|
||
|
+#ifndef _SAMBA_DISCARD_H_
|
||
|
+#define _SAMBA_DISCARD_H_
|
||
|
+
|
||
|
+/**
|
||
|
+ this is a warning hack. The idea is to use this everywhere that we
|
||
|
+ get the "discarding const" warning from gcc. That doesn't actually
|
||
|
+ fix the problem of course, but it means that when we do get to
|
||
|
+ cleaning them up we can do it by searching the code for
|
||
|
+ discard_const.
|
||
|
+
|
||
|
+ It also means that other error types aren't as swamped by the noise
|
||
|
+ of hundreds of const warnings, so we are more likely to notice when
|
||
|
+ we get new errors.
|
||
|
+
|
||
|
+ Please only add more uses of this macro when you find it
|
||
|
+ _really_ hard to fix const warnings. Our aim is to eventually use
|
||
|
+ this function in only a very few places.
|
||
|
+
|
||
|
+ Also, please call this via the discard_const_p() macro interface, as that
|
||
|
+ makes the return type safe.
|
||
|
+*/
|
||
|
+#ifndef discard_const
|
||
|
+#define discard_const(ptr) ((void *)((uintptr_t)(ptr)))
|
||
|
+#endif
|
||
|
+
|
||
|
+/** Type-safe version of discard_const */
|
||
|
+#ifndef discard_const_p
|
||
|
+#define discard_const_p(type, ptr) ((type *)discard_const(ptr))
|
||
|
+#endif
|
||
|
+
|
||
|
+#endif /* _SAMBA_DISCARD_H_ */
|
||
|
diff --git a/lib/util/memory.h b/lib/util/memory.h
|
||
|
index 3278f6b3c21..0e151cc5f66 100644
|
||
|
--- a/lib/util/memory.h
|
||
|
+++ b/lib/util/memory.h
|
||
|
@@ -94,31 +94,4 @@
|
||
|
#define PTR_DIFF(p1,p2) ((ptrdiff_t)(((const char *)(p1)) - (const char *)(p2)))
|
||
|
#endif
|
||
|
|
||
|
-/**
|
||
|
- this is a warning hack. The idea is to use this everywhere that we
|
||
|
- get the "discarding const" warning from gcc. That doesn't actually
|
||
|
- fix the problem of course, but it means that when we do get to
|
||
|
- cleaning them up we can do it by searching the code for
|
||
|
- discard_const.
|
||
|
-
|
||
|
- It also means that other error types aren't as swamped by the noise
|
||
|
- of hundreds of const warnings, so we are more likely to notice when
|
||
|
- we get new errors.
|
||
|
-
|
||
|
- Please only add more uses of this macro when you find it
|
||
|
- _really_ hard to fix const warnings. Our aim is to eventually use
|
||
|
- this function in only a very few places.
|
||
|
-
|
||
|
- Also, please call this via the discard_const_p() macro interface, as that
|
||
|
- makes the return type safe.
|
||
|
-*/
|
||
|
-#ifndef discard_const
|
||
|
-#define discard_const(ptr) ((void *)((uintptr_t)(ptr)))
|
||
|
-#endif
|
||
|
-
|
||
|
-/** Type-safe version of discard_const */
|
||
|
-#ifndef discard_const_p
|
||
|
-#define discard_const_p(type, ptr) ((type *)discard_const(ptr))
|
||
|
-#endif
|
||
|
-
|
||
|
#endif /* _SAMBA_MEMORY_H_ */
|
||
|
diff --git a/lib/util/samba_util.h b/lib/util/samba_util.h
|
||
|
index 7b96a595d43..11c95b5bfe3 100644
|
||
|
--- a/lib/util/samba_util.h
|
||
|
+++ b/lib/util/samba_util.h
|
||
|
@@ -54,6 +54,7 @@ extern const char *panic_action;
|
||
|
#endif
|
||
|
|
||
|
#include "lib/util/memory.h"
|
||
|
+#include "lib/util/discard.h"
|
||
|
|
||
|
#include "fault.h"
|
||
|
|
||
|
diff --git a/lib/util/wscript_build b/lib/util/wscript_build
|
||
|
index 8fc402062fb..9c9652b26cd 100644
|
||
|
--- a/lib/util/wscript_build
|
||
|
+++ b/lib/util/wscript_build
|
||
|
@@ -126,7 +126,7 @@ else:
|
||
|
tevent_debug.c memcache.c unix_match.c tfork.c''',
|
||
|
deps='samba-util-core DYNCONFIG close-low-fd tiniparser genrand util_str_hex',
|
||
|
public_deps='talloc tevent execinfo pthread LIBCRYPTO charset util_setid',
|
||
|
- public_headers='debug.h attr.h byteorder.h data_blob.h memory.h safe_string.h time.h talloc_stack.h string_wrappers.h idtree.h idtree_random.h blocking.h signal.h substitute.h fault.h genrand.h tfork.h',
|
||
|
+ public_headers='debug.h attr.h byteorder.h data_blob.h discard.h memory.h safe_string.h time.h talloc_stack.h string_wrappers.h idtree.h idtree_random.h blocking.h signal.h substitute.h fault.h genrand.h tfork.h',
|
||
|
header_path= [ ('dlinklist.h samba_util.h', '.'), ('*', 'util') ],
|
||
|
local_include=False,
|
||
|
vnum='0.0.1',
|
||
|
diff --git a/librpc/ndr/libndr.h b/librpc/ndr/libndr.h
|
||
|
index 9c403319b6e..8a15fccfe09 100644
|
||
|
--- a/librpc/ndr/libndr.h
|
||
|
+++ b/librpc/ndr/libndr.h
|
||
|
@@ -26,7 +26,7 @@
|
||
|
#define __LIBNDR_H__
|
||
|
|
||
|
#include <talloc.h>
|
||
|
-#include "../lib/util/memory.h" /* for discard_const */
|
||
|
+#include "../lib/util/discard.h" /* for discard_const */
|
||
|
#include "../lib/util/byteorder.h"
|
||
|
#include "../lib/util/data_blob.h"
|
||
|
#include "../lib/util/time.h"
|
||
|
diff --git a/source3/libsmb/samlogon_cache.c b/source3/libsmb/samlogon_cache.c
|
||
|
index 494eb10a6a8..a9ddaab1a41 100644
|
||
|
--- a/source3/libsmb/samlogon_cache.c
|
||
|
+++ b/source3/libsmb/samlogon_cache.c
|
||
|
@@ -27,6 +27,7 @@
|
||
|
#include "system/time.h"
|
||
|
#include "lib/util/debug.h"
|
||
|
#include "lib/util/talloc_stack.h"
|
||
|
+#include "lib/util/memory.h" /* for SAFE_FREE() */
|
||
|
#include "source3/lib/util_path.h"
|
||
|
#include "librpc/gen_ndr/ndr_krb5pac.h"
|
||
|
#include "../libcli/security/security.h"
|
||
|
--
|
||
|
2.20.1
|
||
|
|
||
|
|
||
|
From 7f05bfa0d0f4e970e655d94ec73582ce28a4b436 Mon Sep 17 00:00:00 2001
|
||
|
From: Andreas Schneider <asn@samba.org>
|
||
|
Date: Wed, 13 Feb 2019 10:44:45 +0100
|
||
|
Subject: [PATCH 5/5] waf: Do not install internal header
|
||
|
|
||
|
We should not install header files without an public API:
|
||
|
|
||
|
- memory.h
|
||
|
- safe_strings.h
|
||
|
- talloc_stack.h
|
||
|
|
||
|
BUG: https://bugzilla.samba.org/show_bug.cgi?id=13778
|
||
|
|
||
|
Signed-off-by: Andreas Schneider <asn@samba.org>
|
||
|
(cherry picked from commit a68287f7f978b94b4a63081a71c56f92be5b1efe)
|
||
|
---
|
||
|
lib/util/wscript_build | 18 +++++++++++++++++-
|
||
|
1 file changed, 17 insertions(+), 1 deletion(-)
|
||
|
|
||
|
diff --git a/lib/util/wscript_build b/lib/util/wscript_build
|
||
|
index 9c9652b26cd..e3a004fa3c6 100644
|
||
|
--- a/lib/util/wscript_build
|
||
|
+++ b/lib/util/wscript_build
|
||
|
@@ -126,7 +126,23 @@ else:
|
||
|
tevent_debug.c memcache.c unix_match.c tfork.c''',
|
||
|
deps='samba-util-core DYNCONFIG close-low-fd tiniparser genrand util_str_hex',
|
||
|
public_deps='talloc tevent execinfo pthread LIBCRYPTO charset util_setid',
|
||
|
- public_headers='debug.h attr.h byteorder.h data_blob.h discard.h memory.h safe_string.h time.h talloc_stack.h string_wrappers.h idtree.h idtree_random.h blocking.h signal.h substitute.h fault.h genrand.h tfork.h',
|
||
|
+ public_headers='''
|
||
|
+ attr.h
|
||
|
+ byteorder.h
|
||
|
+ data_blob.h
|
||
|
+ debug.h
|
||
|
+ discard.h
|
||
|
+ time.h
|
||
|
+ string_wrappers.h
|
||
|
+ idtree.h
|
||
|
+ idtree_random.h
|
||
|
+ blocking.h
|
||
|
+ signal.h
|
||
|
+ substitute.h
|
||
|
+ fault.h
|
||
|
+ genrand.h
|
||
|
+ tfork.h
|
||
|
+ ''',
|
||
|
header_path= [ ('dlinklist.h samba_util.h', '.'), ('*', 'util') ],
|
||
|
local_include=False,
|
||
|
vnum='0.0.1',
|
||
|
--
|
||
|
2.20.1
|
||
|
|