1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-19 10:03:58 +03:00

678 Commits

Author SHA1 Message Date
Matt Kraai
91d13b68be libreplace: undef AI_ADDRCONFIG on QNX 6.3.0 (fix bug #6630)
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-12 13:27:39 +02:00
Kouhei Sutou
7fc94932ad Rename ASN1_BITFIELD to ASN1_BIT_STRING.
X.690 uses "BIT STRING" not "BIT FIELD".
2009-08-11 12:59:14 +02:00
Matt Kraai
e1a95e7961 libreplace: set SONAMEFLAG to "-Wl,-soname=" on QNX 2009-08-08 11:18:29 +02:00
Jeremy Allison
4fc9f9c3f9 Add define guards around otherwise unused variable.
Jeremy.
2009-08-06 11:47:08 -07:00
Rusty Russell
252f7da702 There is one signedness issue in tdb which prevents traverses of TDB records
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-06 13:13:42 +10:00
Andrew Tridgell
d40537c92a fixed a uid_wrapper bug that caused a segv in the RAW-ACLS test 2009-08-05 13:32:04 +10:00
Andrew Tridgell
58e5e1ea8d make the UID_WRAPPER skip checks at runtime
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-05 11:21:06 +10:00
Andrew Tridgell
fd43e0ee09 added a uid_wrapper library
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-08-05 10:51:00 +10:00
Stefan Metzmacher
2ef1159c0d util/asn1: fix potential memory leak in asn1_write_OID()
metze
2009-07-31 14:42:02 +02:00
Rusty Russell
a207cca1d3 tdb: don't alter tdb->flags in tdb_reopen_all()
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-31 14:40:28 +02:00
Rusty Russell
3b2f074bda tdb: Reimplementation of Metze's "lib/tdb: if we know pwrite and pread are 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-31 14:40:28 +02:00
Rusty Russell
fa91bc6719 tdb: Revert "lib/tdb: if we know pwrite and pread are thread/fork safe 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-31 14:40:28 +02:00
Rusty Russell
36c0f0f99a realloc() has that horrible overloaded free semantic when size is 0:
current code does a free of the old record in this case, then fail.
2009-07-30 13:10:33 -07:00
Rusty Russell
a88c281ddc If the record is at the end of the database, pretending it has length 1
might take us out-of-bounds.  Only pretend to be length 1 for the malloc.
2009-07-30 13:09:33 -07:00
Jelmer Vernooij
6768cfe624 DCE/RPC(Python): Rename py_talloc_import to py_talloc_steal.
Use py_talloc_reference in DCE/RPC code, fixes
					access to SAMR pipe.
2009-07-30 20:04:42 +02:00
Volker Lendecke
7c768ddab6 No explicit initialization necessary for a zero blob 2009-07-25 12:59:21 -04:00
Rusty Russell
760104188d tdb: fix locking error
54a51839ea65aa788b18fce8de0ae4f9ba63e4e7 "Make tdb transaction lock
recursive (samba version)" was broken: I "cleaned it up" and prevented
it from ever unlocking.

To see the problem:
	$ bin/tdbtorture -s 1248142523
	tdb_brlock failed (fd=3) at offset 8 rw_type=1 lck_type=14 len=1
	tdb_transaction_lock: failed to get transaction lock
	tdb_transaction_start failed: Resource deadlock avoided

My testcase relied on the *count* being correct, which it was.  Fixing that
now.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Signed-off-by: Michael Adam <obnox@samba.org>
2009-07-21 10:21:53 +02:00
Tim Prouty
04c3dfde0f lib util: Fix const warning 2009-07-20 16:08:24 -07:00
Rusty Russell
54a51839ea Make tdb transaction lock recursive (samba version)
This patch replaces 6ed27edbcd3ba1893636a8072c8d7a621437daf7 and
1a416ff13ca7786f2e8d24c66addf00883e9cb12, which fixed the bug where traversals
inside transactions would release the transaction lock early.

This solution is more general, and solves the more minor symptom that nested
traversals would also release the transaction lock early.  (It was also suggestd in
Volker's comment in 6ed27ed).

This patch also applies to ctdb, if the traverse.c part is removed (ctdb's tdb
code never received the previous two fixes).

Tested using the testsuite from ccan (adapted to the samba code).  Thanks to
Michael Adam for feedback.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Signed-off-by: Michael Adam <obnox@samba.org>
2009-07-20 22:17:20 +02:00
Jelmer Vernooij
54670bb400 Remove unused parameter setting. 2009-07-19 18:58:22 +02:00
Slava Semushin
5f8df16471 lib/util/util_file.c(file_save): fixed file descriptor leak when read(2) fails.
Found by cppcheck:
[./lib/util/util_file.c:383]: (error) Resource leak: fd
2009-07-19 16:00:39 +02:00
Matthieu Patou
a817cff5a0 Fix broken password quality check
This fixes broken password tests when the passwords contain non ASCII characters
(e.g. accentuated chars like ('e, `e, ...)
2009-07-19 16:00:19 +02:00
Matt Kraai
dbedfc318e include unix.h if it's available 2009-07-19 15:59:03 +02:00
Stefan Metzmacher
39684d2cbe tevent: try to fix the build on QNX qnx18 6.4.1 it doesn't have SA_RESTART defined
metze
2009-07-16 11:41:28 +02:00
Stefan Metzmacher
1f12dc4409 tsocket: rename sa_len => sa_socklen, because sa_len is a macro on some platforms
metze
2009-07-16 08:21:08 +02:00
Jeremy Allison
5927ca7067 Change to talloc_zero_size instead of extra memset.
Jeremy.
2009-07-14 16:54:01 -07:00
Jeremy Allison
7be1d727a3 When tallocing a memory block for the state in a tevent_req struct,
ensure it's zeroed out. Vl & Metze please check.
Jeremy.
2009-07-14 16:42:21 -07:00
Björn Jacke
43887c8d71 libreplace: update library search path variables 2009-07-05 22:42:29 +02:00
Volker Lendecke
5742ed128d Fix some warnings 2009-07-04 12:54:22 +02:00
Björn Jacke
cdf025f012 tdb: fix define of tdbdir when srcdir != "." 2009-07-03 18:24:42 +02:00
Simo Sorce
7119241c0d Sort the signature files 2009-07-03 08:45:30 -04:00
Simo Sorce
30b2014a01 Expose functions need by backend writers
move publicly needed structures and functions in the public header.
Stop installing internal headers.
Update the signature and exports files with the new exposed
function.
2009-07-03 08:45:30 -04:00
Simo Sorce
2738178d13 Restore ABI compatibility for talloc. 2009-07-03 08:45:29 -04:00
Stefan Metzmacher
f1dbd58a99 talloc: change TALLOC_MAGIC for version 2.0.0
metze
2009-07-02 23:18:42 +10:00
Andrew Tridgell
acfb01a8f6 change talloc to 2.0.0
This is needed to prevent samba3 and samba4 from using an ABI
incompatible system version of talloc

See ongoing discussion on the samba-technical mailing list
2009-07-02 15:19:40 +10:00
Michael Adam
8d982d91f2 lib/util: fix order of includes in tevent_ntstatus.c
replace.h needs to be included first.

Michael
2009-07-01 11:14:54 +02:00
Andrew Tridgell
34d6d7cec8 fixed the talloc testsuite for the recent changes 2009-07-01 16:37:33 +10:00
Andrew Tridgell
3c2f4df555 a talloc_realloc() to zero size needs to use an unambiguous free 2009-07-01 16:37:33 +10:00
Andrew Tridgell
5fe1d8dc12 changes to remove the ambiguity in talloc_free() and talloc_steal()
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-07-01 15:15:37 +10:00
Andrew Tridgell
956b5a0003 fixed use of reference in pytalloc
The previous code caused memory leaks, and also caused situations
where talloc_free could be called on pointers with multiple parents

The new approach is to have two functions:

  py_talloc_import : steals the pointer, so it becomes wholly owned by
                     the python object
  py_talloc_reference: uses a reference, so it is owned by both python
                     and C
2009-07-01 15:15:37 +10:00
Michael Adam
e4e855563b lib/util: fix building tevent_ntstatus without config.h
(when called from places with "#define NO_CONFIG_H" set, such as configure)

 Michael
2009-06-29 16:51:52 +02:00
Stefan Metzmacher
857ed9ca5a tsocket/bsd: also ask for TEVENT_FD_READ when we want to write into a stream socket
Otherwise we would not notice a broken connection.

metze
2009-06-29 16:03:57 +02:00
Stefan Metzmacher
b1d5e515b2 tsocket/bsd: more correctly check if the cached tevent_fd is still valid
I some cases the pointer value of tevent_context is the same again,
if we do something like:

	ev1 = tevent_context_init();
	...
	fde = tevent_add_fd(ev1, fd, TEVENT_FD_READ...);
	...
	talloc_free(ev1);
	...
	ev2 = tevent_context_init();

	if (ev1 == ev2) {
		/* this can happen! */
	}

	if (tevent_fd_get_flags(fde) == 0) {
		/* this is always true */
	}

But the "talloc_free(ev1)" will set fde->event_ctx to NULL
and tevent_fd_get_flags() will always return 0.

metze
2009-06-29 16:03:57 +02:00
Andrew Bartlett
6e92505080 Fix ndrdump to use a common setup_logging() API
By adding a new common setup_logging_stdout() API, we no longer need to abuse the ABI compatability between the different setup_logging() calls in Samba3 and Samba4's DEBUG() subsystems.

The revert of 49a6d757b4d944cd22c91b2838beb83f04fbe1e9 works with this
to fix bug 6211.

Andrew Bartlett
2009-06-29 20:12:23 +10:00
Andrew Bartlett
0e95b807b9 Revert "s4:debug: make setup_logging() a bit more compatible with samba3"
The problem is that the enum was previously a 'rachet', that is, it
would only reset to a level higher than it was previouly set to.
Changing the order broke file-based logging for our production sites.

This reverts commit 49a6d757b4d944cd22c91b2838beb83f04fbe1e9.
2009-06-29 19:57:57 +10:00
Nathaniel McCallum
1e21adaaf6 Two patches which fix issues on cross compiling/building 2009-06-29 13:39:52 +10:00
Volker Lendecke
c687eb15d9 Properly free a downlevel readv request. Metze, please check 2009-06-27 23:17:49 +02:00
Volker Lendecke
22cb9bdfd3 Move asn1_load_nocopy() to lib/util/asn1.c 2009-06-20 18:54:07 +02:00
Volker Lendecke
ecf8cebf32 Move asn1_blob() to lib/util/asn1.c 2009-06-20 18:54:07 +02:00
Andrew Bartlett
17e1cbb6d3 Partially revert restriction of socket_wrapper to 1500 byte writes
This keeps the restriction for stream sockets (where the caller will
retry), without creating problems on datagram sockets (CLDAP is not
defined, as far as I know, across multiple UDP packets).

The commit adding this restriction was
47b106c0ae8b91c9cccfc21bf8e4e416b1abfd5d

Andrew Bartlett
2009-06-19 14:36:06 +10:00