1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-28 17:47:29 +03:00

1049 Commits

Author SHA1 Message Date
Günther Deschner
ba8eff660b r14076: When the backends trusted_domains call comes back with no trusts the
NTSTATUS code will be NT_STATUS_NO_MORE_ENTRIES. In that case store
NT_STATUS_OK in the centry so that the entry does not automatically
deleted upon startup or invalidated upon next query.

Guenther
(This used to be commit 200d4566619c58951e22d9543420407b3baf878f)
2007-10-10 11:11:10 -05:00
Volker Lendecke
a78d2a85fb r13984: Fix Coverity bug # 98
(This used to be commit 0a2aa3a48bd5fd7e5a9aa06068ddd621b19c1dbe)
2007-10-10 11:11:03 -05:00
Jeremy Allison
894358a8f3 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.
(This used to be commit 1d710d06a214f3f1740e80e0bffd6aab44aac2b0)
2007-10-10 11:10:59 -05:00
Volker Lendecke
1d5ed2bde9 r13914: Fix Coverity bug #151.
I think this is actually a false warning, but as I've seen it with high gcc
warning levels, lets fix it :-)

Volker
(This used to be commit 3f671033bca7a025f9639728a0a0a0adede6ed35)
2007-10-10 11:10:59 -05:00
Volker Lendecke
0382d3c26b r13895: As agreed upon with gd on the phone, remove WBFLAG_PAM_CONTACT_TRUSTDOM. This
can not work for NTLM auth, where we only have a workstation account for our
own domain. For the PAM Kerberos login we need to find a better way to do
this, probably using Dsr_GetDCName and some winbind-crafted krb5.conf.

Volker
(This used to be commit bf7c608147bcbbedd89b3dcd24a929ea3e601bc8)
2007-10-10 11:10:59 -05:00
Günther Deschner
8b1d9b7a6d r13720: Only lockout Administrator after x bad password attempts in offline-mode
when we are told to do so by the password_properties.

Guenther
(This used to be commit 30f2fdef79f89a4bee544bd209cfb86975b33f94)
2007-10-10 11:10:50 -05:00
Gerald Carter
d95e13e68f 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()
(This used to be commit bcf269e2ec6630b78d909010fabd3b69dd6dda84)
2007-10-10 11:10:23 -05:00
Günther Deschner
e18349b2bb r13660: Attempt to better handle the failure that we cannot find our sid upon
startup; don't panic, shutdown instead.

Guenther
(This used to be commit f209192e26c12fd48feb6195b724715fbada8b85)
2007-10-10 11:10:21 -05:00
Günther Deschner
379bd6865f r13657: Let winbindd try to obtain the gecos field from the msSFU30Gecos
attribute when "winbind nss info = sfu" is set. Fixes #3539.

Guenther
(This used to be commit ffce0461de130828345c44293e564ca03227607d)
2007-10-10 11:10:21 -05:00
Günther Deschner
fd5ecef41c r13639: Never overwrite the acct_flags in rpccli_netlogon_sam_network_logon().
Guenther
(This used to be commit c201e51de387d3d49880ed519eb9d825df92f5af)
2007-10-10 11:10:20 -05:00
Gerald Carter
fb5362c069 r13571: Replace all calls to talloc_free() with thye TALLOC_FREE()
macro which sets the freed pointer to NULL.
(This used to be commit b65be8874a2efe5a4b167448960a4fcf6bd995e2)
2007-10-10 11:10:14 -05:00
Gerald Carter
a26167041f r13515: Make sure to store the correct domain name in the server affinity cache.
(This used to be commit a918e4ac2426d4cb3cd526c4fad7480b832e6a12)
2007-10-10 11:10:09 -05:00
Günther Deschner
f0ed0440c4 r13492: As noone objected on the mailing-list:
Fix parse_domain_user to fail when splitting a full name like "DOM\user"
when "winbind use default domain" and "winbind trusted domains only" are
not enabled.

This allows pam_winbind to behave correctly when more modules are
stacked in the "account" or "password" PAM facility. pam_winbindd calls
WINBINDD_GETPWNAM which can decide whether or not a user is a winbind
user and return correct PAM error codes.

Guenther
(This used to be commit e6d52c1e9d8cec7be6d552c2a67a392df21c3ec9)
2007-10-10 11:10:06 -05:00
Günther Deschner
e83c7d0141 r13442: Implement samr_chgpasswd_user3 server-side.
Guenther
(This used to be commit f60eddc0a4dfe623e5f115533a62c03810fd5f38)
2007-10-10 11:10:03 -05:00
Günther Deschner
2d743ac8f1 r13409: No functional changes, just some DEBUG cleanup.
Guenther
(This used to be commit 286f6fc2339cf4ef232c16466b8dffdcddbe343f)
2007-10-10 11:09:59 -05:00
Günther Deschner
d5c5c856ae r13391: Only fall into password change when ACB_PWNOEXP is not set
(got it wrong the first time as administrator has this flag set by
default).

