Skip to contentSkip to conversation

s390/crypto: unlock on error in prng_tdes_read()

PATCH In review Dan Carpenter 2 participants 2 messages Nov 18, 2016

Subsystems (4)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 s390/crypto: unlock on error in prng_tdes_read()

We added some new locking but forgot to unlock on error.

Fixes 57127645d79d ("s390/zcrypt: Introduce new SHA-512 based Pseudo Random Generator.")
arch/s390/crypto/prng.c +4 -2
index 9cc050f..1113389 100644
@@ -507,8 +507,10 @@ static ssize_t prng_tdes_read(struct file *file, char __user *ubuf,
 		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;
#1 lore raw
Quoted 13 lines · On Fri, 18 Nov 2016 14:11:00 +0300 Dan Carpenter <[email protected]>…

We added some new locking but forgot to unlock on error.

Fixes 57127645d79d ("s390/zcrypt: Introduce new SHA-512 based Pseudo Random Generator.")
arch/s390/crypto/prng.c +0 -0
index 9cc050f..1113389 100644
@@ -507,8 +507,10 @@ static ssize_t prng_tdes_read(struct file *file, char __user *ubuf,
 		prng_data->prngws.byte_counter += n;
 		prng_data->prngws.reseed_counter += n;

arch/s390/crypto/prng.c static ssize_t prng_tdes_read(struct file *file, char __user *ubuf, · line 516

Quoted 10 lines
arch/s390/crypto/prng.c +4 -2
 
-		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;

Nice spotting, I will add this to my fixes tree. Thank you..

Signature · 4 lines
blue skies,
   Martin.

"Reality continues to ruin my life." - Calvin.