diff options
author | Endi S. Dewata <edewata@redhat.com> | 2010-07-01 23:12:02 -0500 |
---|---|---|
committer | Noriko Hosoi <nhosoi@redhat.com> | 2010-08-23 11:01:57 -0700 |
commit | 6c9d2fafeded8aceb0f9fcfae4420c3754609c65 (patch) | |
tree | 0a7cfa8f9916f14c35c206ecb536ed21e8d4f570 | |
parent | 9e9b9024db9a306141c44417ce907f2d23440b86 (diff) | |
download | ds-6c9d2fafeded8aceb0f9fcfae4420c3754609c65.tar.gz ds-6c9d2fafeded8aceb0f9fcfae4420c3754609c65.tar.xz ds-6c9d2fafeded8aceb0f9fcfae4420c3754609c65.zip |
Bug 610119 - fix coverify Defect Type: Null pointer dereferences issues 12167 - 12199
https://bugzilla.redhat.com/show_bug.cgi?id=610119
Resolves: bug 610119
Bug description: Fix coverify Defect Type: Null pointer dereferences issues 12167 - 12199
Fix description: Catch possible NULL pointer in dblayer_copy_file_keybykey() and dblayer_copy_file_resetlsns().
-rw-r--r-- | ldap/servers/slapd/back-ldbm/dbhelp.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/ldap/servers/slapd/back-ldbm/dbhelp.c b/ldap/servers/slapd/back-ldbm/dbhelp.c index 36e8dd04..f1f232a4 100644 --- a/ldap/servers/slapd/back-ldbm/dbhelp.c +++ b/ldap/servers/slapd/back-ldbm/dbhelp.c @@ -63,11 +63,17 @@ static int dblayer_copy_file_keybykey(DB_ENV *env, char *source_file_name, char int finished = 0; int mode = 0; + LDAPDebug( LDAP_DEBUG_TRACE, "=> dblayer_copy_file_keybykey\n", 0, 0, 0 ); + if (priv->dblayer_file_mode) mode = priv->dblayer_file_mode; dblayer_set_env_debugging(env, priv); - LDAPDebug( LDAP_DEBUG_TRACE, "=> dblayer_copy_file_keybykey\n", 0, 0, 0 ); + if (!env) { + LDAPDebug(LDAP_DEBUG_ANY, "dblayer_copy_file_keybykey, Out of memory\n", 0, 0, 0); + goto error; + } + /* Open the source file */ retval = db_create(&source_file, env, 0); if (retval) { @@ -193,15 +199,17 @@ int dblayer_copy_file_resetlsns(char *home_dir ,char *source_file_name, char *de /* Make the environment */ retval = dblayer_make_private_simple_env(home_dir,&env); - if (retval) { + if (retval || !env) { LDAPDebug(LDAP_DEBUG_ANY, "dblayer_copy_file_resetlsns: Call to dblayer_make_private_simple_env failed!\n" "Unable to open an environment.", 0, 0, 0); + goto out; } /* Do the copy */ retval = dblayer_copy_file_keybykey(env, source_file_name, destination_file_name, overwrite, priv); if (retval) { LDAPDebug(LDAP_DEBUG_ANY, "dblayer_copy_file_resetlsns: Copy not completed successfully.", 0, 0, 0); } +out: /* Close the environment */ if (env) { int retval2 = 0; |