diff options
Diffstat (limited to 'net/tls/tls_main.c')
-rw-r--r-- | net/tls/tls_main.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/net/tls/tls_main.c b/net/tls/tls_main.c index b0d5fcea47e7..e9b4b53ab53e 100644 --- a/net/tls/tls_main.c +++ b/net/tls/tls_main.c | |||
@@ -308,8 +308,11 @@ static int do_tls_getsockopt_tx(struct sock *sk, char __user *optval, | |||
308 | goto out; | 308 | goto out; |
309 | } | 309 | } |
310 | lock_sock(sk); | 310 | lock_sock(sk); |
311 | memcpy(crypto_info_aes_gcm_128->iv, ctx->iv, | 311 | memcpy(crypto_info_aes_gcm_128->iv, |
312 | ctx->iv + TLS_CIPHER_AES_GCM_128_SALT_SIZE, | ||
312 | TLS_CIPHER_AES_GCM_128_IV_SIZE); | 313 | TLS_CIPHER_AES_GCM_128_IV_SIZE); |
314 | memcpy(crypto_info_aes_gcm_128->rec_seq, ctx->rec_seq, | ||
315 | TLS_CIPHER_AES_GCM_128_REC_SEQ_SIZE); | ||
313 | release_sock(sk); | 316 | release_sock(sk); |
314 | if (copy_to_user(optval, | 317 | if (copy_to_user(optval, |
315 | crypto_info_aes_gcm_128, | 318 | crypto_info_aes_gcm_128, |
@@ -375,7 +378,7 @@ static int do_tls_setsockopt_tx(struct sock *sk, char __user *optval, | |||
375 | rc = copy_from_user(crypto_info, optval, sizeof(*crypto_info)); | 378 | rc = copy_from_user(crypto_info, optval, sizeof(*crypto_info)); |
376 | if (rc) { | 379 | if (rc) { |
377 | rc = -EFAULT; | 380 | rc = -EFAULT; |
378 | goto out; | 381 | goto err_crypto_info; |
379 | } | 382 | } |
380 | 383 | ||
381 | /* check version */ | 384 | /* check version */ |