Coverity ID 545 falsely classified this as a NULL dereferencing bug.
By putting the loop of walking the list of aces more naturely not using
additional counters, it becomes much more obvious that it is not entered
when dir_ace == NULL.
The same modifications are done for the file_ace loop.
Michael Adam [Wed, 26 Mar 2008 13:33:22 +0000 (14:33 +0100)]
net_conf: fix import function by using the new text backend of smbconf.
Originally, lp_load() was used to import files to registry.
This had several bugs. Most notably, options explicitly set to
default values were silently dropped, and all parametric options
were ignored.
This new implementation reads config from the text backend and
stuffs everything verbatim in to the registry backend.
Michael Adam [Wed, 26 Mar 2008 13:30:36 +0000 (14:30 +0100)]
libsmbconf: add a text backend to libsmbconf based on the params.c parser.
This is a simple implementation of text backend for libsmbconf.
It is read only. It uses the parser from params.c. It loads the
given config file and holds the parsed lists of strings in memory.
Config is only re-read if the time stamp of the config file has changed.
Brilliant performance on large files is not to be expected since the
string lists are not hashed. This might be added in the future.
Volker Lendecke [Tue, 25 Mar 2008 21:35:20 +0000 (22:35 +0100)]
Fix a valgrind error
In winbind, we're using the info3 struct to send it to the winbind client after
netsamlogon_cache_store. Without this info3->base.account_name.string was
prematurely freed.
Volker Lendecke [Tue, 25 Mar 2008 21:21:50 +0000 (22:21 +0100)]
Fix a segfault
When we get a NT_STATUS_WRONG_PASSWORD for example, my_info3 is not initialized
at all. So first check that we have NT_STATUS_IS_OK(status) before we
dereference my_info3.
Ignore port when pulling IP addr from struct sockaddr_storage.
Linux man page states that getaddinfo() will leave the port
uninitialized when passing in NULL for the service name. So we
can't really trust that anymore. I doubt non-default KDC ports
are an issues so just drop the port from the generated krb5.conf.
AIX exhibits this bug the most.
Fix libtdb some to move back towards allowing out of tree builds
Remaining problem is that not all *.syms linker scripts are generated
so the LD command needs to look in a single place. Out of tree
builds now work but report write access to the source tree in order
to create the $(srcdir)/expotrs/libtdb.sysms file.
Eric Cronin [Mon, 24 Mar 2008 19:33:04 +0000 (12:33 -0700)]
Missing HAVE_UPDWTMPX check before using updwtmpx().
In 10.5 Mac OS X added enough utmpx support to make it past the
first two preprocessor checks around line 390 of src/smbd/utmp.c
and on to the utmpx block which uses updwtmpx(). Unfortunately,
as ./configure correctly surmised, 10.5 doesn't have that.
Michael Adam [Sat, 22 Mar 2008 01:22:54 +0000 (02:22 +0100)]
libgpo: use reg_setkeysecurity() instead of regdb_set_secdesc().
That is, use the reg_api function instead of the backend function.
For this, code had to be changed, to take a "struct registry_key"
instead of a char *.
Michael Adam [Fri, 21 Mar 2008 22:39:01 +0000 (23:39 +0100)]
libsmbconf: add internal open/close handling to registry backend.
This internally keeps track of opened registry in the private data
struct. The first call that really accesses data, opens the registry
and it is kept open until the destructor is called.
Michael Adam [Fri, 21 Mar 2008 21:52:27 +0000 (22:52 +0100)]
libsmbconf: add private_data section to smbconf_ctx.
This private data should be used by backends.
The token for the registry backend is moved from
the context to the private data section, since
this is registry specific.
Michael Adam [Fri, 21 Mar 2008 16:55:31 +0000 (17:55 +0100)]
libsmbconf: add a "path" variable to the conf context.
This is passed to the module init routines.
In case of the registry, this is the path of the
basekey in registry, that is to be used, defaulting
to KEY_SMBCONF (HKLM\software\samba\smbconf), when
NULL is given. This is the only case currently used.
In order to support other keys, registry initialization
for smbconf has to be changed to support different keys.