summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorNikos Mavrogiannopoulos <nmav@crystal.(none)>2008-09-14 17:39:27 +0300
committerNikos Mavrogiannopoulos <nmav@crystal.(none)>2008-09-14 17:39:27 +0300
commit5affc4b878371cf802b2529d0caf5668346dd4bc (patch)
tree1263eedff87eef76f5d1d6f937f89ec0648097eb /lib
parent447e73a73c95ffc569477252779dcea6fd578396 (diff)
downloadgnutls-5affc4b878371cf802b2529d0caf5668346dd4bc.tar.gz
added some pedantic error checking.
Diffstat (limited to 'lib')
-rw-r--r--lib/auth_cert.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/lib/auth_cert.c b/lib/auth_cert.c
index 621dd22854..6c2da78a17 100644
--- a/lib/auth_cert.c
+++ b/lib/auth_cert.c
@@ -409,7 +409,7 @@ call_get_cert_callback (gnutls_session_t session,
gnutls_cert *local_certs = NULL;
gnutls_privkey *local_key = NULL;
gnutls_retr_st st;
- int ret;
+ int ret = GNUTLS_E_INTERNAL_ERROR;
gnutls_certificate_type_t type = gnutls_certificate_type_get (session);
gnutls_certificate_credentials_t cred;
@@ -425,10 +425,20 @@ call_get_cert_callback (gnutls_session_t session,
if (session->security_parameters.entity == GNUTLS_SERVER)
{
+ if (cred->server_get_cert_callback == NULL)
+ {
+ gnutls_assert();
+ return GNUTLS_E_INTERNAL_ERROR;
+ }
ret = cred->server_get_cert_callback (session, &st);
}
else
{ /* CLIENT */
+ if (cred->client_get_cert_callback == NULL)
+ {
+ gnutls_assert();
+ return GNUTLS_E_INTERNAL_ERROR;
+ }
ret =
cred->client_get_cert_callback (session,
issuers_dn, issuers_dn_length,