Guenther
(This used to be commit e9ccebf45a5db8964793084950fbb2c23b2469a3)
2007-10-10 11:09:58 -05:00
Günther Deschner
3ad6e4d279 r13377: Fix from Volker: Make offline authentication work with NT4 as well
(handle no ACB_NORMAL flag and save name2sid as early as possible).

Guenther
(This used to be commit a04a5e40b774b7fe535e9cbbabddf94ee5578005)
2007-10-10 11:09:57 -05:00
Günther Deschner
9cdab6ddc0 r13375: Match XP behaviour: Don't force 'Administrator' to change an expired
password on logon. (this might be true for all domain admins as well).

Guenther
(This used to be commit 24c6b9fecb521380008cb44e6d987a6f495027dc)
2007-10-10 11:09:56 -05:00
Volker Lendecke
de0337163f r13371: Remove an unused function
(This used to be commit dde8322b5c26b04222eefd3c1d450852f849079f)
2007-10-10 11:06:26 -05:00
Gerald Carter
0af1500fc0 r13316: Let the carnage begin....
Sync with trunk as off r13315
(This used to be commit 17e63ac4ed8325c0d44fe62b2442449f3298559f)
2007-10-10 11:06:23 -05:00
Gerald Carter
855e02f164 r13310: first round of server affinity patches for winbindd & net ads join
(This used to be commit 6c3480f9aecc061660ad5c06347b8f1d3e11a330)
2007-10-10 11:06:23 -05:00
Volker Lendecke
989c9311c5 r13309: If the sid in the winbind name2sid cache is not valid (NT_STATUS_NONE_MAPPED),
we have S-0-0 as a SID in the cache. This leads to ugly level 0 messages from
string_to_sid. Avoid them.

Volker
(This used to be commit d62da3e9875592af91469bf75ca32be77a40ea59)
2007-10-10 11:06:23 -05:00
Gerald Carter
d44ad56879 r13232: defensive programming in an attempt to prevent crashes due to a PDC rebooting
(This used to be commit 994794383361cfe5d58098ae494489fb0164e1df)
2007-10-10 11:06:19 -05:00
Gerald Carter
7de55b30b7 r13229: * fix bad comparison caught by the AIX compiler in wbinfo code
* update output from mkversion.sh to include the SAMBA_VENDOR_PATCH
(This used to be commit 485f0370942880a71095da5096e414b28193b150)
2007-10-10 11:06:19 -05:00
Derrell Lipman
9c15bd311d 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.)
(This used to be commit f2a24de769d1b2266e576597c57a8e3b1e2a2b51)
2007-10-10 11:06:18 -05:00
Gerald Carter
be7fb35eff r13089: quick fix to work around building ilbnss_winbind.so on SOlaris when --enable-developer is specified
(This used to be commit 1c7787e4a11c530cec93fa210c97fbe4b38f333a)
2007-10-10 11:06:13 -05:00
Jeremy Allison
dac44fded7 r13042: Fix for bug #3248 Stefan Burkei <stefan@burkei.de>.
When doing auth_crap authentication use the client
given workstation name not our own.
Jeremy.
(This used to be commit a2bb2e3e819c56b710885fc8206632e22a6ec0ce)
2007-10-10 11:06:11 -05:00
Günther Deschner
7b575d7cc5 r13024: Add is_null_sid.
GUenther
(This used to be commit 3a6e41a0cb2872a656ea79c8d4fc4b8bce436492)
2007-10-10 11:06:11 -05:00
Günther Deschner
29ba5c17cd r12900: Merge from trunk:
Correctly handle the case where users logon with an expired password.

In that case pam_sm_authenticate has to return PAM_SUCESS instead of
PAM_NEW_AUTHTOK_REQD or PAM_AUTHTOK_EXPIRED and pam_sm_acct_mgmt has to
take care of requesting an immediate password change. (see the Linux PAM
documentation).

Fixes Bugzilla #1524, #3205. Tested with login, sshd, kdm and gdm on
Linux.

Thanks to Scott Barker <Scott_Barker@mtechIT.com>.

Guenther
(This used to be commit 4cb662ffd76dbe30003c618c94ccf6ebd4afb48c)
2007-10-10 11:06:06 -05:00
Günther Deschner
1e9d8d4857 r12788: Since we have agreed on the case of winbindd names, we can store a
sid_to_name lookup result already after doing a sucessfull name_to_sid
lookup.

Guenther
(This used to be commit 2456832a6d9ad2590dc02e147cc2c2e87d5a3a7a)
2007-10-10 11:06:03 -05:00
Günther Deschner
7745148580 r12787: Revert last commit that removed our logic of memorizing negative
name_to_sid lookups in the cache.

Guenther
(This used to be commit 348d309688260d17d9cdbf11fc54ad30829ceae5)
2007-10-10 11:06:03 -05:00
Volker Lendecke
cc58924179 r12771: Apply patch from bug 3374, attempt to fix build on tru64.
Thanks to "The Written Word" -- whoever that is :-)

