1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-15 23:24:37 +03:00

759 Commits

Author SHA1 Message Date
Gerald Carter
56b40269c8 r21258: Fix for connecting printers from Vista by storing
the printer GUID as a REG_SZ as Vista seems to
whine about unknown REG_BINARY values.

Thanks to Martin Zielinski <mz@seh.de> for his excellent
analysis on this.
(This used to be commit fa5490b71b5cd41b63b028aa8a316e1197263083)
2007-10-10 12:17:52 -05:00
Volker Lendecke
caf8c6a76b r21064: The core of this patch is
void message_register(int msg_type,
                      void (*fn)(int msg_type, struct process_id pid,
-                                void *buf, size_t len))
+                                void *buf, size_t len,
+                                void *private_data),
+                     void *private_data)
 {
        struct dispatch_fns *dfn;

So this adds a (so far unused) private pointer that is passed from
message_register to the message handler. A prerequisite to implement a tiny
samba4-API compatible wrapper around our messaging system. That itself is
necessary for the Samba4 notify system.

Yes, I know, I could import the whole Samba4 messaging system, but I want to
do it step by step and I think getting notify in is more important in this
step.

Volker
(This used to be commit c8ae60ed65dcce9660ee39c75488f2838cf9a28b)
2007-10-10 12:17:32 -05:00
Volker Lendecke
0cfc6a8e11 r20796: Fix the same problem Jeremy has fixed (improper handling of deferred opens)
for delete_driver_files. Proper fix pending... :-)

Jeremy, please check.

Volker
(This used to be commit 21b8f15dd5ad567efeacf5ba22dc4d8c64b09b76)
2007-10-10 12:17:09 -05:00
Jeremy Allison
db0ad252a0 r20718: Sync up the filename path parsing changes from SAMBA_3_0_24.
The only difference between the two trees now w.r.t file
serving are the changes to smbd/open.c in this branch I need
to review.
Jeremy.
(This used to be commit f4474edf6a0c71001dbd01429ef70bafad6abd74)
2007-10-10 12:17:04 -05:00
Volker Lendecke
1307337aaf r20544: Change copy_file() to return NTSTATUS. This is in preparation of turning
close_file() to NTSTATUS as well.

I'm not sure I got all the error codes right, but as I've never come across a
smb_copy() call in all my Samba work, I'm leaving it at that. If I'm
absolutely bored, I will write a thorough torture test.

As far as I can see, Samba4 even does not have a libcli implementation for
it...  :-)

Volker
(This used to be commit 5ebdf02ba166df69e210e6f70c01a44e6205ecc1)
2007-10-10 12:16:56 -05:00
Volker Lendecke
d0c6f9b728 r20339: Make mkdir_internal static to open.c
(This used to be commit 6dd0886b49969d0edfe16861f19d35275217b2af)
2007-10-10 12:16:42 -05:00
Herb Lewis
e59e787b48 r20269: merge -r20264:20267 from SAMBA_3_0_24
more no previous prototype warnings
(This used to be commit 41be182f78762372ae13759ede5d2bd40a71d7f5)
2007-10-10 12:16:38 -05:00
Herb Lewis
ef4c2088c5 r20245: merge 20244 from samba_3_0_24
get rid of more nested extern declarations warnings
(This used to be commit e9df051f5201843e3428ddbed7a719553c2e799a)
2007-10-10 12:16:36 -05:00
Herb Lewis
6914b29daa r20131: get rid of a few no previous prototype warnings
(This used to be commit e710a7d39a662a1a339f3f71c4b051fde1bb5a16)
2007-10-10 12:16:26 -05:00
Herb Lewis
791f48f167 r20124: clean up nested extern declaration warnings
(This used to be commit ac3eb7813e33b9a2e78c9158433f7ed62c3b62bb)
2007-10-10 12:16:26 -05:00
Jelmer Vernooij
4db7642caa r18745: Use the Samba4 data structures for security descriptors and security descriptor
buffers.

