| From 9e6e7c74315095fd40f41003850690c711e44420 Mon Sep 17 00:00:00 2001 |
| From: Dan Carpenter <dan.carpenter@oracle.com> |
| Date: Fri, 18 Nov 2016 14:11:00 +0300 |
| Subject: s390/crypto: unlock on error in prng_tdes_read() |
| |
| From: Dan Carpenter <dan.carpenter@oracle.com> |
| |
| commit 9e6e7c74315095fd40f41003850690c711e44420 upstream. |
| |
| We added some new locking but forgot to unlock on error. |
| |
| Fixes: 57127645d79d ("s390/zcrypt: Introduce new SHA-512 based Pseudo Random Generator.") |
| Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> |
| Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| arch/s390/crypto/prng.c | 6 ++++-- |
| 1 file changed, 4 insertions(+), 2 deletions(-) |
| |
| --- a/arch/s390/crypto/prng.c |
| +++ b/arch/s390/crypto/prng.c |
| @@ -507,8 +507,10 @@ static ssize_t prng_tdes_read(struct fil |
| prng_data->prngws.byte_counter += n; |
| prng_data->prngws.reseed_counter += n; |
| |
| - if (copy_to_user(ubuf, prng_data->buf, chunk)) |
| - return -EFAULT; |
| + if (copy_to_user(ubuf, prng_data->buf, chunk)) { |
| + ret = -EFAULT; |
| + break; |
| + } |
| |
| nbytes -= chunk; |
| ret += chunk; |