mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH] crypto: ablkcipher.c:  Cleaning up missing null-terminate in conjunction with strncpy
@ 2014-07-26 14:09 Rickard Strandqvist
  2014-07-27  4:58 ` Mark D Rustad
  0 siblings, 1 reply; 2+ messages in thread
From: Rickard Strandqvist @ 2014-07-26 14:09 UTC (permalink / raw)
  To: Herbert Xu, David S. Miller
  Cc: Rickard Strandqvist, linux-crypto, linux-kernel

Replacing strncpy with strlcpy to avoid strings that lacks null terminate.

Signed-off-by: Rickard Strandqvist <rickard_strandqvist@spectrumdigital.se>
---
 crypto/ablkcipher.c |    8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/crypto/ablkcipher.c b/crypto/ablkcipher.c
index 40886c4..e446eef 100644
--- a/crypto/ablkcipher.c
+++ b/crypto/ablkcipher.c
@@ -384,8 +384,8 @@ static int crypto_ablkcipher_report(struct sk_buff *skb, struct crypto_alg *alg)
 {
 	struct crypto_report_blkcipher rblkcipher;
 
-	strncpy(rblkcipher.type, "ablkcipher", sizeof(rblkcipher.type));
-	strncpy(rblkcipher.geniv, alg->cra_ablkcipher.geniv ?: "<default>",
+	strlcpy(rblkcipher.type, "ablkcipher", sizeof(rblkcipher.type));
+	strlcpy(rblkcipher.geniv, alg->cra_ablkcipher.geniv ?: "<default>",
 		sizeof(rblkcipher.geniv));
 
 	rblkcipher.blocksize = alg->cra_blocksize;
@@ -465,8 +465,8 @@ static int crypto_givcipher_report(struct sk_buff *skb, struct crypto_alg *alg)
 {
 	struct crypto_report_blkcipher rblkcipher;
 
-	strncpy(rblkcipher.type, "givcipher", sizeof(rblkcipher.type));
-	strncpy(rblkcipher.geniv, alg->cra_ablkcipher.geniv ?: "<built-in>",
+	strlcpy(rblkcipher.type, "givcipher", sizeof(rblkcipher.type));
+	strlcpy(rblkcipher.geniv, alg->cra_ablkcipher.geniv ?: "<built-in>",
 		sizeof(rblkcipher.geniv));
 
 	rblkcipher.blocksize = alg->cra_blocksize;
-- 
1.7.10.4


^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [PATCH] crypto: ablkcipher.c:  Cleaning up missing null-terminate in conjunction with strncpy
  2014-07-26 14:09 [PATCH] crypto: ablkcipher.c: Cleaning up missing null-terminate in conjunction with strncpy Rickard Strandqvist
@ 2014-07-27  4:58 ` Mark D Rustad
  0 siblings, 0 replies; 2+ messages in thread
From: Mark D Rustad @ 2014-07-27  4:58 UTC (permalink / raw)
  To: Rickard Strandqvist
  Cc: Herbert Xu, David S. Miller, linux-crypto, linux-kernel

[-- Attachment #1: Type: text/plain, Size: 2000 bytes --]

Rickard,

On Jul 26, 2014, at 7:09 AM, Rickard Strandqvist <rickard_strandqvist@spectrumdigital.se> wrote:

> Replacing strncpy with strlcpy to avoid strings that lacks null terminate.
> 
> Signed-off-by: Rickard Strandqvist <rickard_strandqvist@spectrumdigital.se>
> ---
> crypto/ablkcipher.c |    8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/crypto/ablkcipher.c b/crypto/ablkcipher.c
> index 40886c4..e446eef 100644
> --- a/crypto/ablkcipher.c
> +++ b/crypto/ablkcipher.c
> @@ -384,8 +384,8 @@ static int crypto_ablkcipher_report(struct sk_buff *skb, struct crypto_alg *alg)
> {
> 	struct crypto_report_blkcipher rblkcipher;
> 
> -	strncpy(rblkcipher.type, "ablkcipher", sizeof(rblkcipher.type));
> -	strncpy(rblkcipher.geniv, alg->cra_ablkcipher.geniv ?: "<default>",
> +	strlcpy(rblkcipher.type, "ablkcipher", sizeof(rblkcipher.type));
> +	strlcpy(rblkcipher.geniv, alg->cra_ablkcipher.geniv ?: "<default>",
> 		sizeof(rblkcipher.geniv));
> 
> 	rblkcipher.blocksize = alg->cra_blocksize;
> @@ -465,8 +465,8 @@ static int crypto_givcipher_report(struct sk_buff *skb, struct crypto_alg *alg)
> {
> 	struct crypto_report_blkcipher rblkcipher;
> 
> -	strncpy(rblkcipher.type, "givcipher", sizeof(rblkcipher.type));
> -	strncpy(rblkcipher.geniv, alg->cra_ablkcipher.geniv ?: "<built-in>",
> +	strlcpy(rblkcipher.type, "givcipher", sizeof(rblkcipher.type));
> +	strlcpy(rblkcipher.geniv, alg->cra_ablkcipher.geniv ?: "<built-in>",
> 		sizeof(rblkcipher.geniv));
> 
> 	rblkcipher.blocksize = alg->cra_blocksize;

It looks like all of these patches in the crypto area are introducing information leaks, including the one that first made me worry and respond. There were no bugs here (unless someone were to introduce a crypto method with a name longer than 63 characters), because stncpy fills the remainder of the destination with 0.

There are times when strncpy is the right function.

-- 
Mark Rustad, MRustad@gmail.com


[-- Attachment #2: Message signed with OpenPGP using GPGMail --]
[-- Type: application/pgp-signature, Size: 841 bytes --]

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2014-07-27  4:58 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-07-26 14:09 [PATCH] crypto: ablkcipher.c: Cleaning up missing null-terminate in conjunction with strncpy Rickard Strandqvist
2014-07-27  4:58 ` Mark D Rustad

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®