1
0
mirror of https://github.com/samba-team/samba.git synced 2025-12-16 00:23:52 +03:00
Commit Graph

1668 Commits

Author SHA1 Message Date
Volker Lendecke
bb6d678575 r14033: Fix Coverity bug # 126 2007-10-10 11:11:06 -05:00
Jim McDonough
217d3fbe79 r13968: fix typo, caught by Guenther 2007-10-10 11:11:02 -05:00
Jim McDonough
f629f8a7b9 r13957: Based on patch from Richard Renard <richard.renard@idealx.com>:
Fix machine accounts (should not have valid shells) and users with no
home directory (were getting previous user's directory).
2007-10-10 11:11:01 -05:00
Jeremy Allison
1d710d06a2 r13915: Fixed a very interesting class of realloc() bugs found by Coverity.
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.
2007-10-10 11:10:59 -05:00
Günther Deschner
0ae3fddf95 r13864: Some cleanup and the samr set security object function client-side.
Guenther
2007-10-10 11:10:57 -05:00
Günther Deschner
b8c07babbd r13861: Avoid "net rpc join" segfaulting when storing the servername in the
affinity cache.

Guenther
2007-10-10 11:10:57 -05:00
Simo Sorce
ab62c8d93a r13846: Take care of system that do not have LDAP libraries 2007-10-10 11:10:57 -05:00
Simo Sorce
705d811808 r13843: Merge in net sam provision and some pdb_ldap fixes 2007-10-10 11:10:56 -05:00
Günther Deschner
5b89e8bc24 r13711: * Correctly handle acb_info/acct_flags as uint32 not as uint16.
* Fix a couple of related parsing issues.
* in the info3 reply in a samlogon, return the ACB-flags (instead of
  returning zero)

Guenther
2007-10-10 11:10:25 -05:00
Alexander Bokovoy
52e9b5f89f r13695: Make code consistent with documentation. :-)
smbcontrol was sending messages designated for nmbd and winbindd to smbd. Thus, nmbd and winbindd
were "unshutdownable".
2007-10-10 11:10:24 -05:00
Gerald Carter
bcf269e2ec r13679: Commiting the rm_primary_group.patch posted on samba-technical
* ignore the primary group SID attribute from struct samu*
* generate the primary group SID strictlky from the Unix
  primary group when dealing with passdb users
* Fix memory leak in original patch caused by failing to free a
  talloc *
* add wrapper around samu_set_unix() to prevent exposing the create
  BOOL to callers.  Wrappers are samu_set_unix() and samu-allic_rid_unix()
2007-10-10 11:10:23 -05:00
Tim Potter
48cd81074e r13648: Duh. 2007-10-10 11:10:21 -05:00
Jeremy Allison
68005f6bdb r13641: Finish fix for #3510. Don't use client schannel when told
not to, cope with a server that doesn't offer schannel also.
Jeremy
2007-10-10 11:10:20 -05:00
Jeremy Allison
7de1ee1861 r13614: First part of the bugfix for #3510 - net join fails
against server with schannel disabled. Second part
will come tomorrow (fixing net_rpc_join_ok()).
Jeremy.
2007-10-10 11:10:19 -05:00
Jeremy Allison
02da5189f1 r13607: Fix compile - don't ref auto variable in a structure initialization.
Fix from Richard Bollinger <rabollinger@gmail.com>.
Jeremy.
2007-10-10 11:10:19 -05:00
Jeremy Allison
cd82107989 r13594: Got sense of NTSTATUS check reversed.
Jeremy.
2007-10-10 11:10:18 -05:00
Gerald Carter
6f1afa4acc r13590: * replace all pdb_init_sam[_talloc]() calls with samu_new()
* replace all pdb_{init,fill}_sam_pw() calls with samu_set_unix()
2007-10-10 11:10:16 -05:00
Volker Lendecke
4cf5109c7a r13579: Next try to fix the AIX build. Thanks to Björn for nagging...
Volker
2007-10-10 11:10:15 -05:00
Gerald Carter
19b7593972 r13576: This is the beginnings of moving the SAM_ACCOUNT data structure
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......
2007-10-10 11:10:15 -05:00
Gerald Carter
b65be8874a r13571: Replace all calls to talloc_free() with thye TALLOC_FREE()
macro which sets the freed pointer to NULL.
2007-10-10 11:10:14 -05:00
Jeremy Allison
ea82958349 r13553: Fix all our warnings at -O6 on an x86_64 box.
Jeremy.
2007-10-10 11:10:13 -05:00
Jeremy Allison
1fcac478cb r13530: Fix from William Jojo for #1970. Make nmblookup do
a node status on all IP's when requested.
Jeremy.
2007-10-10 11:10:10 -05:00
Lars Müller
5db7e9a42a r13528: Mention the tools and commandline option names used. 2007-10-10 11:10:10 -05:00
Lars Müller
e00505cc94 r13527: Adjust copyright header with information got from the 2.2 cvs tree. 2007-10-10 11:10:10 -05:00
Lars Müller
4272419b11 r13525: This is only a cleanup to have the memset() and SAFE_FREE() only one
time in the code.

Even if we now have an additional if statement after the free I prefer
this solution in opposite to the duplicated code we had before.
2007-10-10 11:10:10 -05:00
Lars Müller
dbdc5ba497 r13524: Add -t|--password-from-stdin option to pdbedit as we had with Samba 2.2.
This fixes bug #1386.

The initial changes had been made by Carsten Höger <choeger at
open-xhange dot com> for Samba 2.2 while being at SuSE. *sigh*