Make security access masks simply a uint32 rather than a structure
with a uint32 in it.
(This used to be commit b41c52b9db5fc4a553b20a7a5a051a4afced9366)
2007-10-10 12:00:54 -05:00
Jelmer Vernooij
4e7d11449a r18654: Rename "struct uuid" => "struct GUID" for consistency.
(This used to be commit 5de76767e857e9d159ea46e2ded612ccd6d6bf19)
2007-10-10 11:52:19 -05:00
Stefan Metzmacher
258a465e20 r18605: sync dlinklist.h with samba4, that means DLIST_ADD_END()
and DLIST_DEMOTE() now take the type of the tmp pointer
not the tmp pointer itself anymore.

metze
(This used to be commit 2f58645b7094e81dff3734f11aa183ea2ab53d2d)
2007-10-10 11:51:59 -05:00
Volker Lendecke
f8a17bd8bd r18047: More C++ stuff
(This used to be commit 86f4ca84f2df2aa8977eb24828e3aa840dda7201)
2007-10-10 11:43:24 -05:00
Volker Lendecke
ee0e397d6f r18019: Fix a C++ warnings: Don't use void * in libads/ for LDAPMessage anymore.
Compiled it on systems with and without LDAP, I hope it does not break the
build farm too badly. If it does, I'll fix it tomorrow.

Volker
(This used to be commit b2ff9680ebe0979fbeef7f2dabc2e3f27c959d11)
2007-10-10 11:39:49 -05:00
Jelmer Vernooij
17ed5d07f4 r17816: Merge my cupsprot branch. It is now possible to (optionally) specify :port in
the "cups server" smb.conf parameter.
(This used to be commit 3f665f4ec4cda80cc20e050458e150c086dc1412)
2007-10-10 11:38:51 -05:00
Volker Lendecke
517efef9a1 r17622: Add a framework for a printing backend designed to support the build farm. If
we want to walk more printing code in the build farm I think doing that with a
customized printing backend is much easier than with a set of shell scripts.

Jerry, comments?

Volker
(This used to be commit 949cd6b992364d2bc60fd59051b6ac1c4cc4288c)
2007-10-10 11:38:44 -05:00
Volker Lendecke
08e308fe2c r17590: Some C++ Warnings
(This used to be commit b7ec240880af0072ef20b2c0d688ef3cc386d484)
2007-10-10 11:38:41 -05:00
Jeremy Allison
a093a76dc1 r17293: After the results from the cluster tests in Germany,
fix the messaging code to call the efficient calls :

save_re_uid()
set_effective_uid(0);

messaging_op

restore_re_uid();

instead of using heavyweight become_root()/unbecome_root()
pairs around all messaging code. Fixup the messaging
code to ensure sec_init() is called (only once) so that non-root
processes still work when sending messages.

This is a lighter weight solution to become_root()/unbecome_root()
(which swaps all the supplemental groups) and should be more
efficient. I will migrate all server code over to using this
(a similar technique should be used in the passdb backend
where needed).

Jeremy.
(This used to be commit 4ace291278d9a44f5c577bdd3b282c1231e543df)
2007-10-10 11:38:24 -05:00
Jeremy Allison
fbdcf2663b r16945: Sync trunk -> 3.0 for 3.0.24 code. Still need
to do the upper layer directories but this is what
everyone is waiting for....

