summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* docs-xml: document smbstatus --fastChristian Ambach2012-07-181-0/+10
|
* s3:smbstatus add --fast optionChristian Ambach2012-07-181-4/+11
| | | | | | this option skips all checks if the process for the record is still there using it gives a huge performance benefit on busy systems and clusters while it might display stale data if a smbd crashed
* s3:smbstatus don't check if process exists twiceChristian Ambach2012-07-181-4/+0
| | | | is_valid_share_mode_entry() already calls serverid_exists which calls process_exists()
* s3:smbstatus rename a function to make its purpose more clearChristian Ambach2012-07-181-4/+4
| | | | traverse_fn1 does not really intuitively make clear that it is used to traverse connections
* s3:smbstatus fix a compiler warningChristian Ambach2012-07-181-1/+1
| | | | about comparison of signed with unsigned
* s4-lib/tls: Try socket_send() multiple times to send partial packetsAndrew Bartlett2012-07-181-13/+26
| | | | | | | | | | | | | | | | This works around an artificial limitation in socket_wrapper that breaks some versions of GnuTLS when we return a short write. Instead, keep pushing until the OS will not take it. The correct solution will be to use tls_tstream, but the client code for this is not yet tested and needs the ldap client layer changed to use it. Andrew Bartlett Autobuild-User(master): Andrew Bartlett <abartlet@samba.org> Autobuild-Date(master): Wed Jul 18 11:23:55 CEST 2012 on sn-devel-104
* s4-librpc: Ensure we do not call call the decrpc timeout handler during ↵Andrew Bartlett2012-07-183-5/+39
| | | | | | | | | | | | gensec_update() This avoids a situation where we could destroy pointers on the stack due to a nested event loop. This is certainly not a final, generic solution, but it is a minimal change while we work to make gensec and gensec_gssapi async. Andrew Bartlett
* s4-dbcheck: Check for and correct incorrect instanceType valuesAndrew Bartlett2012-07-181-0/+45
|
* dsdb: Allocate new OID to allow updates of a read-only replicaAndrew Bartlett2012-07-185-5/+15
| | | | | | | Normally this would be a very bad idea, but the specific case of fixing the instanceType is the only case where this makes sense. Andrew Bartlett
* s4-dsdb: Allow dbcheck to correct an incorrect instanceTypeAndrew Bartlett2012-07-181-3/+5
|
* s4-dsdb: Ensure we never write read-only objects onto a read-write replicaAndrew Bartlett2012-07-181-1/+8
| | | | | | | | | | We should prevent this much further up the stack, but at least add a choke at this point for now. Additionally, this avoids administrator-forced replications causing considerable damange to the directory. Andrew Bartlett
* source4/torture: add talloc_stackframe()Rusty Russell2012-07-181-0/+3
| | | | | | | | | We need a stackframe to call lp_load(). Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> Autobuild-User(master): Rusty Russell <rusty@rustcorp.com.au> Autobuild-Date(master): Wed Jul 18 09:31:07 CEST 2012 on sn-devel-104
* source3/netapi: fix only caller which doesn't set up a talloc_stackframe()Rusty Russell2012-07-181-0/+4
| | | | | | | | libnetapi_free() needs a stackframe too; looked like Andrew and Günther missed this in a37de9a95974c138d264d9cb0c7829bb426bb2d6. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
* source3/passdb/py_passdb.c: wrap all calls in talloc_stackframe()Rusty Russell2012-07-181-519/+489
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | dbwrap needs it. Some calls were already wrapped, but they checked the talloc_stackframe() return unnecessarily: it can never be NULL. This is the coccinelle patch I used: // Add in a stackframe to every function: be sure to free it on (every) return @rule0@ identifier func; @@ func(...) { +TALLOC_CTX *frame = talloc_stackframe(); <... +talloc_free(frame); return ...; ...> } // Get rid of tframe allocation/frees, replace usage with frame. @rule1@ identifier func; identifier oldframe; @@ func(...) { ... -TALLOC_CTX *oldframe; ... -if ((oldframe = talloc_stackframe()) == NULL) { - ... -} <... -talloc_free(oldframe); ...> } // Get rid of tframe (variant 2) @rule2@ identifier func; identifier oldframe; @@ func(...) { ... -TALLOC_CTX *oldframe; ... -oldframe = talloc_stackframe(); -if (oldframe == NULL) { - ... -} <... -talloc_free(oldframe); ...> } // Change tframe to frame @rule3@ identifier func; @@ func(...) { <... -tframe +frame ...> } Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
* source3/passdb/py_passdb.c: don't steal from talloc_stackframe().Rusty Russell2012-07-181-15/+2
| | | | | | | | | | If you want a stack-style allocation, use talloc_stackframe(). If you don't, don't use it. In particular, talloc_stackframe() here is actually inside a pool, and stealing from pools is a bad idea. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
* source3/torture/pdbtest: allocate talloc_stackframe()Rusty Russell2012-07-181-2/+2
| | | | | | | Avoid talloc_tos() without a stackframe. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
* talloc_stack: abort in developer me if no stackframe on talloc_tos()Rusty Russell2012-07-182-4/+9
| | | | | | | Don't tolerate leaks in developer mode. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
* loadparm: make the source3/ lp_ functions take an explicit TALLOC_CTX *.Rusty Russell2012-07-1886-622/+661
| | | | | | | | | | They use talloc_tos() internally: hoist that up to the callers, some of whom don't want to us talloc_tos(). A simple patch, but hits a lot of files. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
* source3/utils/net_conf.c: fix stackframe leakRusty Russell2012-07-181-0/+2
| | | | | | | net_conf_wrap_function() doesn't free its stackframe. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
* source3/winbindd/winbindd_pam.c: fix stackframe leakRusty Russell2012-07-181-0/+1
| | | | | | | check_info3_in_group() doesn't always free its stackframe. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
* source3/lib/smbconf/testsuite.c: fix stackframe leakRusty Russell2012-07-181-0/+1
| | | | | Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
* source3/registry/reg_backend_db.c: fix stackframe leakRusty Russell2012-07-181-2/+4
| | | | | | | regdb_store_values_internal() doesn't always free its stackframe. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
* source3/winbindd/idmap_tdb_common.c: fix stackframe leakRusty Russell2012-07-181-0/+1
| | | | | | | idmap_tdb_common_sid_to_unixid() doesn't always free its stackframe. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
* source3/rpc_server/svcctl/srv_svcctl_reg.c: fix stackframe leakRusty Russell2012-07-181-0/+1
| | | | | | | svcctl_init_winreg() doesn't free its stackframe. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
* source3/modules/vfs_xattr_tdb.c: fix stackframe leakRusty Russell2012-07-181-1/+3
| | | | | | | xattr_tdb_getxattr() doesn't free its stackframe. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
* lib/util/modules.c: fix stackframe leak.Rusty Russell2012-07-181-1/+2
| | | | | | | do_smb_load_module() doesn't free its stackframe on success. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
* source3/winbindd/winbindd_util.c: fix stackframe leakRusty Russell2012-07-181-2/+4
| | | | | | | winbindd_can_contact_domain() doesn't always free its stackframe. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
* nt_printing_tdb_migrate(): fix stackframe leak.Rusty Russell2012-07-181-0/+1
| | | | | Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
* source3/client/client.c: fix stackframe leak.Rusty Russell2012-07-181-13/+7
| | | | | | | do_message_op() doesn't free its stackframe in various paths. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
* smbpasswd: always free frame.Rusty Russell2012-07-181-4/+4
| | | | | | | | We're about to exit, so it doesn't really matter, but might as well unify the paths. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
* talloc_stack: report lazy freeing (panic if DEVELOPER).Rusty Russell2012-07-181-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>
* talloc_stack: always include the location when creating a talloc_stackframe().Rusty Russell2012-07-182-8/+11
| | | | | | | Much better for debugging. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
* talloc_stack: handle more than one talloc_stackframe_pool()Rusty Russell2012-07-181-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>
* talloc: don't allow a talloc_pool inside a talloc_pool.Rusty Russell2012-07-182-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>
* talloc: use a struct for pool headers.Rusty Russell2012-07-182-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>
* s3-linux-aio: Fix error handlingVolker Lendecke2012-07-171-4/+2
| | | | | | | Signed-off-by: Jeremy Allison <jra@samba.org> Autobuild-User(master): Jeremy Allison <jra@samba.org> Autobuild-Date(master): Tue Jul 17 21:22:31 CEST 2012 on sn-devel-104
* Add debug message when SD hash doesn't match.Jeremy Allison2012-07-171-0/+5
|
* s3-autoconf: Fix the build.Günther Deschner2012-07-171-11/+3
| | | | | | | Guenther Autobuild-User(master): Andreas Schneider <asn@cryptomilk.org> Autobuild-Date(master): Tue Jul 17 16:17:06 CEST 2012 on sn-devel-104
* Enable AES in winbind.Andreas Schneider2012-07-171-1/+1
| | | | Signed-off-by: Günther Deschner <gd@samba.org>
* s3-rpc_client: Fix updating netlogon credentials.Andreas Schneider2012-07-171-8/+7
| | | | Signed-off-by: Günther Deschner <gd@samba.org>
* s3-rpc_client: Add capabilities check for AES encrypted connections.Andreas Schneider2012-07-171-1/+158
| | | | Signed-off-by: Günther Deschner <gd@samba.org>
* s4-auth: Make sure we use the correct credential state.Andreas Schneider2012-07-171-1/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If we create a copy of the credential state we miss updates to the credentials. To establish a netlogon schannel connection we create client credentials and authenticate with them using dcerpc_netr_ServerAuthenticate2() For this we call netlogon_creds_client_authenticator() which increases the sequence number and steps the credentials. Lets assume the sequence number is 1002. After a successful authentication we get the server credentials and we send bind a auth request with the received creds. This sets up gensec and the gensec schannel module created a copy of the client creds and stores it in the schannel auth state. So the creds stored in gensec have the sequence number 1002. After that we continue and need the client credentials to call dcerpc_netr_LogonGetCapabilities() to verify the connection. So we need to increase the sequence number of the credentials to 1004 and step the credentials to the next state. The server always does the same and everything is just fine here. The connection is established and we want to do another netlogon call. So we get the creds from gensec and want to do a netlogon call e.g. dcerpc_netr_SamLogonWithFlags. We get the needed creds from gensec. The sequence number is 1002 and we talk to the server. The server is already ahead cause we are already at sequence number 1004 and the server expects it to be 1006. So the server gives us ACCESS_DENIED cause we use a copy in gensec. Signed-off-by: Günther Deschner <gd@samba.org>
* s4-librpc: Add capabilities check for AES encrypted connections.Andreas Schneider2012-07-171-1/+110
| | | | Signed-off-by: Günther Deschner <gd@samba.org>
* s4-torture: Improve samlogon test.Andreas Schneider2012-07-171-0/+8
|
* s4-torture: Add DCERPC_SCHANNEL_AES tests.Andreas Schneider2012-07-171-1/+5
| | | | Signed-off-by: Günther Deschner <gd@samba.org>
* s3:rpc_server: add support for AES bases netlogon schannelStefan Metzmacher2012-07-171-0/+4
| | | | | | metze Signed-off-by: Günther Deschner <gd@samba.org>
* s4:rpc_server/netlogon: add support for AES based netlogon schannelStefan Metzmacher2012-07-171-0/+4
| | | | | | metze Signed-off-by: Günther Deschner <gd@samba.org>
* s4:librpc/rpc: add DCERPC_SCHANNEL_AES supportStefan Metzmacher2012-07-172-2/+18
| | | | | | metze Signed-off-by: Günther Deschner <gd@samba.org>
* libcli/auth: add support for AES/HMAC-SHA256 to the netlogon schannel sign/sealStefan Metzmacher2012-07-171-51/+137
| | | | | | metze Signed-off-by: Günther Deschner <gd@samba.org>
* libcli/auth: add support for AES/HMAC-SHA256 schannel session key supportStefan Metzmacher2012-07-171-3/+63
| | | | | | metze Signed-off-by: Günther Deschner <gd@samba.org>