1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-11 05:18:09 +03:00
Commit Graph

319 Commits

Author SHA1 Message Date
Stefan Metzmacher
38633c9f0b talloc: fixed a use after free error in talloc_free_children()
This is similar to commit 6f51a1f45b.

metze
2011-05-17 09:46:04 +02:00
Stefan Metzmacher
f3b855d2ff talloc: use _talloc_free_internal() in talloc_free_children()
metze
2011-05-17 09:46:04 +02:00
Stefan Metzmacher
37b2130ed9 talloc: test talloc_steal out of a talloc_pool
metze

Autobuild-User: Stefan Metzmacher <metze@samba.org>
Autobuild-Date: Tue May 17 09:43:01 CEST 2011 on sn-devel-104
2011-05-17 09:43:01 +02:00
Stefan Metzmacher
16cc52cf70 talloc: add memset() calls to test_pool()
This way we the pool based valgrind code.

metze
2011-05-17 08:22:25 +02:00
Stefan Metzmacher
c281f2fc1a talloc: setup the new 'tc' before TC_UNDEFINE_GROW_CHUNK() _talloc_realloc()
metze
2011-05-17 08:22:23 +02:00
Stefan Metzmacher
7102105c89 talloc: make really sure only optimize realloc if there's only one pool chunk
*talloc_pool_objectcount(pool_tc) == 2 doesn't mean the one of the objects
is the pool itself! So we better check for == 1 and calculate the chunk count.

metze
2011-05-17 08:22:21 +02:00
Stefan Metzmacher
14b662ee4f talloc: make use of _talloc_free_poolmem() in _talloc_realloc()
This should follow the same logic...

metze
2011-05-17 08:22:20 +02:00
Stefan Metzmacher
2d514be1ed talloc: split the handling of FLAG_POOL/FLAG_POOLMEM in _talloc_free_internal
The optimization of the object_count == 1 case should only happen
for when we're not destroying the pool itself. And it should only
happen if the pool itself is still valid.

If the pool isn't valid (it has TALLOC_FLAG_FREE),
object_count == 1 does not mean that the pool is the last object,
which can happen if you use talloc_steal/move() on memory
from the pool and then free the pool itself.

Thanks to Volker for noticing this!

metze
2011-05-17 08:22:18 +02:00
Stefan Metzmacher
f0f5ac18e5 talloc: use TC_UNDEFINE_SHRINK_CHUNK() instead of TC_INVALIDATE_SHRINK_CHUNK() for realloc path
If we optimize on top of raw realloc() we need
TC_INVALIDATE_SHRINK_CHUNK together with TC_UNDEFINE_GROW_CHUNK
(with was missing and caused false positive valgrind warnings).

But that is really slow, as we do a lot of talloc_realloc calls in samba.

That's why we only to TC_UNDEFINE_SHRINK_CHUNK() for now.

metze
2011-05-02 13:58:22 +02:00
Jelmer Vernooij
fb05e82c99 Fix license info for talloc in manpage.
Autobuild-User: Jelmer Vernooij <jelmer@samba.org>
Autobuild-Date: Sun Apr 24 03:27:54 CEST 2011 on sn-devel-104
2011-04-24 03:27:54 +02:00
Stefan Metzmacher
94a97bf64c talloc: fix compiler warnings with -Wc++-compat
metze

Autobuild-User: Stefan Metzmacher <metze@samba.org>
Autobuild-Date: Wed Apr 13 14:33:23 CEST 2011 on sn-devel-104
2011-04-13 14:33:23 +02:00
Stefan Metzmacher
eb0e276f3a talloc/testsuite: avoid memory leak reported by valgrind
metze

Signed-off-By: Andrew Tridgell <tridge@samba.org>

Autobuild-User: Stefan Metzmacher <metze@samba.org>
Autobuild-Date: Fri Apr  8 10:15:41 CEST 2011 on sn-devel-104
2011-04-08 10:15:40 +02:00
Stefan Metzmacher
f9fdef870e talloc/testsuite: test more talloc_pool related things
metze

Signed-off-By: Andrew Tridgell <tridge@samba.org>
2011-04-08 09:28:10 +02:00
Stefan Metzmacher
2146ffd764 talloc: include valgrind headers if available
metze