Volker
(This used to be commit 7d0956f0bd28728fbb8b4c24c4ed3cdcc04e2daf)
2007-10-10 11:06:03 -05:00
Günther Deschner
850b7c4e87 r12742: Don't write null sid mappings into the winbindd_cache.tdb.
Guenther
(This used to be commit 1e0124efc54810125bbfae6dce536b2c4fff62c1)
2007-10-10 11:06:02 -05:00
Jeremy Allison
2b509f470d r12713: Remove use of uint8_t -> uint8.
Jeremy.
(This used to be commit 4473ac4ef9c86574fc49b1e67089b59b14b6d10d)
2007-10-10 11:06:01 -05:00
Jeremy Allison
c8f28c92a7 r12555: Fix more load_case_table swegfaults. Arggg.
What I'd give for a global constructor...
Jeremy.
(This used to be commit c970d7d0a5ba225465dfb0980989b8817b17c643)
2007-10-10 11:05:59 -05:00
Volker Lendecke
608aa3f41e r12544: Fix segfaults in winbind, smbpasswd and net
(This used to be commit 9ca8edc26e66887d6333943bc6a9776352c657fc)
2007-10-10 11:05:59 -05:00
Günther Deschner
25f13bb0f1 r12407: Fix returning wrong error codes and better sort out errors and stdout
messages.

Guenther
(This used to be commit 3ca735f7ad5bee53cd778f13347d48a76008d6e4)
2007-10-10 11:05:55 -05:00
Günther Deschner
0f20bcdbaa r12341: add DEBUG statement.
Guenther
(This used to be commit d50098518d77f9559457f558df7d11d3f026833e)
2007-10-10 11:05:54 -05:00
Volker Lendecke
28fb5b6f97 r12313: Introduce yet another copy of the string_sub function:
talloc_string_sub. Someone with time on his hands could convert all the
callers of all_string_sub to this.

realloc_string_sub is *only* called from within substitute.c, it could be
moved there I think.

Volker
(This used to be commit be6c9012da174d5d5116e5172a53bbe6486d6c38)
2007-10-10 11:05:53 -05:00
Günther Deschner
f6e8106076 r12273: Fix copy paste error.
Guenther
(This used to be commit 266f5fc9af6a07bc1f1432e716e6c528e9048533)
2007-10-10 11:05:51 -05:00
Günther Deschner
c9c8781ccf r12193: Fix some typos.
Guenther
(This used to be commit 499224f02a8722eea0d4644ca81ca55da0e9a86b)
2007-10-10 11:05:48 -05:00
Volker Lendecke
1e0684678e r12170: Fix a segfault -- this is post-3.0.21 code
(This used to be commit 8b30cf8e09944cd97e4ab959f730bf81591c2541)
2007-10-10 11:05:47 -05:00
Volker Lendecke
661c5c741a r12163: Change lookup_sid and lookup_name to return const char * instead of char *,
use a temporary talloc_ctx for clarity.

Volker
(This used to be commit b15815c804bf3e558ed6357b5e9a6e3e0fac777f)
2007-10-10 11:05:46 -05:00
Volker Lendecke
6a92f418ea r12133: Fix an uninitialized variable in new code in rpc_server/srv_samr_nt.c.
Fix winbind_lookup_name for the local domain, ie for aliases on a member
server.

Volker
(This used to be commit 4ba50c823e8d61f87ab5627f15e826e73e45ffcc)
2007-10-10 11:05:46 -05:00
Volker Lendecke
05ac2de0df r12051: Merge across the lookup_name and lookup_sid work. Lets see how the build farm
reacts :-)

Volker
(This used to be commit 9f99d04a54588cd9d1a1ab163ebb304437f932f7)
2007-10-10 11:05:43 -05:00
Jeremy Allison
a168730dda r12045: More warning fixes... Just a few more to go.
Jeremy.
(This used to be commit cd192ed79a531c6775cdbfb35f0eb2e0fa230ce9)
2007-10-10 11:05:42 -05:00
Günther Deschner
e789a870f1 r11960: add 'wbinfo --separator' to get the currently active winbind_separator.
Needed for KDM/GDM login masks.

Guenther
(This used to be commit abf761c8bf5e8cd3b0aba66abd5fd896035ea1ac)
2007-10-10 11:05:39 -05:00
Gerald Carter
baba6d0395 r11867: attempt at fixing the compile issue with nss_winbind.so on HP-UX caused by Solaris specific return codes
(This used to be commit b823bcbc919d7e4b482c63cbe5b7f99e0bddd5f6)
2007-10-10 11:05:33 -05:00
Günther Deschner
cf974b8d60 r11851: Display correct error string.
Guenther
(This used to be commit 4d681f560e59dd483f580c5fe5299af6242ae7c2)
2007-10-10 11:05:30 -05:00
Volker Lendecke
3994f38226 r11707: alt_names[i] might be NULL for i>0 also...
Volker
(This used to be commit c8b67c2448b09b3386a5b35ed279c134d7a3ba32)
2007-10-10 11:05:24 -05:00