diff options
Diffstat (limited to 'src/lib/libssl/d1_srvr.c')
-rw-r--r-- | src/lib/libssl/d1_srvr.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/src/lib/libssl/d1_srvr.c b/src/lib/libssl/d1_srvr.c index 47a0c0e2a2..6040dd96ca 100644 --- a/src/lib/libssl/d1_srvr.c +++ b/src/lib/libssl/d1_srvr.c | |||
@@ -1018,6 +1018,9 @@ dtls1_send_server_key_exchange(SSL *s) | |||
1018 | BN_CTX *bn_ctx = NULL; | 1018 | BN_CTX *bn_ctx = NULL; |
1019 | 1019 | ||
1020 | #endif | 1020 | #endif |
1021 | #ifndef OPENSSL_NO_PSK | ||
1022 | size_t pskhintlen; | ||
1023 | #endif | ||
1021 | EVP_PKEY *pkey; | 1024 | EVP_PKEY *pkey; |
1022 | unsigned char *p, *d; | 1025 | unsigned char *p, *d; |
1023 | int al, i; | 1026 | int al, i; |
@@ -1226,8 +1229,9 @@ dtls1_send_server_key_exchange(SSL *s) | |||
1226 | #endif /* !OPENSSL_NO_ECDH */ | 1229 | #endif /* !OPENSSL_NO_ECDH */ |
1227 | #ifndef OPENSSL_NO_PSK | 1230 | #ifndef OPENSSL_NO_PSK |
1228 | if (type & SSL_kPSK) { | 1231 | if (type & SSL_kPSK) { |
1232 | pskhintlen = strlen(s->ctx->psk_identity_hint); | ||
1229 | /* reserve size for record length and PSK identity hint*/ | 1233 | /* reserve size for record length and PSK identity hint*/ |
1230 | n += 2 + strlen(s->ctx->psk_identity_hint); | 1234 | n += 2 + pskhintlen; |
1231 | } else | 1235 | } else |
1232 | #endif /* !OPENSSL_NO_PSK */ | 1236 | #endif /* !OPENSSL_NO_PSK */ |
1233 | { | 1237 | { |
@@ -1293,10 +1297,10 @@ dtls1_send_server_key_exchange(SSL *s) | |||
1293 | #ifndef OPENSSL_NO_PSK | 1297 | #ifndef OPENSSL_NO_PSK |
1294 | if (type & SSL_kPSK) { | 1298 | if (type & SSL_kPSK) { |
1295 | /* copy PSK identity hint */ | 1299 | /* copy PSK identity hint */ |
1296 | s2n(strlen(s->ctx->psk_identity_hint), p); | 1300 | s2n(pskhintlen, p); |
1297 | 1301 | ||
1298 | strncpy((char *)p, s->ctx->psk_identity_hint, strlen(s->ctx->psk_identity_hint)); | 1302 | memcpy(p, s->ctx->psk_identity_hint, pskhintlen); |
1299 | p += strlen(s->ctx->psk_identity_hint); | 1303 | p += pskhintlen; |
1300 | } | 1304 | } |
1301 | #endif | 1305 | #endif |
1302 | 1306 | ||