Signed-off-By: Andrew Tridgell <tridge@samba.org>
2011-04-08 09:28:10 +02:00
Stefan Metzmacher
73cc85ac90 talloc: add TC_INVALIDATE_POOL marco
metze

Signed-off-By: Andrew Tridgell <tridge@samba.org>
2011-04-08 09:28:10 +02:00
Stefan Metzmacher
9c9f208598 talloc: add TC_UNDEFINE_GROW_CHUNK() marco
metze

Signed-off-By: Andrew Tridgell <tridge@samba.org>
2011-04-08 09:28:10 +02:00
Stefan Metzmacher
6126c3506d talloc: add TC_INVALIDATE_SHRINK_CHUNK() marco
This invalidates the unused bytes if we shrink memory.

metze

Signed-off-By: Andrew Tridgell <tridge@samba.org>
2011-04-08 09:28:10 +02:00
Stefan Metzmacher
4895f55f06 talloc: add TC_INVALIDATE_FULL_CHUNK() macro
This makes it easier to mark a talloc pointer as
invalid.

metze

Signed-off-By: Andrew Tridgell <tridge@samba.org>
2011-04-08 09:28:10 +02:00
Stefan Metzmacher
efbb35824e talloc: use VALGRIND_MAKE_MEM_UNDEFINED() before memmove()
metze

Signed-off-By: Andrew Tridgell <tridge@samba.org>
2011-04-08 09:28:10 +02:00
Stefan Metzmacher
1e70439f77 talloc: optimize talloc_free() and talloc_realloc() for talloc pools
metze

Signed-off-By: Andrew Tridgell <tridge@samba.org>
2011-04-08 09:28:10 +02:00
Stefan Metzmacher
73330f8436 talloc: add TC_POOL_FIRST_CHUNK() macro
metze

Signed-off-By: Andrew Tridgell <tridge@samba.org>
2011-04-08 09:28:10 +02:00
Stefan Metzmacher
13fab67995 talloc: add TC_POOL_SPACE_LEFT() macro
metze

Signed-off-By: Andrew Tridgell <tridge@samba.org>
2011-04-08 09:28:10 +02:00
Stefan Metzmacher
4084cb723c talloc: add TC_ALIGN16() macro
metze

Signed-off-By: Andrew Tridgell <tridge@samba.org>
2011-04-08 09:28:10 +02:00
Stefan Metzmacher
d39940113a talloc: use TC_HDR_SIZE instead of sizeof(struct talloc_chunk)
As this includes the padding to 16 bytes.

metze

Signed-off-By: Andrew Tridgell <tridge@samba.org>
2011-04-08 09:28:09 +02:00
Matthias Dieter Wallnöfer
513574afd7 talloc - some documentation changes
- Fix some typos
- Document better the differences in the behaviour between talloc 1.X and 2.X.
  Previously this seemed a bit spongy to me.

Reviewed-by: Jelmer + Tridge

Autobuild-User: Matthias Dieter Wallnöfer <mdw@samba.org>
Autobuild-Date: Mon Apr  4 11:05:42 CEST 2011 on sn-devel-104
2011-04-04 11:05:42 +02:00
Matthias Dieter Wallnöfer
6723e90d52 talloc - improve doxygen comment of "talloc_move"
Express better that this should be a pointer of a pointer.

Reviewed-by: Tridge
2011-03-30 08:45:58 +02:00
Andrew Tridgell
c56e3ccfc9 lib: don't install public headers if a private library
for talloc/tevent/tdb, only install headers if we are doing a
standalone build
2011-03-15 12:22:20 +11:00
Andrew Tridgell
e3e1eada45 talloc: use public_headers to install talloc.h and pytalloc.h
this allows them to be included in the test_headers.h generated header
2011-03-15 12:22:18 +11:00
Andrew Tridgell
8b8caac6d0 build: removed the old autogen.sh and autogen-waf.sh scripts
for the builds that use waf only, these are no longer needed and just
cause confusion

Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>
2011-02-07 15:03:40 +11:00
Andrew Tridgell
005c6370cd waf: ensure "make dist" works from a clean git tree for all libraries
this uses a temporary waf lock file to force the build directory

