Age | Commit message (Collapse) | Author | Files | Lines |
|
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)
|
|
* Finish prototype of the "add port command" implementation
Format is "addportcommand portname deviceURI"
* DeviceURI is either
- socket://hostname:port/
- lpr://hostname/queue
depending on what the client sent in the request
(This used to be commit 6d74de7a676b71e83a3c3714743e6380c04e4425)
|
|
Began the poet, his face as pale as death.
"I will go first, and you will follow me."
---
Adding XcvDataPort() to the spoolss code for remotely
add ports. The design is to allow an intuitive means
of creating a new CUPS print queue from the Windows 2000/XP
APW without hacks like specifying the deviceURI in the
location field of the printer properties dialog.
Also set 'default devmode = yes' as the new default
since it causes no harm and only is executed when you
have a NULL devmode anyways.
(This used to be commit 123e478ce5b5f63a61d00197332b847e83722468)
|
|
* disable winbind enum {users,groups} by default after
further conversations with Volker.
(This used to be commit d640d815405ce226c51577de5524daf63515d0a7)
|
|
* winbind nested groups = yes
* host msdfs = ye
* msdfs root = yes
(This used to be commit b5f01559e1f75c427e59646ee79e18433806213e)
|
|
up typing and tighten error checking a little.
(This used to be commit 37e12a196b1b1ee57b17a21226ba55d3aa6c69a5)
|
|
/tmp if there is no path in the share, make it unavailable.
All printer shares should have a path and IPC$ is already
explicitly set to tmpdir().
Jeremy.
(This used to be commit b1915a0591d9842b4c95f527363a807e8a756697)
|
|
macro which sets the freed pointer to NULL.
(This used to be commit b65be8874a2efe5a4b167448960a4fcf6bd995e2)
|
|
* enable privileges = yes
* enable asu support = no
Remove unused function after the tdbsam rewrite.
(This used to be commit 5385a01ee19d9c7e00b4dd7a6ab3ec1d4b03b558)
|
|
* 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
(This used to be commit 7a2da5f0cc05c1920c664c9a690a23bdf854e285)
|
|
internally in services_db.c now. This prevents internal services from
being listed twice (one internal and one external) when no
'svcctl list' parameter is explcitly set in smb.conf
(This used to be commit 6c4ede6cee7e1d25a6357e959972e8d390c27fe3)
|
|
Sync with trunk as off r13315
(This used to be commit 17e63ac4ed8325c0d44fe62b2442449f3298559f)
|
|
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)
|
|
(This used to be commit 652b511ff24ce41c7745a0e00363e619e5027828)
|
|
before it goes in.
Volker
(This used to be commit 2c3d5c029a31111e1fe84ddc13c1bfc183d8bfde)
|
|
modes and
oplocks across the cluster. Adapt Samba to it.
The gpfs API is called via libgpfs.so. This code is written with dlopen(), so
that you can compile on a system with gpfs installed and later on run on
systems without gpfs available.
So to actually make Samba call gpfs share mode calls you need to compile with
gpfs.h and libgpfs.so around and set 'gpfs share = yes' on the shares you
export from GPFS.
Volker
(This used to be commit 2253b17a1a88555291b59d52c826c81c2b8f7e7f)
|
|
Guenther
(This used to be commit c727a1a330e50b0919ff705d9ebc55c72d8fdee4)
|
|
translation elsewhere.
Guenther
(This used to be commit 6c4a6da3dc7cecce09890a0da7d97b9d1bb47827)
|
|
(This used to be commit de839cc1658b6394e153a1f027c29524b301625b)
|
|
We came to the conclusion that changing the default is something that has to
wait one or two more releases, but it will happen one way or the other.
Volker
(This used to be commit 30fcdf84d8943e630af78a96320607c42e4d15aa)
|
|
session
setup comes in with the vc (virtual connection) field set to zero. This is
done by Windows, probably you can tweak that by some registry key.
This boolean option controls whether an incoming session setup
should kill other connections coming from the same IP. This matches
the default Windows 2003 behaviour.
Setting this parameter to yes becomes necessary when you have a flaky
network and windows decides to reconnect while the old connection
still has files with share modes open. These files become inaccessible
over the new connection.
The client sends a zero VC on the new connection, and Windows 2003
kills all other connections coming from the same IP. This way the
locked files are accessible again.
Please be aware that enabling this option will kill connections behind
a masquerading router.
Volker
(This used to be commit 5629ca16235f0aa21fea3afd9e414309e4e1374e)
|
|
configure.in
needs something along the lines of
if [ $LOGNAME == "jht" ]
then
CFLAGS="$CFLAGS -DDEVELOPER"
fi
But that goes a bit far I think.... :-)))
Volker
(This used to be commit 99d76042e962405fcaeb974a55db563207e0f92a)
|
|
(This used to be commit 5b882acafbacce6246b8f729eb8e347039ee16bd)
|
|
(This used to be commit 59c00924b67aa3d37a933731a56d03963ec7f1b5)
|
|
an *integer*, not a pointer. Doh !
Jeremy.
(This used to be commit f1e0c863637f11f5857663d1980ba7f40fce7357)
|
|
(This used to be commit 88a33c4cf87ada17637579d9261471c219e88de0)
|
|
name stored in the array was normalized. This was causing
records to not be deleted on a reload. As a result,
I was getting the wrong path for various services.
Seems to be ok after this change.
Also converted canonicalize_servicename() to just
use strupper_m() rather than doing the conversion itself.
Jeremy, i think this should be ok but please check.
also cleaned up some things in the hash service code
and added debug messages for sanity purposes.
(This used to be commit e0bf0581f0aaf1505f653f2101eed61352d03da8)
|
|
MB service names may contain embedded ' ' characters.
Jeremy.
(This used to be commit 83d0cda858de5f40ab652e1f438808a3bfac0f81)
|
|
The problem
was a O(n^2) loop: Whenever a service definition was found, we linearly
searched the already loaded share definitions, the patch adds an internal tdb
for this. For a smb.conf with 2000 shares this speeds up loading by about a
factor of 50.
Might be a fix for bug #1117.
Thanks to Michael Adam <ma@sernet.de>,
Volker
(This used to be commit d07343e0c4022d753f381d368fc0f03972a070f3)
|
|
This does 2 things.
1). Makes dfree command a per-share parameter (it should be anyway IMHO).
2). Adds a "dfree cache time" parameter in seconds that specifies how long a
dfree command output should be cached for. Default is zero (no caching).
Jeremy.
(This used to be commit 49ef8b88a3e12883148eb28d8e86fb07dbc3d12d)
|
|
(This used to be commit 0e60813ed0d5c56c44a371d84275d1944bade770)
|
|
added new parameter : map readonly = [yes|no|permissions]
If yes: map inverse of user "w" bit to mean readonly.
If no: never set DOS readonly bit.
If permissions: check file permissions for user and set readonly
bit if the current user cannot write.
If store dos attributes is set to yes then this parameter
is ignored.
Jeremy.
(This used to be commit da4238d18c7a57d1264db8517fb027a10a11baed)
|
|
This gets it working before replacing tdb with the samba4 version.
(This used to be commit 8210b0503a050e12ee1b4335fa6e50d10ad06577)
|
|
(This used to be commit f10aa9fb84bfac4f1a22b74d63999668700ffaac)
|
|
* \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)
|
|
Jeremy.
(This used to be commit 155dc2d52a971bfb8d7565c06f3efc637e130b11)
|
|
(This used to be commit 623d2e69319ffead31a780a4d6156dae45f386d7)
|
|
the username map file.
(This used to be commit 46f2897fdc1f9308f2cc15834c8b039c17c34707)
|
|
Jeremy.
(This used to be commit f7b169ed57de81229c3b9089a05f4e73ea39010c)
|
|
Removing deprecated lp_min_password_length (the same functionality is
provided by the account policy).
Note that we now allow to set passwords less then 5 chars (if the admins
decides to do so by setting the account policy).
Thanks to Daniel Beschorner <db@unit-netz.de>
Guenther
(This used to be commit fd91378925f7e3541df4f31bd461dabc1da523a9)
|
|
upcoming changes for "unixinfo"-pipe.
Therefor (after speaking with Volker) replace "winbind sfu support" with
the list-parameter "winbind nss info" which defaults to "template". For
SFU-support set it to "winbind nss info = template sfu".
Note that nss_info_use() is just a dummy function at the moment.
Guenther
(This used to be commit 91596330ea3c4ba0fb9ddc52ad9d4a7c8e5b2d3f)
|
|
Guenther
(This used to be commit e79e384eb307c6bbe05e07a87dcc6af42a0c0a32)
|
|
POSIX
homedirectory and the loginshell from Active Directory's "Services for Unix".
Enable it with:
winbind sfu support = yes
User-Accounts without SFU-Unix-Attributes will be assigned template-based
Shells and Homedirs as before.
Note that it doesn't matter which version of Services for Unix you use (2.0,
2.2, 3.0 or 3.5). Samba should detect the correct attributes (msSFULoginShell,
msSFU30LoginShell, etc.) automatically.
If you also want to share the same uid/gid-space as SFU then also use PADL's
ad-idmap-Plugin:
idmap backend = ad
When using the idmap-plugin only those accounts will appear in Name Service
Switch that have those UNIX-attributes which avoids potential uid/gid-space
clashes between SFU-ids and automatically assigned idmap-ids.
Guenther
(This used to be commit 28b59699425b1c954d191fc0e3bd357e4a4e4cd8)
|
|
mapping of rwx to full control or not. Requested feature at SambaXP.
Jeremy.
(This used to be commit c870579f4cd91dc9e030134dd367109aed3e3469)
|
|
Jeremy.
(This used to be commit 1de27da47051af08790317f5b48b02719d6b9934)
|
|
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)
|
|
pathnames.
ie. files containing : and \ can be accessed from Linux.
Jeremy.
(This used to be commit e9b8d23d6138d909a65ea70b2e801881e8333b38)
|
|
state for the 'disable spoolss' parameter in memory for an individual smbd
(This used to be commit f19c10d0c3e7701066b765c712df0636e914bf7e)
|
|
Guenther
(This used to be commit bc419472e295945559cf83f6ed9febff29adcfc1)
|
|
--show-all-parameters
Enumerates all available parameters, grouped in to sections
[local] and [global] by the class of the parameter. Each line
is formated name=type[,enum values],flags
--parameter-name
Display the setting of the named parameter. The global section
is assumed if no other is set with --section-name
--section-name
Limit the view of testparm to the named section. Use 'global'
to only view the settings of the global section.
This fixes bug #2767.
Lars
(This used to be commit a1b82624d739b1066c356dd4b689233f3c36814e)
|