Skip to contentSkip to conversation

pkcs7: return correct error code if pkcs7_check_authattrs() fails

PATCH In review Eric Biggers 2 participants 2 messages Nov 27, 2017

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

PATCH 1/1 pkcs7: return correct error code if pkcs7_check_authattrs() fails

From: Eric Biggers <[email protected]>

If pkcs7_check_authattrs() returns an error code, we should pass that error code on, rather than using ENOMEM.

Fixes 99db44350672 ("PKCS#7: Appropriately restrict authenticated attributes and content type")
---
 crypto/asymmetric_keys/pkcs7_parser.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
crypto/asymmetric_keys/pkcs7_parser.c +3 -1
index c1ca1e86f5c4..a6dcaa659aa8 100644
@@ -148,8 +148,10 @@ struct pkcs7_message *pkcs7_parse_message(const void *data, size_t datalen)
 	}
 
 	ret = pkcs7_check_authattrs(ctx->msg);
-	if (ret < 0)
+	if (ret < 0) {
+		msg = ERR_PTR(ret);
 		goto out;
+	}
 
 	msg = ctx->msg;
 	ctx->msg = NULL;
Signature · 1 line
2.15.0
Reviewed-by on v1 1/1
#1 lore raw
Quoted 17 lines · Eric Biggers

From: Eric Biggers <[email protected]>

If pkcs7_check_authattrs() returns an error code, we should pass that error code on, rather than using ENOMEM.

Fixes 99db44350672 ("PKCS#7: Appropriately restrict authenticated attributes and content type")
---
 crypto/asymmetric_keys/pkcs7_parser.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
crypto/asymmetric_keys/pkcs7_parser.c +0 -0
index c1ca1e86f5c4..a6dcaa659aa8 100644
@@ -148,8 +148,10 @@ struct pkcs7_message *pkcs7_parse_message(const void *data, size_t datalen)
 	}

crypto/asymmetric_keys/pkcs7_parser.c struct pkcs7_message *pkcs7_parse_message(const void *data, size_t datalen) · line 157

Quoted 10 lines
crypto/asymmetric_keys/pkcs7_parser.c +3 -1
 
 	ret = pkcs7_check_authattrs(ctx->msg);
-	if (ret < 0)
+	if (ret < 0) {
+		msg = ERR_PTR(ret);
 		goto out;
+	}
 
 	msg = ctx->msg;
 	ctx->msg = NULL;
Signature · 2 lines
James Morris
<[email protected]>