Autobuild-User: Andrew Tridgell <tridge@samba.org>
Autobuild-Date: Sat Jan  8 02:35:22 CET 2011 on sn-devel-104
2011-01-08 02:35:22 +01:00
Stefan Metzmacher
d9fd1f684a talloc: change version to 2.0.5 after a critical bugfix
metze
2011-01-05 10:24:47 +01:00
Andrew Tridgell
6f51a1f45b talloc: fixed a use after free error
this is the minimal fix for the problem Rusty found. I previously
thought that the best fix would be to change tc->parent to be valid
for all pointers, but that is expensive for realloc with large numbers
of child pointers, which is much more commmon than I expected it to
be.

Autobuild-User: Andrew Tridgell <tridge@samba.org>
Autobuild-Date: Wed Jan  5 07:22:27 CET 2011 on sn-devel-104
2011-01-05 07:22:27 +01:00
Andrew Tridgell
66db49e35f talloc: added a test for the use after free Rusty found 2011-01-05 06:37:07 +01:00
Jelmer Vernooij
733bc1c1ca talloc: Clarify error message on access after free. 2011-01-05 01:01:28 +01:00
Brad Hards
564830ef90 talloc: Typo fix for api docs 2011-01-04 14:46:07 +11:00
Brad Hards
10b1ed670f talloc: Fix warnings in test code
This should not change any behaviour - the intent is just to reduce
the "nuisance" warnings.

Signed-off-by: Stefan Metzmacher <metze@samba.org>

Autobuild-User: Stefan Metzmacher <metze@samba.org>
Autobuild-Date: Mon Jan  3 11:12:39 CET 2011 on sn-devel-104
2011-01-03 11:12:39 +01:00
Jelmer Vernooij
fdb0aa2b04 Revert broken destructor changes. 2011-01-03 01:48:05 +01:00
Jelmer Vernooij
cbf504b0c5 s4-python: Properly call PyObject_Del from all destructors. 2011-01-03 01:48:04 +01:00
Jelmer Vernooij
5792fa90ac s4-python: Only set BASETYPE flag if subclassing is supported.
Autobuild-User: Jelmer Vernooij <jelmer@samba.org>
Autobuild-Date: Sat Jan  1 03:39:58 CET 2011 on sn-devel-104
2011-01-01 03:39:58 +01:00
Jelmer Vernooij
f5fe9c32ef s4-python: Add more prototypes. 2011-01-01 02:54:05 +01:00
Jelmer Vernooij
4350e0c3c9 s4-python: Properly call PyObject_Del from all destructors. 2011-01-01 02:54:05 +01:00
Jelmer Vernooij
51239bb26a talloc/tdb/tevent: Remove obsolete signatures files. 2011-01-01 02:54:05 +01:00
Jelmer Vernooij
bfb9ae2414 talloc: remove autotools support. 2010-12-24 01:15:05 +01:00
Jelmer Vernooij
4663a6a66e talloc: Remove reference to nonexistant configure.developer in autogen.sh. 2010-12-21 19:43:04 +01:00
Jelmer Vernooij
68d97f8b49 talloc: Add ability to generate Python docs using pydoctor. 2010-12-11 03:30:06 +01:00
Matthieu Patou
8733738357 build: introduce SAMBA_CHECK_PYTHON_HEADERS
This function is a wrapper around waf's check_python_header.
It avoids searching more than once for the headers bringing a small
speed improvement and a better lisibility of the logs.

But it's mainly to avoid a nasty bug when python libraries are in path
pointed by python_LIBPL (ie. /usr/local/lib/python2.6/config/) instead
of python_LIBDIR (ie. /usr/local/lib).

On the first call waf will correctly find that in order to link with
python libs it needs to add -L$python_LIBPL.

But on the next calls of check_python_headers, waf will use both the
current library path value (ie. -L/usr/local/lib/python2.6/config) and
-L$python_LIBDIR (ie. /usr/local/lib/) which will make him beleive that
python libraries are in $python_LIBDIR which at the end will make the
final link test fails in check_python_headers as it will not use the
good directory.

So by avoiding calling check_python_headers more than once we avoid
making waf fooling itself.
2010-12-10 02:07:18 +03:00
Stefan Metzmacher
e1485c70fc talloc: pytalloc-util should not have an ABI-file yet
Somehow I forgot to remove this after discussion with Jelmer.

