diff options
author | Steve Langasek <steve.langasek@ubuntu.com> | 2012-05-09 07:56:00 +0200 |
---|---|---|
committer | Volker Lendecke <vl@samba.org> | 2012-05-10 11:07:27 +0200 |
commit | 31db7d298577f18d70b0a8241a92dc8a1dc782bd (patch) | |
tree | 8d702035822a42d231409f8562b0aeb68ab30726 | |
parent | 815eb53b3397495b4b6eeade267442bafb12aa82 (diff) | |
download | samba-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
-rw-r--r-- | source3/passdb/pdb_interface.c | 4 |
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; } |