tls: return -EBUSY if crypto_info is already set

do_tls_setsockopt_tx returns 0 without doing anything when crypto_info
is already set. Silent failure is confusing for users.

Fixes: 3c4d755915 ("tls: kernel TLS support")
Signed-off-by: Sabrina Dubroca <sd@queasysnail.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Sabrina Dubroca 2018-01-16 16:04:27 +01:00 коммит произвёл David S. Miller
Родитель cf6d43ef66
Коммит 877d17c79b
1 изменённых файлов: 3 добавлений и 1 удалений

Просмотреть файл

@ -367,8 +367,10 @@ static int do_tls_setsockopt_tx(struct sock *sk, char __user *optval,
crypto_info = &ctx->crypto_send; crypto_info = &ctx->crypto_send;
/* Currently we don't support set crypto info more than one time */ /* Currently we don't support set crypto info more than one time */
if (TLS_CRYPTO_INFO_READY(crypto_info)) if (TLS_CRYPTO_INFO_READY(crypto_info)) {
rc = -EBUSY;
goto out; goto out;
}
rc = copy_from_user(crypto_info, optval, sizeof(*crypto_info)); rc = copy_from_user(crypto_info, optval, sizeof(*crypto_info));
if (rc) { if (rc) {