metze
2010-12-09 16:45:50 +01:00
Andrew Tridgell
57f2f1d72a waf: remove the restriction that private libraries must not have a vnum
we need the vnum for ABI checking for public libraries built as
private libraries when bundled

Autobuild-User: Andrew Tridgell <tridge@samba.org>
Autobuild-Date: Thu Dec  9 12:47:41 CET 2010 on sn-devel-104
2010-12-09 12:47:40 +01:00
Andrew Tridgell
ebe2867fc2 waf-abi: auto-generate per-symbol versions from ABI files
This changes our version-script generation to use the ABI files that
are saved in git with each version number change of our public
libraries.

We use these ABI files to generate a linker version script that gives
the exact version number that each symbol was introduced. This
provides us with automatic fine grained symbol versioning.

Pair-Programmed-With: Jelmer Vernooij <jelmer@samba.org>
Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>
2010-12-09 13:17:19 +11:00
Stefan Metzmacher
658f4597ee talloc: build pytalloc-util with the same logic as libtalloc
metze
2010-12-08 19:07:13 +01:00
Stefan Metzmacher
8c6b756aa7 talloc: mark pytalloc-util functions as _PUBLIC_
metze
2010-12-08 19:07:12 +01:00
Stefan Metzmacher
288383aa83 talloc: remove unused PyString_FromString_check_null() from pytalloc-util
metze
2010-12-08 19:07:11 +01:00
Andrew Tridgell
735c1cd2da s4-pkgconfig: add @LIB_RPATH@ to our link flags
this is only set when rpath is used on install. It ensures that
applications that link against Samba libraries get the rpath right

Autobuild-User: Andrew Tridgell <tridge@samba.org>
Autobuild-Date: Wed Dec  8 12:46:00 CET 2010 on sn-devel-104
2010-12-08 12:46:00 +01:00
Jelmer Vernooij
8897935660 pytalloc: Add docstring for talloc.Object.
Autobuild-User: Jelmer Vernooij <jelmer@samba.org>
Autobuild-Date: Sun Dec  5 18:12:59 CET 2010 on sn-devel-104
2010-12-05 18:12:59 +01:00
Stefan Metzmacher
88ff7e3c5c talloc: add ABI/talloc-2.0.4.sigs
metze

Autobuild-User: Stefan Metzmacher <metze@samba.org>
Autobuild-Date: Fri Dec  3 11:35:45 CET 2010 on sn-devel-104
2010-12-03 11:35:45 +01:00
Jelmer Vernooij
ceb1e176aa talloc: Bump version number after pytalloc changes. 2010-12-03 03:40:21 +01:00
Jelmer Vernooij
efd8fc0672 pytalloc: Make py_talloc_default_cmp private. 2010-12-01 01:48:25 +01:00
Jelmer Vernooij
b8dc3c8a83 pytalloc: Make py_talloc_dealloc private. 2010-12-01 01:48:25 +01:00
Jelmer Vernooij
4f0436f107 pytalloc: Make py_talloc_default_repr private (now exposed by talloc.Object). 2010-12-01 01:48:25 +01:00
Jelmer Vernooij
5891e9863c pytalloc: Expose PyTalloc_GetObjectType 2010-12-01 01:48:25 +01:00
Jelmer Vernooij
36bdb3b9af pytalloc: Add convenience function for checking if something is a talloc
object.
2010-12-01 01:48:24 +01:00
Jelmer Vernooij
e8aa266c97 talloc: Add talloc object.
Autobuild-User: Jelmer Vernooij <jelmer@samba.org>
Autobuild-Date: Tue Nov 30 23:26:56 CET 2010 on sn-devel-104
2010-11-30 23:26:56 +01:00
Andrew Tridgell
999f3ed2ce talloc: added TALLOC_FREE_FILL environment variable
when this environment variable is set, talloc will fill freed memory
with the value from that environment variable. This can be used to
help find use after free bugs when valgrind is too slow to be used
2010-11-19 15:17:42 +11:00
Jelmer Vernooij
0d6f1a1630 pytalloc: Make some arguments optional. 2010-11-07 01:39:39 +01:00
Jelmer Vernooij
cd172e7724 talloc: Add python talloc module, move convenience functions to it.
Autobuild-User: Jelmer Vernooij <jelmer@samba.org>
Autobuild-Date: Fri Nov  5 02:48:21 UTC 2010 on sn-devel-104
2010-11-05 02:48:21 +00:00
Jelmer Vernooij
4edabb3256 talloc: rename pytalloc.c to pytalloc_util.c 2010-11-05 02:06:06 +00:00
Andrew Tridgell
14718a725b build: a more portable way of finding waf in makefiles
this avoids using the non-portable shell command in makefiles

