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 | ||
