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

333 Commits

Author SHA1 Message Date
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
e54786b535 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
(This used to be commit 5b89e8bc24f0fdc8b52d5c9e849aba723df34ea7)
2007-10-10 11:10:25 -05:00
Gerald Carter
f351b9c6eb r13382: added server affinity cache stores for 'net rpc join' and trusted domain code
(This used to be commit 9eb743584d32cdb67e0512ac915c34565bce1c01)
2007-10-10 11:09:57 -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
Lars Müller
c42be9fd38 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.
(This used to be commit f650e3bdafc4c6bcd7eb4bcf8b6b885b979919eb)
2007-10-10 11:06:09 -05:00
Günther Deschner
ce5bde1e84 r12338: add ifdef DEBUG_PASSWORD before printing clear text password.
Guenther
(This used to be commit e0be0e052380b38235d4f34d366f48707ed59df7)
2007-10-10 11:05:54 -05:00
Jeremy Allison
8d7c886671 r11137: Compile with only 2 warnings (I'm still working on that code) on a gcc4
x86_64 box.
Jeremy.
(This used to be commit d720867a788c735e56d53d63265255830ec21208)
2007-10-10 11:05:02 -05:00
Jim McDonough
a5b2ec0ba0 r10909: Give better shutdown messages
(This used to be commit 8075b99b44085d107fa42d431300c60133ec53eb)
2007-10-10 11:04:56 -05:00
Gerald Carter
54abd2aa66 r10656: BIG merge from trunk. Features not copied over
* \PIPE\unixinfo
* winbindd's {group,alias}membership new functions
* winbindd's lookupsids() functionality
* swat (trunk changes to be reverted as per discussion with Deryck)
(This used to be commit 939c3cb5d78e3a2236209b296aa8aba8bdce32d3)
2007-10-10 11:04:48 -05:00
Gerald Carter
9a82b0da7c r10431: fix segfault when the pip open fails in 'net rpc' commands
(This used to be commit ffe4188847aabcbfbfadc0f5b60d0eeea9f13d83)
2007-10-10 11:03:41 -05:00
Jim McDonough
3c3fd2fab3 r10247: Fix help text for net rpc shutdown.
(This used to be commit 7af7343d9c7047998e4d54e07730ae1d87de3942)
2007-10-10 11:03:39 -05:00
Gerald Carter
063078d927 r9787: BUG 2998: patch from Humberto Diogenes <virtual.spirit@digizap.com.br> to include 'net rpc service' help in net rpc usage output
(This used to be commit ace8556b6525959114bea47d3be3b1b40756b058)
2007-10-10 11:03:26 -05:00
Tim Potter
850a6f3a8d r8935: Fix signed/unsigned comparison warning. Bugzilla #2943.
(This used to be commit e928a20c2bf9c79a68711c6bcd4fb91b270245f4)
2007-10-10 11:00:21 -05:00
Günther Deschner
fefbaf2bca r8911: cosmetic fixes.
Guenther
(This used to be commit bf67a8611491ed748c6975787ce2f0572586a3c6)
2007-10-10 11:00:19 -05:00
Volker Lendecke
6ccc69c532 r8833: Fix some uninitialized variables.
Volker
(This used to be commit 503a58b6be1972bea0804fab82aee1d814f6d522)
2007-10-10 11:00:18 -05:00
Jim McDonough
e0ffbfc558 r8189: commit vampire ldif patch, mostly from Don Watson (dwatson@us.ibm.com). Yes,
that's my copyright...that's just how we have to do things at big blue.

Adds subcommand to vampire to allow data to be put into an ldif file instead
of actually writing to the passdb.  See "net rpc help vampire" for usage
info.  This should be added to docs as well.
(This used to be commit cb5634a305256a70daa2fcbd85d9a5459b4aeaa3)
2007-10-10 10:58:18 -05:00
Jeremy Allison
19ca97a70f r7882: Looks like a large patch - but what it actually does is make Samba
safe for using our headers and linking with C++ modules. Stops us
from using C++ reserved keywords in our code.
Jeremy
(This used to be commit 9506b8e145982b1160a2f0aee5c9b7a54980940a)
2007-10-10 10:58:00 -05:00
Günther Deschner
57fa9dbfe7 r7876: Now that we have "net rpc share migrate security" completly remove the
share-acl from "net rpc share migrate shares".

God, how ugly does this syntax get.

Guenther
(This used to be commit 6f4d4acc868ee67f8434d904fa51c57d1b847135)
2007-10-10 10:57:59 -05:00
Jeremy Allison
63c78a5e70 r7852: Correct fix from Lars for the argv issue.
Jeremy.
(This used to be commit a667d9e474302e888a0cc009a342da471318928c)
2007-10-10 10:57:59 -05:00
Jeremy Allison
98d1f6ceff r7849: Dodgy fix - we shouldn't be assuming argc++ points to a valid argv.
Jeremy.
(This used to be commit 5fbabaef8cab894c6d349b0535a06c2c9d1437db)
2007-10-10 10:57:59 -05:00
Günther Deschner
75545d578e r7632: Cleanup "net share migrate"-code.
* Allow to copy share security descriptors to already existing shares
  separatly.

* Added abstraction function to enum all or a single share info

Guenther
(This used to be commit 97097497ae42d7a03286bbe16bcffb8224137688)
2007-10-10 10:57:17 -05:00
Lars Müller
7cbd740c62 r7609: Move top level dir handling in from of the loop. This makes the code
much straither.

copy_top_level_perms() is jra's work.

I modified the copy_top_level_perms() function to use the copy_clistate.

And I don't forget trunk.

Lars
(This used to be commit 2c68568e5232c057d4f76f4bb044c54d18272602)
2007-10-10 10:57:16 -05:00
Günther Deschner
075649d3c2 r7532: compile fix.
Guenther
(This used to be commit 1815e0745e4707f608a4803e67c7a3bd0c0b844a)
2007-10-10 10:57:11 -05:00
Lars Müller
ebb42167c9 r7512: Fix net share migrate files to also migrate the ACLs of the top level
dir of a share.  Till now we excluded '.' and '..' in general.  For the
fix the information about top or lower level dir is stored in the
copy_clistate.  src and dst share are now also part of this struct and
we only pass a pointer to the struct to the functions.

This bug was found by Bill Calero of Novell.  Thanks Bill!

With this checkin no new functionality was added.  But the copy_clistate
already knows about a mode. Later beside the migrate an additional
report mode will be added.

This changes are coordinated with Günther <gd>.

Lars
(This used to be commit 506aaefa3716c7683eef9afe0d1bb5b6e2533c4b)
2007-10-10 10:57:10 -05:00
Gerald Carter
fed660877c r7415: * big change -- volker's new async winbindd from trunk
(This used to be commit a0ac9a8ffd4af31a0ebc423b4acbb2f043d865b8)
2007-10-10 10:57:08 -05:00
Günther Deschner
4bc39f05b7 r7391: - Added client-support for various lsa_query_trust_dom_info-calls and a
rpcclient-tester for some info-levels.

  Jerry, I tried to adopt to prs_pointer() where possible and to not
  interfere with your work for usrmgr.

- Add "net rpc trustdom vampire"-tool.

  This allows to retrieve Interdomain Trust(ed)-Relationships from
  NT4-Servers including cleartext-passwords (still stored in the local
  secrets.tdb).

  The net-hook was done in cooperation with Lars Mueller
  <lmuelle@suse.de>.

  To vampire trusted domains simply call:

        net rpc trustdom vampire -S nt4dc -Uadmin%pass

Guenther
(This used to be commit 512585293963a1737f831af697ea1dc092d63cb0)
2007-10-10 10:57:07 -05:00
Gerald Carter
dc993c13a8 r6943: missed in last sync
(This used to be commit 3002aa22505d4604f7919bf7207477e737372404)
2007-10-10 10:56:58 -05:00
Volker Lendecke
3b0df6770d r6880: Fix bug 2070 after positive feedback from Leon Vernikov. Thanks!
Volker
(This used to be commit f25da82ffd8cdaf9ba773352b6f35d5390ee4aad)
2007-10-10 10:56:56 -05:00
John Terpstra
b5c736d0f0 r6823: Add deletion confirmation / error message.
(This used to be commit 11804521f9cf8cdfb8c1526ea81dfb8a2c16c194)
2007-10-10 10:56:55 -05:00
Gerald Carter
28824fb197 r6601: fixing query and set alias info calls (level 1 from the
MMC manage computer plugin.
(This used to be commit c43c1ec80cb52569ccabcdf95e4004386ecb29d6)
2007-10-10 10:56:46 -05:00
Volker Lendecke
83e11ba86c r6263: Get rid of generate_wellknown_sids, they are const static and initializable
statically.

Volker
(This used to be commit 3493d9f383567d286e69c0e60c0708ed400a04d9)
2007-10-10 10:56:33 -05:00
Gerald Carter
2e3ce1d534 r6029: adding files necessary to support 'net rpc service' functions; will fill in tomorrow
(This used to be commit 6bbd61cfd1ca2dbe8d96d894f90f263b8f24571f)
2007-10-10 10:56:16 -05:00
Günther Deschner
7c198517da r5954: Fix some compiler warnings and add missing exclude-block in "net rpc
share migrate" (found by Lars Mueller <lmuelle@suse.de>).

Guenther
(This used to be commit 45a2a7bedb877745cd9677fe3124d5a2ad2c8853)
2007-10-10 10:56:11 -05:00
Volker Lendecke
b4ecaaf599 r5910: Partial fix for bug 2438. I'll leave the debug message in place, that fix is a
bit more effort.

The real fix for this would be to open an schannel netlogon connection to the
remote DC and change the trust account password...

Volker
(This used to be commit ab8991c384d81d32ac13f89592e8b35208127b32)
2007-10-10 10:56:08 -05:00
Herb Lewis
5794ada01f r5888: fix incorrect test - don't print anything if user is not in any groups
(This used to be commit 2461a8e482ab22dde4b7af8ea6d6ee043f302bf8)
2007-10-10 10:56:07 -05:00
Gerald Carter
6b06ba4a87 r5614: fix proto for copy_fn() after changes to cli_list()
(This used to be commit fb8e746ed65fa3aacda3d6be0e3f28f690fbdacb)
2007-10-10 10:55:50 -05:00
Jim McDonough
7f5611ce55 r5594: Fix comment to read "remove" instead of "add"
(This used to be commit 6884a2fa6e3d19a436edfb428056978ae127f442)
2007-10-10 10:55:49 -05:00
Jim McDonough
ac1cc87122 r5591: Implement "net rpc trustdom del", including client side of
samr_remove_sid_from_foreign_domain.
(This used to be commit 8360695fc02dfb09aff92a434bf9d411e65c478c)
2007-10-10 10:55:49 -05:00
Jim McDonough
180fa12026 r5580: Fix "net rpc trustdom add". Much closer to what windows does. Also stop
referencing unknown_6 from sam, because it's just fixed at 1260, the max
len of LOGON_HRS.  Need to go in and mark it as "remove me" from passdb.
(This used to be commit ffac752875938d510446ebbeba6fc983f65cda1e)
2007-10-10 10:55:48 -05:00
Volker Lendecke
dc0ec44483 r5471: In cli_samr_lookup_rids, flags is not a flags but an array size. W2k3 rejects
everything but 1000 here, so there's no point in exposing that to the caller.

Thanks,

Volker
(This used to be commit 03ec1bd9e54b065c0494bc57a3d78ac0ae28e234)
2007-10-10 10:55:42 -05:00
Richard Sharpe
5ba4fb5eb9 r5318: Fix a small problem in where we ignore the response from a SamrGetGroupsForUser
that says the user is in 0 groups, and we issue an RPC to LookupIds for 0 RIDs.

The printing that there are no groups the user is a member of might be overkill
in that it might upset existing scripts that don't expect that output.
(This used to be commit d3482e118f99002c0460291d41708fdf7708c41f)
2007-10-10 10:55:37 -05:00
Günther Deschner
9b1e5a7118 r4972: Fix a warning and some debugging-outputs.
Guenther
(This used to be commit 1eabfa050b661168b42892c2d841c7891e59cf5f)
2007-10-10 10:55:10 -05:00
Günther Deschner
725edd20f1 r4868: Add "net rpc user RENAME"-command.
Note that Samba3 does not yet support it server-side.

Guenther
(This used to be commit b2c8220931733593fd312fc25b6c73f440b4567a)
2007-10-10 10:55:05 -05:00
Gerald Carter
862e610e4a r4820: add beginnings of 'net rpc rights' for managing privilege assignments
(This used to be commit 164f94e52929330bd638f19bcf3bfce50303269e)
2007-10-10 10:53:55 -05:00
Jeremy Allison
bd22606da0 r4656: Convert the winreg pipe to use WERROR returns (as it should).
Also fix return of NT_STATUS_NO_MORE_ENTRIES should be
ERROR_NO_MORE_ITEMS reported by "Marcin Porwit" <mporwit@centeris.com>.
Jeremy.
(This used to be commit 511cdec60d431d767fb02f68ca5ddd4ddb59e64a)
2007-10-10 10:53:50 -05:00
Volker Lendecke
c85d9e735c r4570: Replace cli->nt_pipe_fnum with an array of NT file numbers, one for each
supported pipe. Netlogon is still special, as we open that twice, one to do
the auth2, the other one with schannel.

The client interface is completely unchanged for those who only use a single
pie. cli->pipe_idx is used as the index for everything except the "real"
client rpc calls, which have been explicitly converted in my last commit. Next
step is to get winbind to just use a single smb connection for multiple pipes.

Volker
(This used to be commit dc294c52e0216424236057ca6cd35e1ebf51d0da)
2007-10-10 10:53:47 -05:00
Jeremy Allison
acf9d61421 r4088: Get medieval on our ass about malloc.... :-). Take control of all our 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-10 10:53:32 -05:00
Jim McDonough
0cd225cbf3 r3771: Fix bug #1952: no comment on XP shutdown
Try INITSHUTDOWN pipe first, used by newer clients.  If it fails, fall back
to WINREG.
(This used to be commit f05858df65d89950c739a739a9b9fa7a04db39c3)
2007-10-10 10:53:17 -05:00
Günther Deschner
3eff1f48d5 r2942: Add client-side support of triggering ads printer publishing over msrpc
setprinter calls inside the net-tool.

This is usefull to mimic the same queries a windows-client does. At
least win2k returns WERR_IO_PENDING when printer is published via
setprinter, samba returns WERR_OK but this does not hurt.

Guenther
(This used to be commit 69b745fb98b8054d1f52e8a3fe3b933fb04336db)
2007-10-10 10:52:57 -05:00
Volker Lendecke
e66c8217f8 r2935: This is a long-standing one in my patch-queue: A pair of net commands
(usersidlist/allowedusers) to scan a file server's share and list all users
who have permission to connect there.

Volker
(This used to be commit f7f84aa1ded70af3882e4122f34d5c7eed746993)
2007-10-10 10:52:57 -05:00