Autobuild-User: Andrew Tridgell <tridge@samba.org>
Autobuild-Date: Wed Nov  3 22:44:59 UTC 2010 on sn-devel-104
2010-11-03 22:44:59 +00:00
Andrew Tridgell
f0a472a2d6 waf: added reconfigure targets to our libraries
This allows you to do "make reconfigure" to re-run configure only if
needed
2010-11-03 01:34:04 +00:00
Jelmer Vernooij
ce1eb1f726 talloc: Install pytalloc.h.
Autobuild-User: Jelmer Vernooij <jelmer@samba.org>
Autobuild-Date: Mon Nov  1 17:25:07 UTC 2010 on sn-devel-104
2010-11-01 17:25:07 +00:00
Jelmer Vernooij
d5883c8d00 replace/talloc: Avoid automatically pulling in new configure/Makefile,
as these files are checked in, and the source might not be available.

Autobuild-User: Jelmer Vernooij <jelmer@samba.org>
Autobuild-Date: Sun Oct 31 22:27:56 UTC 2010 on sn-devel-104
2010-10-31 22:27:56 +00:00
Jelmer Vernooij
f6cfa86607 talloc: Look harder for waf.
Autobuild-User: Jelmer Vernooij <jelmer@samba.org>
Autobuild-Date: Sun Oct 31 18:06:16 UTC 2010 on sn-devel-104
2010-10-31 18:06:16 +00:00
Jelmer Vernooij
f99c009b61 replace: Build using waf by default.
Autobuild-User: Jelmer Vernooij <jelmer@samba.org>
Autobuild-Date: Sun Oct 31 02:45:21 UTC 2010 on sn-devel-104
2010-10-31 02:45:21 +00:00
Jelmer Vernooij
4f22cc7a28 talloc: Switch over to using waf as the default build system for the standalone build. 2010-10-31 02:04:05 +00:00
Jelmer Vernooij
3deece5591 s4: Remove the old perl/m4/make/mk-based build system.
The new waf-based build system now has all the same functionality, and
the old build system has been broken for quite some time.

Autobuild-User: Jelmer Vernooij <jelmer@samba.org>
Autobuild-Date: Sun Oct 31 02:01:44 UTC 2010 on sn-devel-104
2010-10-31 02:01:44 +00:00
Jelmer Vernooij
23b58804ba talloc.3: Remove documentation for deprecated talloc_append_string,
consistent with other deprecated functionality.
2010-10-30 15:43:53 +02:00
Jelmer Vernooij
56b46d8d88 talloc: Fix manual pages in standalone build. 2010-10-30 08:27:12 +02:00
Stefan Metzmacher
4c634a3b2e talloc: fix waf build for libtalloc-compat1
We need to use 'libtalloc.so.1' as soname, otherwise the
compat library is useless.

metze

Autobuild-User: Stefan Metzmacher <metze@samba.org>
Autobuild-Date: Wed Oct 27 03:53:21 UTC 2010 on sn-devel-104
2010-10-27 03:53:21 +00:00
Jelmer Vernooij
a702c07e02 talloc: change pytalloc-util to be a public library. 2010-10-26 10:17:19 -07:00
Jelmer Vernooij
d44e3bf747 talloc: Install pytalloc-util as system library. 2010-10-26 10:17:19 -07:00
Jelmer Vernooij
98cfc71801 talloc: Avoid dependency on unknown EXT_LIB_PYTHON. 2010-10-26 10:17:19 -07:00
Jelmer Vernooij
1ae0981ce8 talloc: Move pytalloc to lib/talloc. 2010-10-26 10:17:18 -07:00
Jelmer Vernooij
50256c01d0 waf: Only specify vnum for non-private libraries. 2010-10-26 10:17:18 -07:00
Stefan Metzmacher
177aad556f talloc: pytalloc should not depend on samba specific code
metze

