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

Index: ubuntu/source3/passdb/pdb_interface.c
===================================================================
--- ubuntu.orig/source3/passdb/pdb_interface.c
+++ ubuntu/source3/passdb/pdb_interface.c
@@ -176,7 +176,8 @@
 	static struct pdb_methods *pdb = NULL;
 
 	if ( pdb && reload ) {
-		pdb->free_private_data( &(pdb->private_data) );
+		if (pdb->private_data)
+			pdb->free_private_data( &(pdb->private_data) );
 		if ( !NT_STATUS_IS_OK( make_pdb_method_name( &pdb, lp_passdb_backend() ) ) ) {
 			char *msg = NULL;
 			if (asprintf(&msg, "pdb_get_methods_reload: "
