Michael Adam [Thu, 28 Jun 2007 10:32:52 +0000 (10:32 +0000)]
r23641: Put check for forbidden values in smbconf into a function.
(This will be used in a next step to prevent storing these
values in reg_smbconf.c.)
Gerald Carter [Wed, 27 Jun 2007 18:28:18 +0000 (18:28 +0000)]
r23636: Adding coding style guide for Samba 3.0 branches (no differences from Tridge's prog_guide.txt so we should have a similar style throughout the project)
(This used to be commit ff1c2fdc08f6198bad1bf9f5bae8dc6bc5fb534a)
Gerald Carter [Wed, 27 Jun 2007 16:52:36 +0000 (16:52 +0000)]
r23633: Fix a couple of crash bugs pointed out by Volker caused by an old
change from a pstring to a char* and still trying use pstrcpy().
(This used to be commit 21dc46a2bad6fee720f0f591e1051aa7675c77c8)
Gerald Carter [Wed, 27 Jun 2007 16:52:34 +0000 (16:52 +0000)]
r23632: Correctly return the new_group list pointer from expand_groups
or else getgrnam() always acts like 'winbind expand groups = 1'
(This used to be commit 04ae193ec44c0ecefa64ca44ad0cdb5968087319)
Jeremy Allison [Tue, 26 Jun 2007 22:49:10 +0000 (22:49 +0000)]
r23620: Convert set_nt_acl to return NTSTATUS. Also fix the chown
return to correctly return NT_STATUS_INVALID_OWNER if it
should be disallowed. Matches better what W2K3R3 does.
NFSv4 ACL module owners, please examine these changes.
Jim McDonough [Tue, 26 Jun 2007 20:09:41 +0000 (20:09 +0000)]
r23616: Fix bugzilla #4719: must change password is not set from usrmgr.exe.
This was only affecting the newer versions of usrmgr.exe, because they
use a user_info_25 struct. The password is getting set separately
inside that code, so the password last set time was getting set from the
password change logic.
We also were not parsing a number of fields (like logon hours) from the
user_info_25. That should also be fixed.
(This used to be commit afabd68b6ae874aceba708dc36808ed007ad496c)
Michael Adam [Tue, 26 Jun 2007 13:45:07 +0000 (13:45 +0000)]
r23610: Move some winbindd_cache specific flags and actions
back to winbindd_cache.c. The generic mechanism
should open the cache tdb readonly and with default
flags.
Gerald Carter [Tue, 26 Jun 2007 00:52:19 +0000 (00:52 +0000)]
r23601: BUG 4579: Don't mark the SAM domain on a Samba DC as an internal domain or else all network connections from the local winbindd will fail
(This used to be commit 5e0f8b114b964d08cfb22a7452c617b8512545dc)
Jeremy Allison [Fri, 22 Jun 2007 19:33:46 +0000 (19:33 +0000)]
r23591: Fix bug #4725. Don't crash when no eventlogs specified. Needs
merging for 3.0.25b.
Jeremy.
(This used to be commit ae239fec6faa79018c818506b391b829ccd685f8)
Jeremy Allison [Fri, 22 Jun 2007 17:19:08 +0000 (17:19 +0000)]
r23589: Ensure we will always release any timeout handler
on fsp close or removal of oplock. Mulitple removals
are safe.
Jeremy.
(This used to be commit 6de0970704b3eff2b71e6bf499c6dda45d4d5e2d)
Michael Adam [Fri, 22 Jun 2007 11:21:59 +0000 (11:21 +0000)]
r23583: Add a utility function to recursively delete a Registry
key with all its subkeys. (reg_deletekey will refuse to
delete a key with subkeys with WERR_ACCESS_DENIED).
Michael Adam [Thu, 21 Jun 2007 23:11:21 +0000 (23:11 +0000)]
r23579: Up to now, the "allparameters" argument to lp_next_parameter was
not effective for the global section (snum < 0). This checkin
makes it effective for the global section, too.
This does not produce changes in the results of the present calls of
lp_next_parameter: Beside the new use in utils/net_conf.c (which is
hereby fixed), the only calls of lp_next_parameter are in web/swat.c,
where it is effectively always called with allparameters == 1.
Jeremy Allison [Thu, 21 Jun 2007 22:10:41 +0000 (22:10 +0000)]
r23577: Fix winbindd (sorry). Ensure I set the new child_pid
variable at the correct point just before the write
call is scheduled.
Jeremy.
(This used to be commit e076dc16462a3ce11105bf9a729ec59ddd9bdc75)
Jeremy Allison [Thu, 21 Jun 2007 18:44:14 +0000 (18:44 +0000)]
r23573: Cope with terminating winbindd children on read/write/timeout
communication failures. Set timeout to 5 mins. Ensure that
we're terminating the correct child (the one we thought we
were talking to). Still setting up my testing environment
but I have high hopes for this being the fix for the 3.0.25b
showstopper.
Jeremy.
(This used to be commit c366df2fe7f1aa1e8fd9bca35bc3b029d76b3abc)
Jeremy Allison [Thu, 21 Jun 2007 17:25:13 +0000 (17:25 +0000)]
r23572: Ensure we obey Unicode consortium restrictions. Code
based on patch from MORIYAMA Masayuki <moriyama@miraclelinux.com>.
Jeremy.
(This used to be commit 0f10d2ed312115998d5ce1dc88a8d9207c9e4959)
Michael Adam [Tue, 19 Jun 2007 21:40:27 +0000 (21:40 +0000)]
r23549: Make "net conf setparm" always use registry data type "sz".
This simplifies the usage of this command from
"net conf setparm <section> <param> <type> <value>"
to
"net conf setparm <section> <param> <value>".
Volker Lendecke [Mon, 18 Jun 2007 09:25:31 +0000 (09:25 +0000)]
r23537: Revert the inbuf/outbuf part of r23528: This caused the Solaris CC make test
to break. The Solaris CC put the static char InBuffer[TOTAL_BUFFER_SIZE] on an
odd address, the malloc'ed one is always aligned. The problem showed up in
pull_ucs2, ucs2_align uses the address of InBuffer as an indication whether to
bump up the src of the string by one. Unfortunately in the trans calls the
data portion is malloced and thus has different alignment guarantees than a
static variable. This one is bigger....
Jeremy Allison [Sun, 17 Jun 2007 19:23:32 +0000 (19:23 +0000)]
r23530: Fix bugs #4678 and #4697 which had the same root cause.
In make_server_info_pw() we assign a user SID in our
authoritative SAM, even though this may be from a
pure "Unix User" that doesn't exist in the SAM.
This causes lookups on "[in]valid users" to fail as they
will lookup this name as a "Unix User" SID to check against
the user token. Fix this by adding the "Unix User"\unix_username
SID to the sid array. The correct fix should probably be
changing the server_info->sam_account user SID to be a
S-1-22 Unix SID, but this might break old configs where
plaintext passwords were used with no SAM backend.
Jeremy
(This used to be commit 80d1da7e6cce451d3934751feaa6ad60a337e3db)
Volker Lendecke [Sun, 17 Jun 2007 05:19:30 +0000 (05:19 +0000)]
r23528: Two changes to make the valgrind massif (heap profiler) output readable:
Remove the allocated inbuf/output. In async I/O we copy the buffers
explicitly now, so NewInBuffer is called exactly once. This does not
reduce memory footprint, but removes one of the larger chunks that
clobber the rest of the massif output
In getgroups_unix_user on Linux 2.6 we allocated 64k groups x 4 bytes
per group x 2 (once in the routine itself and once in libc) = 512k just
to throw it away directly again. This reduces it do a more typical limit
of 32 groups per user. We certainly cope with overflow fine if 32 is not
enough. Not 100% sure about this one, a DEVELOPER only thing?
(This used to be commit 009af0909944e0f303c5d496b56fb65ca40a41d5)
Simo Sorce [Sat, 16 Jun 2007 18:59:02 +0000 (18:59 +0000)]
r23525: I believe this patch is ok, got no reply of it being not ok.
This closes #4624 for me.
(This used to be commit 3635b304155299ac93fda57e5e9ece0acd605e77)
Simo Sorce [Sat, 16 Jun 2007 18:54:13 +0000 (18:54 +0000)]
r23524: Fix bug 2319.
Got report this is all ok form a tester. Close a loong
standing bug preventing people to freely use any character
in their password when printing via cups were involved.
(This used to be commit 54ca011212982cf1d94a76ca9d39c391783da04f)
Volker Lendecke [Sat, 16 Jun 2007 18:07:44 +0000 (18:07 +0000)]
r23522: Save us a kilobyte stack space in a hot code path: I can't see a reason
why check_path_syntax should not be able to run in-line. The destination
pointer either walks side by side with the source pointer or is
decremented. So as far as I can see s>=d is true throughout the whole
routine.
Jeremy, I'm checking this only into 3_0 for now. Please review and ack
or directly merge this to 3_0_26.
Volker Lendecke [Sat, 16 Jun 2007 11:48:11 +0000 (11:48 +0000)]
r23518: Remove the silly assumption that string_replace requires a pstring.
Jeremy, I am always very confused about the different length arguments
in convert_string and friends. Can you take a look at the change in
string_replace and verify it's ok? Thanks!
Volker Lendecke [Sat, 16 Jun 2007 10:02:51 +0000 (10:02 +0000)]
r23517: After Jeremy has given is ack on irc:
Change rename_internals to open the file/directory and then call
rename_internals_fsp. Two reasons: Remove code duplication and remove a
race condition. The race condition was due to the fact that in
can_rename the share mode check closed the file and then after that did
the rename.
(This used to be commit aa16d8a649d1a38593edd5ca94ed2c7d4291911b)
Jeremy Allison [Sat, 16 Jun 2007 01:04:22 +0000 (01:04 +0000)]
r23516: Fix bug found & fixed by Doug Rudoff (doug_rudoff@isilon.com)
- when cleaning up invalid locks make sure we mark the lck
struct as modified so it'll get saved back correctly (that
was the original intent).
Jeremy.
(This used to be commit cbf0829abcc3689edd7ab225054dfc79d43c6309)
Jeremy Allison [Fri, 15 Jun 2007 23:47:40 +0000 (23:47 +0000)]
r23512: Fix conflict in #define for SECDESC_PREFIX. Ensure all
reg #defines use "REG_" prefix. Michael - please check
gcc warnings on compiles.
Jeremy.
(This used to be commit 7885b68bb5df0ebe290feca0e74b4a20ef59e718)
James Peach [Fri, 15 Jun 2007 21:58:49 +0000 (21:58 +0000)]
r23510: Tidy calls to smb_panic by removing trailing newlines. Print the
failed expression in SMB_ASSERT.
(This used to be commit 171dc060e2a576d724eed1ca65636bdafffd7713)
Michael Adam [Fri, 15 Jun 2007 21:38:10 +0000 (21:38 +0000)]
r23509: This activates the global options from the registry in loadparm.
The global options are stored as values in the subkey "global"
of the SMBCONF registry key.
The activation is accomplished in smb.conf though a new special
semantic of the "include" parameter: "include = registry" triggers
the processing of the registry global options exactly at the
position of the include statement. Options read from the registry
take the same precedence as parameters loaded from a file via
include. Need to reload the registry globals is detected by
watching the tdb sequence number.
Registry shares are automatically activated when the registry
globals are processed.
So a "registry only" configuration can be realized by an
smb.conf that looks as follows:
================================
[global]
include = registry
================================
The global options and registry shares can be conveniently
edited with the "net conf" utility.
Caveat:
A possible pitfall consists in using "include = registry"
together with the "lock directory" directive in the registry.
This problem will be addressed in the next time.
Note on the code:
Processing of the registry options is accomplished by a function
process_registry_globals() in loadparm.c The current version is
only an interim solution: It is handcoded instead of using the
infrastructure of reg_api.c. The reason for this is that using
reg_api still has too large linker dependencies, bloating virtually
all targets by PASSDB_OBJ, SMBLDAP_OBJ, GROUPDB_OBJ and LDB stuff.
A version of process_registry_globals that uses reg_api is
included but commented out. The goal is to eventually refactor
and restructure the registry code so that one can use the reg_api
to access only the registry tdb and not link all the dynamic
backends with all their linking implications.
(This used to be commit 24b0cbcb3741dd14b04728448a85cc04a057e7d0)
Jeremy Allison [Fri, 15 Jun 2007 19:24:04 +0000 (19:24 +0000)]
r23508: Fix sync_file() to return NTSTATUS and return this
on failure in the write path.
Jeremy.
(This used to be commit cd3f7dbee809fb40194af0e7509142166e02b252)
Michael Adam [Fri, 15 Jun 2007 10:40:36 +0000 (10:40 +0000)]
r23504: Use tdb_wrap_open (instead of usual tdb_open) in reg_db.
This eliminates the need of maintaining reg_db's own
reference counter for the tdb. Maybe as a next step...
James Peach [Thu, 14 Jun 2007 18:48:51 +0000 (18:48 +0000)]
r23502: Restore exit-on-idle. Small refactoring for clarity. Exit if
we are idle and we timed out waiting for something to do.
(This used to be commit b4ab1a0cd992cf9e966b8edb9796d1eae53db744)
Volker Lendecke [Thu, 14 Jun 2007 14:45:37 +0000 (14:45 +0000)]
r23500: Two changes to survive the now activated test for rename_internals_fsp:
With the target being open we have to return NT_STATUS_ACCESS_DENIED and
root_fid != 0 leads to NT_STATUS_INVALID_PARAMETER
(This used to be commit b599e5b1e10bdf825b2ce53de4a6ec35726d00f6)