summaryrefslogtreecommitdiff
path: root/lib/talloc/talloc.c
AgeCommit message (Collapse)AuthorFilesLines
2010-04-20talloc: there is no ambiguity when freeing a ptr with a null parentAndrew Tridgell1-0/+7
when a ptr has a single reference and a NULL parent, then talloc_free(ptr) is not ambiguous, as the caller could not have done a talloc_free(NULL) to free the memory Pair-Programmed-With: Rusty Russell <rusty@samba.org>
2010-04-18talloc: mark public functions as _PUBLIC_Andrew Tridgell1-62/+62
2010-04-02talloc: a useful bit of debug codeAndrew Tridgell1-0/+8
this is useful when tracking down talloc loops. It is probably too expensive to have on by default.
2010-04-02talloc: add a define for TALLOC_MAX_DEPTHAndrew Tridgell1-1/+1
Thanks to the suggestion from simo
2010-04-02talloc: limit the depth that talloc will go for talloc_is_parent()Andrew Tridgell1-2/+11
We have a bug in the dcerpc registry code that can cause a talloc loop that chews unlimited CPU because of talloc_is_parent() during a talloc_free()
2009-12-08talloc: Fix write behind memory blockKamen Mazdrashki1-1/+1
If ALWASY_REALLOC is defined and we are to 'shrink' memory block, memcpy() will write outside memory just allocated. Signed-off-by: Andrew Tridgell <tridge@samba.org>
2009-09-20talloc: fixed talloc_disable_null_tracking()Andrew Tridgell1-0/+27
When we disable null tracking, we need to move any existing objects that are under the null_context to be parented by the true NULL context. We also need a new talloc_enable_null_tracking_no_autofree() function, as the talloc testsuite cannot cope with the moving of the autofree context under the null_context as it wants to check exact counts of objects under the null_context, and smbtorture has a large number of objects in the autofree_context from .init functions
2009-09-17talloc: don't crash if f is NULL in talloc_report_*Andrew Tridgell1-2/+4
It's annoying when you use p talloc_report_full(ctx, fopen("/tmp/xx","w")) in gdb, and if you don't have write permission on the file then you get a segv.
2009-09-15talloc: when we enable NULL tracking, reparent the autofree contextAndrew Tridgell1-0/+3
If NULL tracking is enabled after the autofree context is initialised then autofree ends up separate from the null_context. This means that talloc_report_full() doesn't report the autofree context. Fix this by reparenting the autofree context when we create the null_context.
2009-09-04report the location of the original talloc_free on double freeAndrew Tridgell1-11/+18
When we get a double free abort from talloc it is often hard to work out where the first free came from. This patch takes advantage of the fact that _talloc_free() now takes a location the free was called from to allow the double free abort code to print the location of the first free that conflicts.
2009-08-24talloc: add defines and functions for TALLOC_MAJOR/MINOR_VERSIONStefan Metzmacher1-7/+39
We also use the major and minor versions in the TALLOC_MAGIC, so that we can detect if two conflicting versions of talloc are loaded in one process. In this case we use talloc_log() to output a very useful debug message before we call talloc_abort(). metze
2009-08-24talloc: remove ABI compat functionsStefan Metzmacher1-28/+0
metze
2009-08-24talloc: remove unused build dependecies to sambaStefan Metzmacher1-18/+0
metze
2009-08-24talloc: add talloc_set_log_fn() and talloc_set_log_stderr()Stefan Metzmacher1-12/+49
So that the application can setup a log function to get ERROR and WARNING messages. metze
2009-08-24talloc: let talloc_steal() only generate a warning if it's used with referencesStefan Metzmacher1-2/+1
We have to many callers, which rely on that talloc_steal() never fails. metze
2009-08-24talloc: call return after abort, because an overloaded abort function might ↵Stefan Metzmacher1-0/+4
not exit This will be useful in the testsuite, where we could check if an abort would happen. metze
2009-08-24talloc: report the size of reference handles as 0Stefan Metzmacher1-1/+3
metze
2009-08-24talloc: let talloc_total_blocks() and talloc_get_size() operate on the ↵Stefan Metzmacher1-2/+15
null_context metze
2009-07-04Fix some warningsVolker Lendecke1-2/+3
2009-07-03Restore ABI compatibility for talloc.Simo Sorce1-4/+39
2009-07-02talloc: change TALLOC_MAGIC for version 2.0.0Stefan Metzmacher1-1/+12
metze
2009-07-01a talloc_realloc() to zero size needs to use an unambiguous freeAndrew Tridgell1-1/+1
2009-07-01changes to remove the ambiguity in talloc_free() and talloc_steal() Andrew Tridgell1-20/+99
These changes follow from the discussions on samba-technical. The changes are in several parts, and stem from the inherent ambiguity that was in talloc_free() and talloc_steal() when the pointer that is being changes has more than one parent, via references. The changes are: 1) when you call talloc_free() on a pointer with more than one parent the free will fail, and talloc will log an error to stderr like this: ERROR: talloc_free with references at some/foo.c:123 reference at other/bar.c:201 reference at other/foobar.c:641 2) Similarly, when you call talloc_steal() on a pointer with more than one parent, the steal will fail and talloc will log an error to stderr like this: ERROR: talloc_steal with references at some/foo.c:123 reference at other/bar.c:201 3) A new function talloc_reparent() has been added to change a parent in a controlled fashion. You need to supply both the old parent and the new parent. It handles the case whether either the old parent was a normal parent or a reference The use of stderr in the logging is ugly (and potentially dangerous), and will be removed in a future patch. We'll need to add a debug registration function to talloc.
2009-04-22Prevent reallocs of the talloc pool itselfSimo Sorce1-0/+5
2009-03-12talloc: add talloc_set_abort_fn()Stefan Metzmacher1-4/+31
metze
2009-03-03talloc: add talloc_get_type_abort()Stefan Metzmacher1-0/+24
metze
2008-09-17Move common libraries from root to lib/.Jelmer Vernooij1-0/+1732