Also remove wrong buffer overflow check
---
 src/core/network-openssl.c | 15 +++++----------
 1 file changed, 5 insertions(+), 10 deletions(-)

diff --git a/src/core/network-openssl.c b/src/core/network-openssl.c
index 6daa612..c8e2a54 100644
--- a/src/core/network-openssl.c
+++ b/src/core/network-openssl.c
@@ -263,17 +263,12 @@ static gboolean irssi_ssl_verify(SSL *ssl, const char 
*hostname, int port, X509
                if (! X509_digest(cert, EVP_sha256(), md, &n))
                        g_warning("  Could not get fingerprint from peer 
certificate");
                else {
-                       char hex[] = "0123456789ABCDEF";
                        char fp[EVP_MAX_MD_SIZE*3];
-                       if (n < sizeof(fp)) {
-                               unsigned int i;
-                               for (i = 0; i < n; i++) {
-                                       fp[i*3+0] = hex[(md[i] >> 4) & 0xF];
-                                       fp[i*3+1] = hex[(md[i] >> 0) & 0xF];
-                                       fp[i*3+2] = i == n - 1 ? '\0' : ':';
-                               }
-                               g_warning("  SHA256 Fingerprint : %s", fp);
-                       }
+                       unsigned int i;
+                       for (i = 0; i < n; i++)
+                               sprintf(fp + 3 * i, "%02X%c", md[i], i + 1 == n 
? '\0' : ':');
+
+                       g_warning("  SHA256 Fingerprint : %s", fp);
                }
                return FALSE;
        } else if (! irssi_ssl_verify_hostname(cert, hostname)){
-- 
1.8.4


Reply via email to