To not duplicate code from smbpasswd in pdbedit stdin_new_passwd() and
get_pass() are moved from smbpasswd to utils/passwd_util.c.
2007-10-10 11:10:10 -05:00
Volker Lendecke
d0efb435e5 r13517: Fix typo -- thanks to Karolin Seeger <ks@sernet.de> 2007-10-10 11:10:09 -05:00
Jeremy Allison
654bb9853b r13502: Fix error messages for usershares when smbd is not
running. More generic error return cleanup in libsmb/
needs doing (everything returning NTSTATUS not BOOL).
Jeremy
2007-10-10 11:10:07 -05:00
Volker Lendecke
bb40e544de r13494: Merge the stuff I've done in head the last days.
Volker
2007-10-10 11:10:06 -05:00
Volker Lendecke
62b02a6843 r13486: Two more -- fix bug 3503 2007-10-10 11:10:05 -05:00
Gerald Carter
7a2da5f0cc r13460: by popular demand....
* remove pdb_context data structure
* set default group for DOMAIN_RID_GUEST user as RID 513 (just
  like Windows)
* Allow RID 513 to resolve to always resolve to a name
* Remove auto mapping of guest account primary group given the
  previous 2 changes
2007-10-10 11:10:04 -05:00
Gerald Carter
9eb743584d r13382: added server affinity cache stores for 'net rpc join' and trusted domain code 2007-10-10 11:09:57 -05:00
Jeremy Allison
b1ebc12b50 r13368: I must write out 1000 times, "Don't use C++ reserved words..."
Jeremy.
2007-10-10 11:06:26 -05:00
Volker Lendecke
70114f509c r13351: Fix copyright 2007-10-10 11:06:26 -05:00
Volker Lendecke
fc73690a70 r13350: Implement rpccli_samr_set_domain_info. Weird that it was not around :-)
Implement 'net rpc shell account' -- An editor for account policies

nt_time_to_unix_abs changed its argument which to me seems wrong, and I could
not find a caller that depends on this. So I changed it. Applied some more
const in time.c.

Volker
2007-10-10 11:06:26 -05:00
Volker Lendecke
b129b4f94f r13337: Attempt to fix the AIX build 2007-10-10 11:06:25 -05:00
Gerald Carter
17e63ac4ed r13316: Let the carnage begin....
Sync with trunk as off r13315
2007-10-10 11:06:23 -05:00
Jeremy Allison
815340e1a4 r13262: Arrgggg. Fix smbstatus and swat status to ignore
bloody placeholder share mode entries (I hate
these - I've had to add this filter code now to too
many places :-).
Jeremy.
2007-10-10 11:06:20 -05:00
Derrell Lipman
f2a24de769 r13212: r12414@cabra: derrell | 2006-01-28 17:52:17 -0500
lp_load() could not be called multiple times to modify parameter settings based
 on reading from multiple configuration settings.  Each time, it initialized all
 of the settings back to their defaults before reading the specified
 configuration file.

 This patch adds a parameter to lp_load() specifying whether the settings should
 be initialized.  It does, however, still force the settings to be initialized
 the first time, even if the request was to not initialize them.  (Not doing so
 could wreak havoc due to uninitialized values.)
2007-10-10 11:06:18 -05:00
Simo Sorce
c2c004a620 r13148: Fix bug: #3413
Check that ldap admin dn is defined in smb.conf before
setting the ldap password in secrets.tdb

Based on patch by William Jojo <jojowil@hvcc.edu>

Simo.
2007-10-10 11:06:15 -05:00
Simo Sorce
65d5abda68 r13136: Fix handling user sid and user gid 2007-10-10 11:06:15 -05:00
Gerald Carter
a4c6eceaae r13133: patch from Makr Proehl <m.proehl@science-computing.de> for dumping server role when calling 'testparm -s' (BUG 1336) 2007-10-10 11:06:14 -05:00
Jeremy Allison
5f5f87584f r13091: Fix gcc warning about using '0' with %s.
Jeremy.
2007-10-10 11:06:13 -05:00
Gerald Carter
ef69cf9614 r13083: patch suggested by Adam Nielsen for better smbstatus formatting 2007-10-10 11:06:13 -05:00
Gerald Carter
e43775fb31 r13082: revert an accidentally commited patch (still in progress) 2007-10-10 11:06:12 -05:00
Gerald Carter
c908dbc4b2 r13081: correct fix for the segv in nmbd caused by a double free on namerec. 2007-10-10 11:06:12 -05:00
Lars Müller
f650e3bdaf r12986: Use d_fprintf(stderr, ...) for any error message in net.
All 'usage' messages are still printed to stdout.

Fix some compiler warnings for system() calls where we didn't used the
return code.  Add appropriate error messages and return with the error
code we got from system() or NT_STATUS_UNSUCCESSFUL.
2007-10-10 11:06:09 -05:00
Gerald Carter
cc2e7052bd r12870: fixing net rpc registry enumerate from overwritnig the open subkey handle 2007-10-10 11:06:05 -05:00
Volker Lendecke
2942f3594b r12840: Add -W to smbpasswd. Thanks to William Jojo <jojowil@hvcc.edu>.
Volker
2007-10-10 11:06:04 -05:00
Volker Lendecke
a01fa43ed2 r12781: Support the level parameter for lsa_lookupsids.
Simplify the interfaces to domain trusts a bit: Nothing outside secrets.c
needs to know we're storing stuff in ucs2.

Volker
2007-10-10 11:06:03 -05:00