[PATCH] Fix memory leak when destructors reparent talloc child.

Jeremy Allison jra at samba.org
Thu May 5 17:03:54 UTC 2016


On Thu, May 05, 2016 at 11:26:53AM +0200, Stefan Metzmacher wrote:
> Am 05.05.2016 um 00:24 schrieb Jeremy Allison:
> > Great catch from Saji VR <saji.vr at nutanix.com> !
> > 
> > Can I get a second Team reviewer ?
> 
> As this is already in master can someone please
> push this version bump?

Pushed, thanks !

> From 96ec3f07d80d8c24ea8d9b65e4f4680397887f90 Mon Sep 17 00:00:00 2001
> From: Stefan Metzmacher <metze at samba.org>
> Date: Thu, 5 May 2016 10:18:57 +0200
> Subject: [PATCH] talloc: version 2.1.7
> 
> * Fix memory leak when destructors reparent children. (bug #11901)
> 
> Signed-off-by: Stefan Metzmacher <metze at samba.org>
> ---
>  lib/talloc/ABI/pytalloc-util-2.1.7.sigs     | 13 ++++++
>  lib/talloc/ABI/pytalloc-util.py3-2.1.7.sigs | 12 ++++++
>  lib/talloc/ABI/talloc-2.1.7.sigs            | 65 +++++++++++++++++++++++++++++
>  lib/talloc/wscript                          |  2 +-
>  4 files changed, 91 insertions(+), 1 deletion(-)
>  create mode 100644 lib/talloc/ABI/pytalloc-util-2.1.7.sigs
>  create mode 100644 lib/talloc/ABI/pytalloc-util.py3-2.1.7.sigs
>  create mode 100644 lib/talloc/ABI/talloc-2.1.7.sigs
> 
> diff --git a/lib/talloc/ABI/pytalloc-util-2.1.7.sigs b/lib/talloc/ABI/pytalloc-util-2.1.7.sigs
> new file mode 100644
> index 0000000..666fec0
> --- /dev/null
> +++ b/lib/talloc/ABI/pytalloc-util-2.1.7.sigs
> @@ -0,0 +1,13 @@
> +_pytalloc_get_mem_ctx: TALLOC_CTX *(PyObject *)
> +_pytalloc_get_ptr: void *(PyObject *)
> +_pytalloc_get_type: void *(PyObject *, const char *)
> +pytalloc_BaseObject_PyType_Ready: int (PyTypeObject *)
> +pytalloc_BaseObject_check: int (PyObject *)
> +pytalloc_BaseObject_size: size_t (void)
> +pytalloc_CObject_FromTallocPtr: PyObject *(void *)
> +pytalloc_Check: int (PyObject *)
> +pytalloc_GetBaseObjectType: PyTypeObject *(void)
> +pytalloc_GetObjectType: PyTypeObject *(void)
> +pytalloc_reference_ex: PyObject *(PyTypeObject *, TALLOC_CTX *, void *)
> +pytalloc_steal: PyObject *(PyTypeObject *, void *)
> +pytalloc_steal_ex: PyObject *(PyTypeObject *, TALLOC_CTX *, void *)
> diff --git a/lib/talloc/ABI/pytalloc-util.py3-2.1.7.sigs b/lib/talloc/ABI/pytalloc-util.py3-2.1.7.sigs
> new file mode 100644
> index 0000000..4410f11
> --- /dev/null
> +++ b/lib/talloc/ABI/pytalloc-util.py3-2.1.7.sigs
> @@ -0,0 +1,12 @@
> +_pytalloc_get_mem_ctx: TALLOC_CTX *(PyObject *)
> +_pytalloc_get_ptr: void *(PyObject *)
> +_pytalloc_get_type: void *(PyObject *, const char *)
> +pytalloc_BaseObject_PyType_Ready: int (PyTypeObject *)
> +pytalloc_BaseObject_check: int (PyObject *)
> +pytalloc_BaseObject_size: size_t (void)
> +pytalloc_Check: int (PyObject *)
> +pytalloc_GetBaseObjectType: PyTypeObject *(void)
> +pytalloc_GetObjectType: PyTypeObject *(void)
> +pytalloc_reference_ex: PyObject *(PyTypeObject *, TALLOC_CTX *, void *)
> +pytalloc_steal: PyObject *(PyTypeObject *, void *)
> +pytalloc_steal_ex: PyObject *(PyTypeObject *, TALLOC_CTX *, void *)
> diff --git a/lib/talloc/ABI/talloc-2.1.7.sigs b/lib/talloc/ABI/talloc-2.1.7.sigs
> new file mode 100644
> index 0000000..9969ce3
> --- /dev/null
> +++ b/lib/talloc/ABI/talloc-2.1.7.sigs
> @@ -0,0 +1,65 @@
> +_talloc: void *(const void *, size_t)
> +_talloc_array: void *(const void *, size_t, unsigned int, const char *)
> +_talloc_free: int (void *, const char *)
> +_talloc_get_type_abort: void *(const void *, const char *, const char *)
> +_talloc_memdup: void *(const void *, const void *, size_t, const char *)
> +_talloc_move: void *(const void *, const void *)
> +_talloc_pooled_object: void *(const void *, size_t, const char *, unsigned int, size_t)
> +_talloc_realloc: void *(const void *, void *, size_t, const char *)
> +_talloc_realloc_array: void *(const void *, void *, size_t, unsigned int, const char *)
> +_talloc_reference_loc: void *(const void *, const void *, const char *)
> +_talloc_set_destructor: void (const void *, int (*)(void *))
> +_talloc_steal_loc: void *(const void *, const void *, const char *)
> +_talloc_zero: void *(const void *, size_t, const char *)
> +_talloc_zero_array: void *(const void *, size_t, unsigned int, const char *)
> +talloc_asprintf: char *(const void *, const char *, ...)
> +talloc_asprintf_append: char *(char *, const char *, ...)
> +talloc_asprintf_append_buffer: char *(char *, const char *, ...)
> +talloc_autofree_context: void *(void)
> +talloc_check_name: void *(const void *, const char *)
> +talloc_disable_null_tracking: void (void)
> +talloc_enable_leak_report: void (void)
> +talloc_enable_leak_report_full: void (void)
> +talloc_enable_null_tracking: void (void)
> +talloc_enable_null_tracking_no_autofree: void (void)
> +talloc_find_parent_byname: void *(const void *, const char *)
> +talloc_free_children: void (void *)
> +talloc_get_name: const char *(const void *)
> +talloc_get_size: size_t (const void *)
> +talloc_increase_ref_count: int (const void *)
> +talloc_init: void *(const char *, ...)
> +talloc_is_parent: int (const void *, const void *)
> +talloc_named: void *(const void *, size_t, const char *, ...)
> +talloc_named_const: void *(const void *, size_t, const char *)
> +talloc_parent: void *(const void *)
> +talloc_parent_name: const char *(const void *)
> +talloc_pool: void *(const void *, size_t)
> +talloc_realloc_fn: void *(const void *, void *, size_t)
> +talloc_reference_count: size_t (const void *)
> +talloc_reparent: void *(const void *, const void *, const void *)
> +talloc_report: void (const void *, FILE *)
> +talloc_report_depth_cb: void (const void *, int, int, void (*)(const void *, int, int, int, void *), void *)
> +talloc_report_depth_file: void (const void *, int, int, FILE *)
> +talloc_report_full: void (const void *, FILE *)
> +talloc_set_abort_fn: void (void (*)(const char *))
> +talloc_set_log_fn: void (void (*)(const char *))
> +talloc_set_log_stderr: void (void)
> +talloc_set_memlimit: int (const void *, size_t)
> +talloc_set_name: const char *(const void *, const char *, ...)
> +talloc_set_name_const: void (const void *, const char *)
> +talloc_show_parents: void (const void *, FILE *)
> +talloc_strdup: char *(const void *, const char *)
> +talloc_strdup_append: char *(char *, const char *)
> +talloc_strdup_append_buffer: char *(char *, const char *)
> +talloc_strndup: char *(const void *, const char *, size_t)
> +talloc_strndup_append: char *(char *, const char *, size_t)
> +talloc_strndup_append_buffer: char *(char *, const char *, size_t)
> +talloc_test_get_magic: int (void)
> +talloc_total_blocks: size_t (const void *)
> +talloc_total_size: size_t (const void *)
> +talloc_unlink: int (const void *, void *)
> +talloc_vasprintf: char *(const void *, const char *, va_list)
> +talloc_vasprintf_append: char *(char *, const char *, va_list)
> +talloc_vasprintf_append_buffer: char *(char *, const char *, va_list)
> +talloc_version_major: int (void)
> +talloc_version_minor: int (void)
> diff --git a/lib/talloc/wscript b/lib/talloc/wscript
> index ae0b2276..98e3b7d 100644
> --- a/lib/talloc/wscript
> +++ b/lib/talloc/wscript
> @@ -1,7 +1,7 @@
>  #!/usr/bin/env python
>  
>  APPNAME = 'talloc'
> -VERSION = '2.1.6'
> +VERSION = '2.1.7'
>  
>  
>  blddir = 'bin'
> -- 
> 1.9.1
> 







More information about the samba-technical mailing list