Autobuild-User: Stefan Metzmacher <metze@samba.org>
Autobuild-Date: Sun Oct 24 19:21:25 UTC 2010 on sn-devel-104
2010-10-24 19:21:25 +00:00
Jelmer Vernooij
49ef288819 waf: Rename some BUNDLED_ functios to PRIVATE_. 2010-10-23 22:24:06 +00:00
Andrew Tridgell
7cba3cfac8 waf: replace the is_bundled option with private_library
'private_library' better captures what we are trying to get at when we
bundle a library
2010-10-21 19:03:24 +11:00
Andrew Tridgell
713900b812 s4-build: fixed some formatting
indentation was far too deep
2010-10-21 19:03:24 +11:00
Kamen Mazdrashki
c0b9526aaf pytalloc: use talloc_unlink() to free py_talloc objects
Those type of objects are referenced every time we assign
them to other py_talloc objects, which leads to runtime
warnings that we are trying to free an object with references

Wrap talloc_unlink() in SMB_ASSERT() to ensure we catch possible failure

Autobuild-User: Kamen Mazdrashki <kamenim@samba.org>
Autobuild-Date: Wed Oct 20 21:37:06 UTC 2010 on sn-devel-104
2010-10-20 21:37:06 +00:00
Simo Sorce
feb6034581 talloc: make header C++ safe
Autobuild-User: Simo Sorce <idra@samba.org>
Autobuild-Date: Wed Oct 20 18:15:09 UTC 2010 on sn-devel-104
2010-10-20 18:15:09 +00:00
Jelmer Vernooij
3cd558dbeb talloc: Fix #include line in manpage.
Autobuild-User: Jelmer Vernooij <jelmer@samba.org>
Autobuild-Date: Sat Oct  9 13:53:25 UTC 2010 on sn-devel-104
2010-10-09 13:53:24 +00:00
Kamen Mazdrashki
76a8ae9e0d pytalloc: Fix warning that we are subtracting void* pointers
Autobuild-User: Kamen Mazdrashki <kamenim@samba.org>
Autobuild-Date: Fri Oct  8 23:36:54 UTC 2010 on sn-devel-104
2010-10-08 23:36:54 +00:00
Volker Lendecke
b5ed09c3af Move talloc_enable_null_tracking() to the s3 daemons 2010-10-08 21:11:45 +02:00
Andrew Tridgell
bb0017615d waf: fixed exit status of test suites
use RUN_COMMAND() to handle signal errors and exit status
2010-10-07 14:29:21 +11:00
Volker Lendecke
e325a5b674 talloc: Add a warning about talloc_autofree_context() and dlclose() 2010-09-24 17:21:42 -07:00
Jelmer Vernooij
049c4fa04d pytalloc: Add default compare function. 2010-09-21 11:47:03 -07:00
Jelmer Vernooij
a7393449eb pidl: Fix segfault when accessing unicode objects. 2010-09-20 22:40:46 -07:00
Andrew Tridgell
ba2c394ed4 talloc: fixed spelling errors in comment 2010-09-15 15:39:34 +10:00
Andrew Tridgell
58d92cefe2 pidl-python: cope with NULL pointers in more places
NULL is converted to Py_None
2010-09-02 13:37:07 +10:00
Andrew Tridgell
e7e39584a9 pytalloc: treat a NULL ptr as Py_None 2010-09-02 13:37:07 +10:00
Andrew Tridgell
634e06e465 pytalloc: fixed py_talloc_steal()
py_talloc_steal() was implemented as a macro which evaluated it's 2nd
argument twice. It was often called via a macro with a 2nd argument
that was a function call, for example an allocation in
py_talloc_new(). This meant it allocated memory twice, and leaked one
of them.

This re-implements py_talloc_steal() as a function, so that it only
does the allocation once.
2010-08-25 23:05:05 +10:00
Andrew Tridgell
d78417a5d6 s4-pytalloc: use better names for python talloc objects 2010-08-25 23:05:05 +10:00