Jeremy.
(This used to be commit 9dafb7f48ca3e7af956b0a7d1720c2546fc4cfb8)
2007-10-10 11:19:14 -05:00
Gerald Carter
be25a49a94 r16701: Fix segv when adding a printer caused by not initializing the
realm name in ads_init() in nt_printer_publish().
(This used to be commit a25e75e78db092b3992dfc6f7e2737023d43e2c3)
2007-10-10 11:19:09 -05:00
Jeremy Allison
e5f766aac8 r16648: Fix bug #3889 reported by jason@ncac.gwu.edu.
Jeremy.
(This used to be commit 2eefe9b6f52e64927c0ae23adce111a42d821206)
2007-10-10 11:19:06 -05:00
Jeremy Allison
57ba729fac r16626: Fix bug #3878. Reported by jason@ncac.gwu.edu.
Jeremy.
(This used to be commit 4c3019eb99d0a18a33ef1fa90d01b9c99c0b25c3)
2007-10-10 11:19:04 -05:00
Jeremy Allison
fc77e332e3 r16599: Make it clear to Klocwork we're not dereferencing. Issue #2026.
Jeremy.
(This used to be commit 9402bf0d4cc6d04283ed69a6dedac7767df84626)
2007-10-10 11:19:02 -05:00
Jeremy Allison
d1014c1cdf r16582: Fix Klocwork #1997 and all generic class of problems
where we don't correctly check the return from memdup.
Jeremy.
(This used to be commit ce14daf51c7ee2f9c68c77f7f4674e6f0e35c9ca)
2007-10-10 11:19:01 -05:00
Jeremy Allison
f014291edd r16424: Fix possible null deref and a memory leak found by
examining Klockwork #1519. get_printer_subkeys()
could return zero without initializing it's return
pointer arg. Fixed this. Added free of subkey pointer
return in registry/reg_printing.c (interesting that
neithe Coverity or Klocwork found this one).
Jeremy.
(This used to be commit 4fbeae1a3ac3499e5d9f566655cbafccd9d691cb)
2007-10-10 11:18:52 -05:00
Jeremy Allison
a77a699fe9 r16393: Klocwork #1164. Null deref.
Jeremy.
(This used to be commit c9a4ce51ed85686a35f350f4681b95d68adebbd6)
2007-10-10 11:18:51 -05:00
Jeremy Allison
1c8a871aaf r16392: Klockwork #1168. Protect against null deref.
Jeremy.
(This used to be commit cab256d72a91f59432e28e9623c10384d9ca2b5e)
2007-10-10 11:18:51 -05:00
Jeremy Allison
1b64f06048 r16367: Missed one, Klocwork #915.
Jeremy.
(This used to be commit b581fee9824712b9385e9975739a8ddbb297bca8)
2007-10-10 11:18:49 -05:00
Jeremy Allison
d5b6dedfdd r16365: Fix Klocwork #895, #898, #899, #915, #932, #938 and a
few other problems Klocwork missed.
Jeremy.
(This used to be commit fe05769a1a85f924c67be7e5dcee4871a86948d7)
2007-10-10 11:18:49 -05:00
Jeremy Allison
8f2d6e4852 r16243: Fix Klocwork bugs #581 and #706, ensure we check
the end of array first in the loop. Reformat to
modern standards.
Jeremy.
(This used to be commit 66275bd3bc56e67759dbabe77cb2ba019c6f4887)
2007-10-10 11:17:27 -05:00
Jeremy Allison
a1e0a0e928 r16230: Fix Klocwork #861 and others. localtime and asctime
can return NULL. Ensure we check all returns correctly.
Jeremy.
(This used to be commit 6c61dc8ed6d84f310ef391fb7700e93ef42c4afc)
2007-10-10 11:17:26 -05:00
Jeremy Allison
2e8b3ca0cb r16216: Add debug messages to make it possible to try and
debug why a job pause or resume command is not being
done.
Jeremy.
(This used to be commit e6aacb1426bd04c4006f7be66228f9f8d9a7065d)
2007-10-10 11:17:26 -05:00
Volker Lendecke
5895967601 r15569: Fix Coverity bug # 287. Jerry, can you check if WERR_NOMEM is a correct error
code here?

Thanks,

Volker
(This used to be commit 5787bd0ee90b081ae12a4a976893cb297fa7bed4)
2007-10-10 11:17:01 -05:00
Gerald Carter
2c029a8b96 r15543: New implementation of 'net ads join' to be more like Windows XP.
The motivating factor is to not require more privileges for
the user account than Windows does when joining a domain.

The points of interest are

* net_ads_join() uses same rpc mechanisms as net_rpc_join()
* Enable CLDAP queries for filling in the majority of the
  ADS_STRUCT->config information
* Remove ldap_initialized() from sam/idmap_ad.c and
  libads/ldap.c
* Remove some unnecessary fields from ADS_STRUCT
* Manually set the dNSHostName and servicePrincipalName attribute
  using the machine account after the join

Thanks to Guenther and Simo for the review.

Still to do:

* Fix the userAccountControl for DES only systems
* Set the userPrincipalName in order to support things like
  'kinit -k' (although we might be able to just use the sAMAccountName
  instead)
* Re-add support for pre-creating the machine account in
  a specific OU
