summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNikos Mavrogiannopoulos <nmav@redhat.com>2014-11-28 10:32:22 +0100
committerNikos Mavrogiannopoulos <nmav@redhat.com>2014-11-28 10:35:26 +0100
commit9265a6b5d709b20d4b555af90b108dc0b81e0559 (patch)
treee98906d33eb3ecc31c17d6ff0c58f68399a027b8
parentf5d81fe14b09974c739e0e37afc52a68089a3fb5 (diff)
downloadgnutls-9265a6b5d709b20d4b555af90b108dc0b81e0559.tar.gz
gnutls_session_get_desc: allow proper printing of the NULL KX
-rw-r--r--lib/gnutls_ui.c24
1 files changed, 15 insertions, 9 deletions
diff --git a/lib/gnutls_ui.c b/lib/gnutls_ui.c
index 03610e80a6..676a2f3a31 100644
--- a/lib/gnutls_ui.c
+++ b/lib/gnutls_ui.c
@@ -813,6 +813,7 @@ gnutls_certificate_set_rsa_export_params(gnutls_certificate_credentials_t
char *gnutls_session_get_desc(gnutls_session_t session)
{
gnutls_kx_algorithm_t kx;
+ const char *kx_str;
unsigned type;
char kx_name[32];
char proto_name[32];
@@ -833,15 +834,20 @@ char *gnutls_session_get_desc(gnutls_session_t session)
dh_bits = gnutls_dh_get_prime_bits(session);
}
- if (curve_name != NULL)
- snprintf(kx_name, sizeof(kx_name), "%s-%s",
- gnutls_kx_get_name(kx), curve_name);
- else if (dh_bits != 0)
- snprintf(kx_name, sizeof(kx_name), "%s-%u",
- gnutls_kx_get_name(kx), dh_bits);
- else
- snprintf(kx_name, sizeof(kx_name), "%s",
- gnutls_kx_get_name(kx));
+ kx_str = gnutls_kx_get_name(kx);
+ if (kx_str) {
+ if (curve_name != NULL)
+ snprintf(kx_name, sizeof(kx_name), "%s-%s",
+ kx_str, curve_name);
+ else if (dh_bits != 0)
+ snprintf(kx_name, sizeof(kx_name), "%s-%u",
+ kx_str, dh_bits);
+ else
+ snprintf(kx_name, sizeof(kx_name), "%s",
+ kx_str);
+ } else {
+ strcpy(kx_name, "NULL");
+ }
type = gnutls_certificate_type_get(session);
if (type == GNUTLS_CRT_X509)