summaryrefslogtreecommitdiff
path: root/lib
AgeCommit message (Collapse)AuthorFilesLines
2009-08-29tevent: Fix a segfault upon the first signalVolker Lendecke1-0/+6
When the first signal arrives, tevent_common_signal_handler() crashed: "ev" is initialized to NULL, so the first "write(ev->pipe_fds[1], &c, 1);" dereferences NULL. Rusty, Tridge, please check. Also, can you tell me a bit more about the environment you tested this in? I'd be curious to see where this survived. Thanks, Volker
2009-08-28lib/tevent: close pipe_fds on event_context destructionRusty Russell1-0/+2
The "hack_fds" were never closed before; now they're inside event_context they should be closed when that is destroyed. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2009-08-28lib/tevent: handle tevent_common_add_signal on different event contexts.Rusty Russell2-14/+31
I don't know if this is a problem in real life. The code assumes there's only one tevent_context; all signals will notify the first event context. That's counter-intuitive if you ever use more than one, and there's nothing else in this code which prevents it AFAICT. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2009-08-28lib/tevent: fix race with signals and tevent_common_add_signalRusty Russell1-20/+20
We carefully preserve the old signal handler, but we replace it before we've set up everything; in particular, if we fail setting up the pipe_hack we could write a NUL char to stdout (fd 0), instead of calling the old signal handler. Replace the signal handler as the very last thing we do. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2009-08-28lib/tdb: don't overwrite TDBs with different version numbers.Rusty Russell1-5/+7
In future, this may happen, and we don't want to clobber them. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2009-08-28lib/tevent: remove spectacularly complicated manual subtractionRusty Russell1-4/+1
To be completely honest, I don't quite know whether to laugh or cry at this one: 1 + (0xFFFFFFFF & ~(s.seen - s.count)) == 1 + (~(s.seen - s.count)) # s.seen, s.count are uint32_t == s.count - s.seen # -A == ~A + 1 Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2009-08-27util: fix comment and clarify argument name in DLIST_DEMOTE()Michael Adam1-3/+3
Michael
2009-08-24Fix make test.Jeremy Allison1-0/+1
Jeremy.
2009-08-24tevent: avoid using reserved c++ word.Günther Deschner1-1/+1
Guenther
2009-08-24note the semantic change in talloc_free from 2.0Andrew Tridgell2-8/+9
2009-08-24fixed typo in talloc doc XMLAndrew Tridgell1-1/+2
2009-08-24LIBREPLACEOBJ now contains the full pathAndrew Tridgell1-4/+1
2009-08-24updated XML source for talloc man pageAndrew Tridgell1-1/+73
2009-08-24added talloc_set_log_* documentationAndrew Tridgell1-0/+11
2009-08-24updated talloc guide for recent API changesAndrew Tridgell1-2/+54
2009-08-24make lib/replace more usable in standalone buildsAndrew Tridgell1-2/+2
This makes the lib/replace m4 work in lib/talloc as a standalone build
2009-08-24fixed getpass m4Andrew Tridgell1-2/+2
This allows the getpass.m4 code to work in standalone talloc builds
2009-08-24talloc: add --enable-talloc-compat1 to build a compat library for talloc 1.x.xStefan Metzmacher5-0/+89
metze
2009-08-24talloc: update talloc.exports and talloc.signaturesStefan Metzmacher2-4/+8
metze
2009-08-24talloc: add defines and functions for TALLOC_MAJOR/MINOR_VERSIONStefan Metzmacher6-11/+72
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: change version to 2.0.0Stefan Metzmacher1-1/+1
metze
2009-08-24talloc: remove ABI compat functionsStefan Metzmacher2-31/+0
metze
2009-08-24talloc: remove unused build dependecies to sambaStefan Metzmacher1-18/+0
metze
2009-08-24talloc/testsuite: use talloc_set_log_fn() and log to stdoutStefan Metzmacher1-0/+6
metze
2009-08-24talloc: add talloc_set_log_fn() and talloc_set_log_stderr()Stefan Metzmacher2-12/+51
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/testsuite: report __location__ of testsuite failuresStefan Metzmacher1-6/+6
metze
2009-08-24talloc/testsuite: add infrastructure to test abortsStefan Metzmacher1-0/+20
metze
2009-08-24talloc/testsuite: reset the globals after each subtestStefan Metzmacher1-3/+29
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-08-21Fix for bug 6651 - smbd SIGSEGV when breaking oplocks.Jeremy Allison1-17/+54
Based on a patch submitted by Petr Vandrovec <petr@vandrovec.name>. Multiple pending signals with siginfo_t's weren't being handled correctly leading to smbd abort with kernel oplock signals. Jeremy
2009-08-19tevent: fix a commentMichael Adam1-1/+1
Michael
2009-08-17tevent: change version to 0.9.7 after adding tevent_req_cancel infrastructureStefan Metzmacher1-1/+1
metze
2009-08-17tevent: add tevent_req_cancel() infrastructureStefan Metzmacher3-0/+70
This offers a generic way for callers to cancel an async request. metze
2009-08-15tevent: add some more doxygen comments for tevent_req functionsStefan Metzmacher1-0/+38
metze
2009-08-12libreplace: undef AI_ADDRCONFIG on QNX 6.3.0 (fix bug #6630)Matt Kraai1-0/+14
Some of the functions in source3/lib/util_sock.c use AI_ADDRCONFIG. On QNX 6.3.0, this macro is defined but, if it's used, getaddrinfo will fail. This prevents smbd from opening any sockets. If I undefine AI_ADDRCONFIG on such systems and allow lib/replace/system/network.h to define it to be 0, this works around the issue. Signed-off-by: Stefan Metzmacher <metze@samba.org>
2009-08-11Rename ASN1_BITFIELD to ASN1_BIT_STRING.Kouhei Sutou1-1/+1
X.690 uses "BIT STRING" not "BIT FIELD".
2009-08-08libreplace: set SONAMEFLAG to "-Wl,-soname=" on QNXMatt Kraai1-1/+1
2009-08-06Add define guards around otherwise unused variable.Jeremy Allison1-0/+3
Jeremy.
2009-08-06There is one signedness issue in tdb which prevents traverses of TDB recordsRusty Russell1-9/+21
over the 2G offset on systems which support 64 bit file offsets. This fixes that case. On systems with 32 bit offsets, expansion and fcntl locking on these records will fail anyway. SAMBA already does '#define _FILE_OFFSET_BITS 64' in config.h (on my 32-bit x86 Linux system at least) to get 64 bit file offsets. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2009-08-05fixed a uid_wrapper bug that caused a segv in the RAW-ACLS testAndrew Tridgell1-8/+15
2009-08-05make the UID_WRAPPER skip checks at runtimeAndrew Tridgell4-5/+17
This fixes two issues pointed out by Andrew. It adds a runtime uwrap_enabled() call that wraps the skips needed for uid emulation. It also makes the skip in the directory_create_or_exist() function only change the uid checking code, not the permissions code
2009-08-05added a uid_wrapper libraryAndrew Tridgell6-0/+236
This library intercepts seteuid and related calls, and simulates them in a manner similar to the nss_wrapper and socket_wrapper libraries. This allows us to enable the vfs_unixuid NTVFS module in the build farm, which means we are more likely to catch errors in the token manipulation. The simulation is not complete, but it is enough for Samba4 for now. The major areas of incompleteness are: - no emulation of setreuid, setresuid or saved uids. These would be needed for use in Samba3 - no emulation of ruid changing. That would also be needed for Samba3 - no attempt to emulate file ownership changing, so code that (for example) tests whether st.st_uid matches geteuid() needs special handling
2009-07-31util/asn1: fix potential memory leak in asn1_write_OID()Stefan Metzmacher1-0/+1
metze
2009-07-31tdb: don't alter tdb->flags in tdb_reopen_all()Rusty Russell1-6/+13
The flags are user-visible, via tdb_get_flags/add_flags/remove_flags. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> Signed-off-by: Stefan Metzmacher <metze@samba.org>
2009-07-31tdb: Reimplementation of Metze's "lib/tdb: if we know pwrite and pread are ↵Rusty Russell1-5/+10
thread/fork safe tdb_reopen_all() should be a noop". This version just wraps the reopen code, so we still re-grab the lock and do the normal sanity checks. The reason we do this at all is to avoid global fd limits, see: http://forums.fedoraforum.org/showthread.php?t=210393 Note also that this whole reopen concept is fundamentally racy: if the parent goes away before the child calls tdb_reopen_all, the database can be left without an active lock and another TDB_CLEAR_IF_FIRST opener will clear it. A fork_with_tdbs() wrapper could use a pipe to solve this, but it's hardly elegant (what if there are other independent things which have similar needs?). Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> Signed-off-by: Stefan Metzmacher <metze@samba.org>
2009-07-31tdb: Revert "lib/tdb: if we know pwrite and pread are thread/fork safe ↵Rusty Russell1-5/+0
tdb_reopen_all() should be a noop" This reverts commit e17df483fbedb81aededdef5fbb6ae1d034bc2dd. tdb_reopen_all also restores the active lock, required for TDB_CLEAR_IF_FIRST. Signed-off-by: Stefan Metzmacher <metze@samba.org>
2009-07-30realloc() has that horrible overloaded free semantic when size is 0:Rusty Russell1-2/+7
current code does a free of the old record in this case, then fail.