X509_STORE_CTX_set_verify_cb(&ctx, s->verify_callback);
if (s->ctx->app_verify_callback != NULL)
+#if 1 /* new with OpenSSL 0.9.7 */
+ i=s->ctx->app_verify_callback(&ctx, s->ctx->app_verify_arg);
+#else
i=s->ctx->app_verify_callback(&ctx); /* should pass app_verify_arg */
+#endif
else
{
#ifndef OPENSSL_NO_X509_VERIFY
ret = 1;
err:
+ if (d) closedir(d);
CRYPTO_w_unlock(CRYPTO_LOCK_READDIR);
return ret;
}
SYSerr(SYS_F_OPENDIR, get_last_sys_error());
ERR_add_error_data(3, "opendir('", dir, "')");
SSLerr(SSL_F_SSL_ADD_DIR_CERT_SUBJECTS_TO_STACK, ERR_R_SYS_LIB);
- goto err;
+ goto err_noclose;
}
do
goto err;
}
while (FindNextFile(hFind, &FindFileData) != FALSE);
- FindClose(hFind);
ret = 1;
-err:
+err:
+ FindClose(hFind);
+err_noclose:
CRYPTO_w_unlock(CRYPTO_LOCK_READDIR);
return ret;
}