diff options
author | Nikos Mavrogiannopoulos <nmav@redhat.com> | 2014-11-28 10:32:22 +0100 |
---|---|---|
committer | Nikos Mavrogiannopoulos <nmav@redhat.com> | 2014-11-28 10:35:26 +0100 |
commit | 9265a6b5d709b20d4b555af90b108dc0b81e0559 (patch) | |
tree | e98906d33eb3ecc31c17d6ff0c58f68399a027b8 | |
parent | f5d81fe14b09974c739e0e37afc52a68089a3fb5 (diff) | |
download | gnutls-9265a6b5d709b20d4b555af90b108dc0b81e0559.tar.gz |
gnutls_session_get_desc: allow proper printing of the NULL KX
-rw-r--r-- | lib/gnutls_ui.c | 24 |
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) |