From 2125ec026993d82b51335463dc7fc5b899a4057a Mon Sep 17 00:00:00 2001 From: beck <> Date: Tue, 15 Apr 2014 20:14:23 +0000 Subject: convert BIO_snprintf to snprintf ok deraadt@ tedu@ --- src/lib/libssl/src/apps/s_client.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/lib/libssl/src/apps/s_client.c b/src/lib/libssl/src/apps/s_client.c index 87fd958cbd..e9840ddf09 100644 --- a/src/lib/libssl/src/apps/s_client.c +++ b/src/lib/libssl/src/apps/s_client.c @@ -230,11 +230,15 @@ static unsigned int psk_client_cb(SSL *ssl, const char *hint, char *identity, unsigned int max_psk_len) { unsigned int psk_len = 0; + size_t maxlen = 0; int ret; BIGNUM *bn=NULL; if (c_debug) BIO_printf(bio_c_out, "psk_client_cb\n"); + if (max_identity_len > INT_MAX) + goto out_err; + maxlen = max_identity_len; if (!hint) { /* no ServerKeyExchange message*/ @@ -245,8 +249,8 @@ static unsigned int psk_client_cb(SSL *ssl, const char *hint, char *identity, BIO_printf(bio_c_out, "Received PSK identity hint '%s'\n", hint); /* lookup PSK identity and PSK key based on the given identity hint here */ - ret = BIO_snprintf(identity, max_identity_len, "%s", psk_identity); - if (ret < 0 || (unsigned int)ret > max_identity_len) + ret = snprintf(identity, maxlen, "%s", psk_identity); + if (ret == -1 || ret >= maxlen) goto out_err; if (c_debug) BIO_printf(bio_c_out, "created identity '%s' len=%d\n", identity, ret); -- cgit v1.2.3-55-g6feb