summaryrefslogtreecommitdiff
path: root/lib
AgeCommit message (Collapse)AuthorFilesLines
2012-07-18lib/util/modules.c: fix stackframe leak.Rusty Russell1-1/+2
do_smb_load_module() doesn't free its stackframe on success. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2012-07-18talloc_stack: report lazy freeing (panic if DEVELOPER).Rusty Russell1-0/+11
talloc_stackframe() stacks, so if you forget to free one, the outer one will free it. However, it's not a good idea to rely too heavily on this behaviour: it can lead to delays in the release of memory or destructors. I had an elaborate hack to make sure every talloc_stackframe() was freed in the exact same function it was allocated, however all bugs it caught were simply lazy freeing, so this patch just checks for that. This doesn't check for stackframes we don't free up on exit: that would be nice, but uncovers some uncomfortable (but probably harmless) cases. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2012-07-18talloc_stack: always include the location when creating a talloc_stackframe().Rusty Russell2-8/+11
Much better for debugging. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2012-07-18talloc_stack: handle more than one talloc_stackframe_pool()Rusty Russell1-8/+9
The only reason we make one stackframe parent of the next is so we use our parent's pool. That doesn't make sense if we're a new pool, and wouldn't work anyway. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2012-07-18talloc: don't allow a talloc_pool inside a talloc_pool.Rusty Russell2-1/+9
We explicitly call free() on a pool which falls to zero, assuming it's not inside another pool (we crash). Check on creation and explicitly document this case. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2012-07-18talloc: use a struct for pool headers.Rusty Russell2-106/+90
This neatens the code a bit (we should do a similar thing for all the TALLOC_CHUNK macros). Two subtler changes: (1) As a result of the struct, we actually pack object_count into the talloc header on 32-bit platforms (since the header is 40 bytes, but needs to be 16-byte aligned). (2) I avoid VALGRIND_MAKE_MEM_UNDEFINED on memmove when we resize the only entry in a pool; that's done later anyway. With -O2 on my 11.04 Ubuntu 32-bit x86 laptop, the talloc_pool speed as measured by testsuite.c actually increases 10%. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2012-07-16pytdb: Check if the database is closed before we touch itAndrew Bartlett2-10/+85
If .close() has already been called, we have to play dead - the self->ctx is just not valid any more, as we have been shut down to allow some other part of Samba to open the tdb. Andrew Bartlett Autobuild-User(master): Andrew Bartlett <abartlet@samba.org> Autobuild-Date(master): Mon Jul 16 13:51:52 CEST 2012 on sn-devel-104
2012-07-16pytdb: Check for errors parsing strings into TDB_DATAAndrew Bartlett1-0/+16
The call to PyStringAsString() can raise an exception, and we want to return that rather than following a NULL pointer later. Andrew Bartlett
2012-07-13lib/util: Allocate enough space to reference blob->data[len]Andrew Bartlett1-3/+3
Found by Thomas Hood <jdthood@gmail.com> using valgrind. Thanks! Andrew Bartlett
2012-07-09lib/ldb: Bump ldb release due to pyldb changesAndrew Bartlett3-1/+261
We strictly need these changes to pass make test, and the concat change is backwards incompatible, so we really want to use the right version. Andrew Bartlett Autobuild-User(master): Andrew Bartlett <abartlet@samba.org> Autobuild-Date(master): Mon Jul 9 04:34:06 CEST 2012 on sn-devel-104
2012-07-06pyldb: Add bindings for ldb_dn_remove_base_componentsAndrew Bartlett2-0/+20
2012-07-06pyldb: Fix dn concat operation to be the other way aroundAndrew Bartlett2-2/+2
This now concatonates Dn(ldb, "cn=config") + Dn(ldb, "dc=samba,dc=org") as "cn=config,dc=samba,dc=org" Andrew Bartlett
2012-07-06s4-selftest: Test samba-tool domain dcpromoAndrew Bartlett1-1/+1
This needs a new environment to test it properly. This requires a raise in the number of socket wrapper interfaces. Andrew Bartlett
2012-07-05talloc: remove unused variablesBjörn Jacke1-5/+0
found by the IRIX compiler Autobuild-User(master): Björn Jacke <bj@sernet.de> Autobuild-Date(master): Thu Jul 5 23:50:54 CEST 2012 on sn-devel-104
2012-07-05lib/addns: remove defines we don't need or have for sure via libreplaceBjörn Jacke1-84/+0
2012-07-05lib/addns: remove use of uint8 uint16 and uint32 in favour of C99 typesBjörn Jacke6-112/+112
2012-07-04replace: make the INT64_MAX define more portableBjörn Jacke1-1/+1
2012-07-04ntdb: make --disable-ntdb work properly.Rusty Russell2-6/+9
As per bug #9024, make --disable-ntdb work again. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> Autobuild-User(master): Rusty Russell <rusty@rustcorp.com.au> Autobuild-Date(master): Wed Jul 4 08:11:33 CEST 2012 on sn-devel-104
2012-07-03ldb: bump version due to header and internal implementation changesAndrew Bartlett3-1/+261
We need this version, not the previous release, for Samba. Andrew Bartlett Autobuild-User(master): Andrew Bartlett <abartlet@samba.org> Autobuild-Date(master): Tue Jul 3 17:20:32 CEST 2012 on sn-devel-104
2012-07-02Ensure we select the correct syscall numbers on a 32-bit Linux system.Jeremy Allison1-0/+46
2012-06-30ccan: make it a grouping library.Rusty Russell1-0/+10
Andrew Bartlett pointed out that making CCAN a non-library will break the build in a different way in future: when two separate private libraries start using the same CCAN module, the symbol duplicate detection will fire (since private libaries don't use any symbol hiding). That doesn't happen yet, but it will surely happen eventually. So, for now at least, we build as a private library again. This unfortunately means the top-level build creates a libccan.so, which contains all the ccan modules whether you need them or not. Given the size of the library, I don't think this is a win. But it's simple. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> Autobuild-User(master): Rusty Russell <rusty@rustcorp.com.au> Autobuild-Date(master): Sat Jun 30 11:19:04 CEST 2012 on sn-devel-104
2012-06-30Try and fix the autoconf build on Solaris/Nexenta/etc.Jeremy Allison1-1/+32
Their AC_TRY_RUN doesn't include any current CPPFLAGS. Make the set[res]uid checks independent of this. Needs a small change to the waf build in order to code with the change. Autobuild-User(master): Jeremy Allison <jra@samba.org> Autobuild-Date(master): Sat Jun 30 00:32:36 CEST 2012 on sn-devel-104
2012-06-29lib/ccan: readd execinfo dependency to failtestStefan Metzmacher1-1/+4
metze Signed-off-by: Michael Adam <obnox@samba.org>
2012-06-29lib/util: fix fd leak in anonymous_shared_allocate() if MAP_ANON is not ↵Stefan Metzmacher1-1/+14
available metze
2012-06-29ccan: we're subsystems, not a library.Rusty Russell4-24/+39
Don't expose a libccan.so; it would produce clashes if someone else does the same thing. Unfortunately, if we just change it from a SAMBA_LIBRARY to a SAMBA_SUBSYSTEM, it doesn't create a static library as we'd like, but links all the object files in. This means we get many duplicates (eg. everyone gets a copy of tally, even though only ntdb wants it). So, the solution is twofold: 1) Make the ccan modules separate. 2) Make the ccan modules SAMBA_SUBSYSTEMs not SAMBA_LIBRARYs so we don't build shared libraries which we can't share. 3) Make the places which uses ccan explicit. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> Autobuild-User(master): Rusty Russell <rusty@rustcorp.com.au> Autobuild-Date(master): Fri Jun 29 06:22:44 CEST 2012 on sn-devel-104
2012-06-29Move back to using per-thread credentials on Linux. Fixes the glibc native ↵Jeremy Allison3-12/+46
AIO lost wakeup problem. See this post: https://lists.samba.org/archive/samba-technical/2012-June/085101.html for details. Autobuild-User(master): Jeremy Allison <jra@samba.org> Autobuild-Date(master): Fri Jun 29 03:57:45 CEST 2012 on sn-devel-104
2012-06-28Replace all uses of setXX[ug]id() and setgroups with samba_setXX[ug]id() calls.Jeremy Allison7-32/+264
Will allow thread-specific credentials to be added by modifying the central definitions. Deliberately left the setXX[ug]id() call in popt as this is not used in Samba.
2012-06-28Add missing setresgid() wrapper.Jeremy Allison1-0/+1
2012-06-29lib/param: let "SMB2" select PROTOCOL_SMB2_10Stefan Metzmacher1-1/+1
metze
2012-06-28replace: define INT64_MAX when not definedBjörn Jacke1-0/+4
Tru64 doesn't have any stdint.h Autobuild-User(master): Björn Jacke <bj@sernet.de> Autobuild-Date(master): Thu Jun 28 00:45:58 CEST 2012 on sn-devel-104
2012-06-27s3-param: Rename loadparm_s3_context -> loadparm_s3_helpersAndrew Bartlett2-3/+3
This helps clarify the role of this structure and wrapper function. The purpose here is to provide helper functions to the lib/param loadparm_context that point back at the s3 lp_ functions. This allows a struct loadparm_context to be passed to any point in the code, and always refer to the correct loadparm system. If this has not been set, the variables loaded in the lib/param code will be returned. As requested by Michael Adam. Andrew Bartlett Autobuild-User(master): Andrew Bartlett <abartlet@samba.org> Autobuild-Date(master): Wed Jun 27 17:11:16 CEST 2012 on sn-devel-104
2012-06-27lib/ldb: Print trace messages for modify correctlyAndrew Bartlett1-1/+1
2012-06-26tdb: finish weaning off err.h.Rusty Russell7-23/+28
Commit 3c4263e7580143c69225729f5b67f09c00add2fd said it removed err.h from tdb, unfortuntely it didn't: tap-interface.h still included it. This finishes it properly! Reported-by:Stefan Metzmacher <metze@samba.org> Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> Autobuild-User(master): Rusty Russell <rusty@rustcorp.com.au> Autobuild-Date(master): Tue Jun 26 10:22:03 CEST 2012 on sn-devel-104
2012-06-25lib/param: add "SMB3" as alias for PROTOCOL_SMB3_00Stefan Metzmacher1-0/+1
metze
2012-06-22ldb: lay foundation for proper utc/generalized time handlingMatthieu Patou3-5/+42
We use to handle UTCtime and generalized time the same way. The thing is that it's not the case, they are different in the way they are set (most of the time) with different format and also stored and return in different format too.
2012-06-22ldb: add the VERIFY_NAME controlMatthieu Patou2-0/+68
2012-06-22dbwrap: don't ignore the result of dbwrap_parse_record in dbwrap_fetch_int32()Stefan Metzmacher1-1/+5
metze Autobuild-User(master): Stefan Metzmacher <metze@samba.org> Autobuild-Date(master): Fri Jun 22 17:10:52 CEST 2012 on sn-devel-104
2012-06-22dbwrap: intialize state.status in dbwrap_fetch_int32()Stefan Metzmacher1-0/+2
This might not be needed, but it makes it more clear that we won't use uninitialized memory, it the callback was not triggered. metze
2012-06-22dbwrap: Convert fetch_int32 to dbwrap_parse_recordVolker Lendecke1-13/+24
Now dbwrap_fetch_int32 is used in smbd/locking/posix.c is used a lot more often than before. Signed-off-by: Stefan Metzmacher <metze@samba.org>
2012-06-22dbwrap: Add dbwrap_fetch_int32Volker Lendecke2-3/+11
Signed-off-by: Stefan Metzmacher <metze@samba.org>
2012-06-22dbwrap: Add dbwrap_change_int32_atomicVolker Lendecke2-9/+21
Signed-off-by: Stefan Metzmacher <metze@samba.org>
2012-06-22tdb: don't use err.h in tests.Rusty Russell21-22/+1
It's not portable. While we could use ccan/err, it seems overkill since we actually only use it in one test (I obviously cut & paste the #include). Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> Autobuild-User(master): Rusty Russell <rusty@rustcorp.com.au> Autobuild-Date(master): Fri Jun 22 09:22:28 CEST 2012 on sn-devel-104
2012-06-22tdb: make TDB_NOSYNC merely disable sync.Rusty Russell3-15/+20
(As suggested by Stefan Metzmacher, based on the change to ntdb.) Since commit ec96ea690edbe3398d690b4a953d487ca1773f1c, we handle the case where a process dies during a transaction commit. Unfortunately, TDB_NOSYNC means this no longer works, as it disables the recovery area as well as the actual msync/fsync. We should do everything except the syncs. This also means we can do a complete test with $TDB_NO_FSYNC set; just to get more complete coverage, we disable it explicitly for one test (where we override the actual sync calls anyway). Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2012-06-22dbwrap: dbwrap_hash_size().Rusty Russell7-0/+12
Implemented for ntdb and tdb; falls back to 0 for others. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2012-06-22dbwrap: dbwrap_name().Rusty Russell7-1/+11
Useful for debug messages: particularly once we start switching between .tdb and .ntdb files. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2012-06-22dbwrap: dbwrap_transaction_start_nonblock().Rusty Russell4-0/+26
Implemented for ntdb and tdb; falls back to the blocking variant for others. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2012-06-22dbwrap: dbwrap_fetch_locked_timeout().Rusty Russell4-0/+52
Implemented for ntdb and tdb; falls back to the non-timeout variant for others. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2012-06-22dbwrap: add dbwrap_check() function.Rusty Russell4-0/+31
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2012-06-22dbwrap: dbwrap_local_open()Rusty Russell4-0/+92
This simply opens a tdb: it will eventually switch depending on the extension. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2012-06-22dbwrap: remove get_flags().Rusty Russell5-24/+0
The flags returned were TDB-specific: this was only used for detecting the endianness of obsolete databases (the conversion code was put in in 2003, with reference to Samba 2.3). It's easier to remove it than to translate the NTDB flags to TDB flags, and it's a really weird thing to ask for anyway. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>