(This used to be commit 4c4ea7b20f44cd200cef8c7b389d51b72eccc39b)
2007-10-10 11:16:57 -05:00
Gerald Carter
d4a51cc500 r15309: normalize printing keys when deleting
(This used to be commit 037f9f831e001a12261419e37c725558dd717af9)
2007-10-10 11:16:34 -05:00
Volker Lendecke
e17302200c r15101: Little step towards getting Samba4 tdb into 3: tdb_lock_bystring does not
have the timeout argument in Samba4. Add a new routine
tdb_lock_bystring_with_timeout.

Volker
(This used to be commit b9c6e3f55602fa505859a4b2cd137b74105d685f)
2007-10-10 11:16:23 -05:00
Jeremy Allison
cc8ba23e8d r15025: Fix exit_server_cleanly call.
Jeremy.
(This used to be commit a64976b94482ef4397d5b791a0e266edba5a3d0c)
2007-10-10 11:15:57 -05:00
James Peach
4fa5559800 r14898: This change is an attempt to improve the quality of the information that
is produced when a process exits abnormally.

First, we coalesce the core dumping code so that we greatly improve our
odds of being able to produce a core file, even in the case of a memory
fault. I've removed duplicates of dump_core() and split it in two to
reduce the amount of work needed to actually do the dump.

Second, we refactor the exit_server code path to always log an explanation
and a stack trace. My goal is to always produce enough log information
for us to be able to explain any server exit, though there is a risk
that this could produce too much log information on a flaky network.

Finally, smbcontrol has gained a smbd fault injection operation to test
the changes above. This is only enabled for developer builds.
(This used to be commit 56bc02d64498eb3faf89f0c5452b9299daea8e95)
2007-10-10 11:15:53 -05:00
Günther Deschner
a17d276fa0 r14506: Remove remaining references to a KCM credential cache type.
Guenther
(This used to be commit aae8f8ae7a79d06c74151186f3c2470bdec5687d)
2007-10-10 11:15:35 -05:00
Jeremy Allison
419871306c r14489: Guard against coverity reversion. #181 is a false positive
but make the intent clearer.
Jeremy.
(This used to be commit 2703df7a8f26a315ae6ab53de8f7814fa66a1c54)
2007-10-10 11:15:34 -05:00
Jeremy Allison
3b58c82a52 r14273: Fix coverity bug #202. Memory leak on error path.
Jeremy.
(This used to be commit d2be8163f2cf69681150ed7de720a37ffaa8e937)
2007-10-10 11:15:22 -05:00
Jeremy Allison
c00e664e25 r14221: Fix coverity #76. My previous change wasn't quite enough :-).
Jeremy.
(This used to be commit 21b70035f39973e9edff323219c3c7eeb1550e2b)
2007-10-10 11:15:17 -05:00
Jeremy Allison
f2006f8ce1 r14184: Coverity fix #56. Ensure we can't deref null.
Jeremy.
(This used to be commit c76092a0662714b49c3c519d6f01174b8995a036)
2007-10-10 11:15:15 -05:00
Jeremy Allison
82ab2bce5a r14023: My last bug fix still left a potential null deref.
C- "must try harder" :-).
Jeremy.
(This used to be commit 9c55bf74ca28530045c5cb3cbfffad242039ca75)
2007-10-10 11:11:06 -05:00
Jeremy Allison
3527b5cc25 r14003: Clarify code that lead to Coverity report #13.
Not a bug, but better to remove false positives.
Jeremy.
(This used to be commit f9a75d76546bc4618736f0d48646e77d7572db25)
2007-10-10 11:11:04 -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
Günther Deschner
cab298856a r13622: Allow to rename machine accounts in a Samba Domain. This still uses the
"rename user script" to do the rename of the posix machine account (this
might be changed later). Fixes #2331.

Guenther
(This used to be commit b2eac2e6eb6ddd1bcb4ed5172e7cd64144c18d16)
2007-10-10 11:10:19 -05:00
Gerald Carter
b2ae6e08da r13547: add earlier checks to deny deleting a printer driver. The previous
code relied upon file permissions alone.  Now we check that
the user is a printer administrator and that the share has not been
marked read only for that user.
(This used to be commit 117d9fd9e16a7afbc6772506a4f8c33ff99d33f7)
2007-10-10 11:10:12 -05:00
Günther Deschner
ae25f82ac2 r13408: Remove C++ comments (# 3494)
Guenther
(This used to be commit cf86d4c9f0c48e7234945694a4722c35dd33657c)
2007-10-10 11:09:59 -05:00