summaryrefslogtreecommitdiff
path: root/source3/passdb/pdb_interface.c
diff options
context:
space:
mode:
authorSteve Langasek <steve.langasek@ubuntu.com>2012-05-09 07:56:00 +0200
committerVolker Lendecke <vl@samba.org>2012-05-10 11:07:27 +0200
commit31db7d298577f18d70b0a8241a92dc8a1dc782bd (patch)
tree8d702035822a42d231409f8562b0aeb68ab30726 /source3/passdb/pdb_interface.c
parent815eb53b3397495b4b6eeade267442bafb12aa82 (diff)
downloadsamba-31db7d298577f18d70b0a8241a92dc8a1dc782bd.tar.gz
samba-31db7d298577f18d70b0a8241a92dc8a1dc782bd.tar.bz2
samba-31db7d298577f18d70b0a8241a92dc8a1dc782bd.zip
Fix bug 8920, null dereference
Description: Avoid null dereference in initialize_password_db() When initialize_password_db() is called with reload=True, it's assumed that the free_private_data member of pdb_methods is non-null. This is not necessarily the case, as the tdb backend has no private data and therefore no free function. Check to see if we have private data that needs freed before calling. Author: Steve Langasek <steve.langasek@ubuntu.com> Bug-Ubuntu: https://bugs.launchpad.net/bugs/829221 Autobuild-User: Volker Lendecke <vl@samba.org> Autobuild-Date: Thu May 10 11:07:27 CEST 2012 on sn-devel-104
Diffstat (limited to 'source3/passdb/pdb_interface.c')
-rw-r--r--source3/passdb/pdb_interface.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/source3/passdb/pdb_interface.c b/source3/passdb/pdb_interface.c
index 6945a4210c..5931dde2d8 100644
--- a/source3/passdb/pdb_interface.c
+++ b/source3/passdb/pdb_interface.c
@@ -195,7 +195,9 @@ static struct pdb_methods *pdb_get_methods_reload( bool reload )
static struct pdb_methods *pdb = NULL;
if ( pdb && reload ) {
- pdb->free_private_data( &(pdb->private_data) );
+ if (pdb->free_private_data != NULL) {
+ pdb->free_private_data( &(pdb->private_data) );
+ }
if ( !NT_STATUS_IS_OK( make_pdb_method_name( &pdb, lp_passdb_backend() ) ) ) {
return NULL;
}