summaryrefslogtreecommitdiff
path: root/source3/smbd/lanman.c
AgeCommit message (Collapse)AuthorFilesLines
2007-10-10r24949: Remove some static buffersVolker Lendecke1-7/+5
(This used to be commit df648d47ff3c4e24f439fda839653bda98323100)
2007-10-10r24809: Consolidate the use of temporary talloc contexts.Volker Lendecke1-1/+1
This adds the two functions talloc_stackframe() and talloc_tos(). * When a new talloc stackframe is allocated with talloc_stackframe(), then * the TALLOC_CTX returned with talloc_tos() is reset to that new * frame. Whenever that stack frame is TALLOC_FREE()'ed, then the reverse * happens: The previous talloc_tos() is restored. * * This API is designed to be robust in the sense that if someone forgets to * TALLOC_FREE() a stackframe, then the next outer one correctly cleans up and * resets the talloc_tos(). The original motivation for this patch was to get rid of the sid_string_static & friends buffers. Explicitly passing talloc context everywhere clutters code too much for my taste, so an implicit talloc_tos() is introduced here. Many of these static buffers are replaced by a single static pointer. The intended use would thus be that low-level functions can rather freely push stuff to talloc_tos, the upper layers clean up by freeing the stackframe. The more of these stackframes are used and correctly freed the more exact the memory cleanup happens. This patch removes the main_loop_talloc_ctx, tmp_talloc_ctx and lp_talloc_ctx (did I forget any?) So, never do a tmp_ctx = talloc_init("foo"); anymore, instead, use tmp_ctx = talloc_stackframe() :-) Volker (This used to be commit 6585ea2cb7f417e14540495b9c7380fe9c8c717b)
2007-10-10r24244: Complete the conversion of reply_trans[s]Volker Lendecke1-2/+2
Remove reply_prep/post_legacy from send_trans_replies (This used to be commit c08366f840ead5aba7199cf0b058587055b4d98e)
2007-10-10r24243: Remove reply_prep_legacy from api_replyVolker Lendecke1-22/+16
(This used to be commit b01664b43b0bd94bb59dec57480d2be954a7298a)
2007-10-10r24130: Explicitly pass flags2 to srvstr_pushVolker Lendecke1-1/+1
This is in preparation of the trans2 conversion: srvstr_push should not look at inbuf directly. (This used to be commit 5fd7e6a3821bea26d352e3edc23b7a216b1200e5)
2007-10-10r23967: Memleak fix from Atsushi Nakabayashi <nakabayashi@miraclelinux.com>Volker Lendecke1-0/+3
Thanks! Volker (This used to be commit 46997a70199296d4ec45780f002898f23029bb26)
2007-10-10r23784: use the GPLv3 boilerplate as recommended by the FSF and the license textAndrew Tridgell1-2/+1
(This used to be commit b0132e94fc5fef936aa766fb99a306b3628e9f07)
2007-10-10r23779: Change from v2 or later to v3 or later.Jeremy Allison1-1/+1
Jeremy. (This used to be commit 407e6e695b8366369b7c76af1ff76869b45347b3)
2007-10-10r23055: Rewrite messages.c to use auto-generated marshalling in the tdb. I'mVolker Lendecke1-2/+1
doing this because for the clustering the marshalling is needed in more than one place, so I wanted a decent routine to marshall a message_rec struct which was not there before. Tridge, this seems about the same speed as it used to be before, the librpc/ndr overhead in my tests was under the noise. Volker (This used to be commit eaefd00563173dfabb7716c5695ac0a2f7139bb6)
2007-10-10r22911: Pass a messaging_context to message_send_allVolker Lendecke1-1/+2
(This used to be commit cc92ce665dcfe9054d09429219883b18a4cab090)
2007-10-10r22761: This introduces lib/conn_tdb.c with two main functions: ↵Volker Lendecke1-1/+2
connections_traverse and connections_forall. This centralizes all the routines that did individual tdb_open("connections.tdb") and direct tdb_traverse. Volker (This used to be commit e43e94cda1ad8876b3cb5d1129080b57fa6ec214)
2007-10-10r22561: Fix a memleak in lanman.c: Nobody would free the session_list.Volker Lendecke1-1/+1
Volker (This used to be commit 5d428400f77399b7fc30fb2a0fb10f0c74b96458)
2007-10-10r22391: Looks bigger than it is. Make "inbuf" availableJeremy Allison1-5/+19
to all callers of smb_setlen (via set_message() calls). This will allow the server to reflect back the correct encryption context. Jeremy. (This used to be commit 2d80a96120a5fe2fe726f00746d36d85044c4bdb)
2007-10-10r22065: First logic change I've found :-(. We were being tooJeremy Allison1-9/+24
restrictive about strings being NULL. If an info level doesn't use a subformat the subformat string may be missing (null). Add debug statements to help track this. Jeremy (This used to be commit 70875f92a22985539dc41e26a084218a45e1a13f)
2007-10-10r22050: Fix a couple of off-by-one errors in the rapJeremy Allison1-3/+15
call patch. Jerry, this works now for displaying shares on Win9x (and hopefully everything else as well :-). Jeremy. (This used to be commit 728a4cc71376f9cfff2578d21a47602f8b7c6531)
2007-10-10r22045: As Volker noticed, skip_string's last argument isJeremy Allison1-94/+98
redundent. Remove it. Jeremy. (This used to be commit 140881cfbb59ce4a699b5900efe02bf315be7bd5)
2007-10-10r22044: Remove the only skip_string(...,2) callerVolker Lendecke1-1/+1
(This used to be commit 08ea2b83b26968990fce191cdafe26d3183518a6)
2007-10-10r22043: Comparing lanman.c with -r22013 is now MUCH easier, thanks! This ↵Volker Lendecke1-3/+0
looks much easier to review! Damn close to what I had in my tree, just the fn names were slightly different. This removes one unnecessary dupe. Next thing is to get rid of the parameter "n" of skip_string, there is only one (!) caller that does not pass in 1.... Volker (This used to be commit 2878c1e93a8d71288fa3144cff57bce66c592e22)
2007-10-10r22042: Try and clean up my own mess using the API VolkerJeremy Allison1-71/+76
suggested. I now use : BOOL is_offset_safe(const char *buf_base, size_t buf_len, char *ptr, size_t off) char *get_safe_ptr(const char *buf_base, size_t buf_len, char *ptr, size_t off) char *get_safe_str_ptr(const char *buf_base, size_t buf_len, char *ptr, size_t off) int get_safe_SVAL(const char *buf_base, size_t buf_len, char *ptr, size_t off, int failval) int get_safe_IVAL(const char *buf_base, size_t buf_len, char *ptr, size_t off, int failval) Volker, please criticize and comment. Thanks, Jeremy. (This used to be commit d47af7c9263f519e7307859b6a696d854c5dfca3)
2007-10-10r22017: After changing 2000 lines of this I think this is needed :-).Jeremy Allison1-0/+1
Jeremy. (This used to be commit 99092e8841edea468fa1e59a8c725f3467b58966)
2007-10-10r22014: Make us pass RANDOMIPC test again :-(. This is an ugly check-in,Jeremy Allison1-277/+601
but I've no option. Jeremy. (This used to be commit c3a565081d70b209a4f9e6e8f1859bf7194a5f74)
2007-10-10r19963: Add 'registry shares = yes' and registry key security descriptors.Volker Lendecke1-0/+1
(This used to be commit 6cab254c49e07b11c170511ec613f0f33914c3e6)
2007-10-10r19203: Part two of returning our real name. This code is a bit ancient... :-)Volker Lendecke1-1/+1
(This used to be commit 370c24ba2ad3bce29929886f96d626e698da0238)
2007-10-10r19184: W2k3 returns its name for the GetServerInfo RAP call. Do the same.Volker Lendecke1-1/+1
Implement 'net rap server name'. Volker (This used to be commit 919385ed2a2a07e848bc0baaac9ed3d1964d4386)
2007-10-10r18271: Big change:Gerald Carter1-1/+1
* autogenerate lsa ndr code * rename 'enum SID_NAME_USE' to 'enum lsa_SidType' * merge a log more security descriptor functions from gen_ndr/ndr_security.c in SAMBA_4_0 The most embarassing thing is the "#define strlen_m strlen" We need a real implementation in SAMBA_3_0 which I'll work on after this code is in. (This used to be commit 3da9f80c28b1e75ef6d46d38fbb81ade6b9fa951)
2007-10-10r17879: Make it explicit that we can never pass NULL for buflen or stringlen.Jeremy Allison1-6/+2
Stanford Checker fix. Jeremy. (This used to be commit 2d8bdd2dce633253780a5b0378f229893d049666)
2007-10-10r16945: Sync trunk -> 3.0 for 3.0.24 code. Still needJeremy Allison1-13/+32
to do the upper layer directories but this is what everyone is waiting for.... Jeremy. (This used to be commit 9dafb7f48ca3e7af956b0a7d1720c2546fc4cfb8)
2007-10-10r16241: Fix Klocwork #106 and others like it.Jeremy Allison1-5/+6
Make 2 important changes. pdb_get_methods() returning NULL is a *fatal* error. Don't try and cope with it just call smb_panic. This removes a *lot* of pointless "if (!pdb)" handling code. Secondly, ensure that if samu_init() fails we *always* back out of a function. That way we are never in a situation where the pdb_XXX() functions need to start with a "if (sampass)" test - this was just bad design, not defensive programming. Jeremy. (This used to be commit a0d368197d6ae6777b7c2c3c6e970ab8ae7ca2ae)
2007-10-10r16230: Fix Klocwork #861 and others. localtime and asctimeJeremy Allison1-0/+3
can return NULL. Ensure we check all returns correctly. Jeremy. (This used to be commit 6c61dc8ed6d84f310ef391fb7700e93ef42c4afc)
2007-10-10r13983: Fix Coverity bug # 111Volker Lendecke1-0/+1
(This used to be commit 08d7fd31ab250bc6ba3922b36aa7b0cfef1e5bf1)
2007-10-10r13915: Fixed a very interesting class of realloc() bugs found by Coverity.Jeremy Allison1-10/+166
realloc can return NULL in one of two cases - (1) the realloc failed, (2) realloc succeeded but the new size requested was zero, in which case this is identical to a free() call. The error paths dealing with these two cases should be different, but mostly weren't. Secondly the standard idiom for dealing with realloc when you know the new size is non-zero is the following : tmp = realloc(p, size); if (!tmp) { SAFE_FREE(p); return error; } else { p = tmp; } However, there were *many* *many* places in Samba where we were using the old (broken) idiom of : p = realloc(p, size) if (!p) { return error; } which will leak the memory pointed to by p on realloc fail. This commit (hopefully) fixes all these cases by moving to a standard idiom of : p = SMB_REALLOC(p, size) if (!p) { return error; } Where if the realloc returns null due to the realloc failing or size == 0 we *guarentee* that the storage pointed to by p has been freed. This allows me to remove a lot of code that was dealing with the standard (more verbose) method that required a tmp pointer. This is almost always what you want. When a realloc fails you never usually want the old memory, you want to free it and get into your error processing asap. For the 11 remaining cases where we really do need to keep the old pointer I have invented the new macro SMB_REALLOC_KEEP_OLD_ON_ERROR, which can be used as follows : tmp = SMB_REALLOC_KEEP_OLD_ON_ERROR(p, size); if (!tmp) { SAFE_FREE(p); return error; } else { p = tmp; } SMB_REALLOC_KEEP_OLD_ON_ERROR guarentees never to free the pointer p, even on size == 0 or realloc fail. All this is done by a hidden extra argument to Realloc(), BOOL free_old_on_error which is set appropriately by the SMB_REALLOC and SMB_REALLOC_KEEP_OLD_ON_ERROR macros (and their array counterparts). It remains to be seen what this will do to our Coverity bug count :-). Jeremy. (This used to be commit 1d710d06a214f3f1740e80e0bffd6aab44aac2b0)
2007-10-10r13590: * replace all pdb_init_sam[_talloc]() calls with samu_new()Gerald Carter1-2/+2
* replace all pdb_{init,fill}_sam_pw() calls with samu_set_unix() (This used to be commit 6f1afa4acc93a07d0ee9940822d7715acaae634f)
2007-10-10r13576: This is the beginnings of moving the SAM_ACCOUNT data structureGerald Carter1-3/+3
to make full use of the new talloc() interface. Discussed with Volker and Jeremy. * remove the internal mem_ctx and simply use the talloc() structure as the context. * replace the internal free_fn() with a talloc_destructor() function * remove the unnecessary private nested structure * rename SAM_ACCOUNT to 'struct samu' to indicate the current an upcoming changes. Groups will most likely be replaced with a 'struct samg' in the future. Note that there are now passbd API changes. And for the most part, the wrapper functions remain the same. While this code has been tested on tdb and ldap based Samba PDC's as well as Samba member servers, there are probably still some bugs. The code also needs more testing under valgrind to ensure it's not leaking memory. But it's a start...... (This used to be commit 19b7593972480540283c5bf02c02e5ecd8d2c3f0)
2007-10-10r13571: Replace all calls to talloc_free() with thye TALLOC_FREE()Gerald Carter1-2/+2
macro which sets the freed pointer to NULL. (This used to be commit b65be8874a2efe5a4b167448960a4fcf6bd995e2)
2007-10-10r13443: Fix the build.Günther Deschner1-2/+2
Guenther (This used to be commit 40a21776a7a16f3200e87c6564d9b6e8c481dd1e)
2007-10-10r13316: Let the carnage begin....Gerald Carter1-1240/+1450
Sync with trunk as off r13315 (This used to be commit 17e63ac4ed8325c0d44fe62b2442449f3298559f)
2007-10-10r12163: Change lookup_sid and lookup_name to return const char * instead of ↵Volker Lendecke1-1/+1
char *, use a temporary talloc_ctx for clarity. Volker (This used to be commit b15815c804bf3e558ed6357b5e9a6e3e0fac777f)
2007-10-10r12051: Merge across the lookup_name and lookup_sid work. Lets see how the ↵Volker Lendecke1-5/+5
build farm reacts :-) Volker (This used to be commit 9f99d04a54588cd9d1a1ab163ebb304437f932f7)
2007-10-10r11511: A classic "friday night check-in" :-). This moves muchJeremy Allison1-314/+353
of the Samba4 timezone handling code back into Samba3. Gets rid of "kludge-gmt" and removes the effectiveness of the parameter "time offset" (I can add this back in very easily if needed) - it's no longer being looked at. I'm hoping this will fix the problems people have been having with DST transitions. I'll start comprehensive testing tomorrow, but for now all modifications are done. Splits time get/set functions into srv_XXX and cli_XXX as they need to look at different timezone offsets. Get rid of much of the "efficiency" cruft that was added to Samba back in the day when the C library timezone handling functions were slow. Jeremy. (This used to be commit 414303bc0272f207046b471a0364fa296b67c1f8)
2007-10-10r11137: Compile with only 2 warnings (I'm still working on that code) on a gcc4Jeremy Allison1-2/+2
x86_64 box. Jeremy. (This used to be commit d720867a788c735e56d53d63265255830ec21208)
2007-10-10r9290: Some error path cleanups found by Coverity. Whitespace reformatting.Jeremy Allison1-232/+277
This file need a lot of error path cleanup. Jeremy. (This used to be commit ce93e469d80bb26cda390626ba8cc55ff9c822b6)
2007-10-10r9288: Whitespace cleanup and memory leak on error path fix found by Coverity.Jeremy Allison1-55/+60
Jeremy. (This used to be commit 0b85900fc8d79c71af986bb8b6346bba7840a704)
2007-10-10r6279: Convert the RAP enum functions to the pdb_search API. Who is using thisVolker Lendecke1-45/+56
nowadays? This looks rather broken, but survives basic tests with 'net'. Volker (This used to be commit 7ae1b94e3eda574729272238cd08e83a33278a7e)
2007-10-10r6225: get rid of warnings from my compiler about nested externsHerb Lewis1-3/+3
(This used to be commit efea76ac71412f8622cd233912309e91b9ea52da)
2007-10-10r5165: BUG 2295: always use get_local_machine_name() rather than digging in ↵Gerald Carter1-6/+4
the gloval variable 'local_machine' (This used to be commit 6a6e4af46a5c0a693a3dd9d558a4d1c1e5d72d95)
2007-10-10r4847: Hand over a acb_mask to pdb_setsampwent in load_sampwd_entries().Günther Deschner1-1/+1
This allows the ldap-backend to search much more effeciently. Machines will be searched in the ldap_machine_suffix and users in the ldap_users_suffix. (Note that we already use the ldap_group_suffix in ldapsam_setsamgrent for quite some time). Using the specific ldap-bases becomes notably important in large domains: On my testmachine "net rpc trustdom list" has to search through 40k accounts just to list 3 interdomain-trust-accounts, similiar effects show up the non-user query_dispinfo-calls, etc. Also renamed all_machines to only_machines in load_sampwd_entries() since that reflects better what is really meant. Guenther (This used to be commit 6394257cc721ca739bda0e320375f04506913533)
2007-10-10r4088: Get medieval on our ass about malloc.... :-). Take control of all our ↵Jeremy Allison1-65/+64
allocation functions so we can funnel through some well known functions. Should help greatly with malloc checking. HEAD patch to follow. Jeremy. (This used to be commit 620f2e608f70ba92f032720c031283d295c5c06a)
2007-10-10r4083: consolidate printer searches to use find_service rather than for loopsGerald Carter1-35/+17
(This used to be commit 12440744ba36445186042c8c254785766cce5385)
2007-10-10r3848: Fix for bug 2057. Only partially applied the patch, the second part ↵Volker Lendecke1-0/+7
seems not necessary. I'm using gcc 3.4.1, this does not detect the possibly uninitialized variable. Does anybody know how to get 3.4.1 to warn me? Volker (This used to be commit 8b6f8f93a0f30be0184e6044a499c1ef8f7b247e)
2007-10-10r3824: Fix crash in api_RNetShareEnum. ServicePtrs[] may contain invalidVolker Lendecke1-0/+4
entries. Happened after rev3708 removed non-existing cups printers. Volker (This used to be commit 60998d9d2f6272e383304da2b1d568a4b65f8787)