Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=06817176784f620984200dc5d7cbe16984f7b262
Commit:     06817176784f620984200dc5d7cbe16984f7b262
Parent:     d4ac2477fad0f2680e84ec12e387ce67682c5c13
Author:     Sebastian Siewior <[EMAIL PROTECTED]>
AuthorDate: Fri Aug 3 20:33:47 2007 +0800
Committer:  Herbert Xu <[EMAIL PROTECTED]>
CommitDate: Mon Aug 6 15:33:56 2007 +0800

    [CRYPTO] api: fix writting into unallocated memory in setkey_aligned
    
    setkey_unaligned() commited in ca7c39385ce1a7b44894a4b225a4608624e90730
    overwrites unallocated memory in the following memset() because
    I used the wrong buffer length.
    
    Signed-off-by: Sebastian Siewior <[EMAIL PROTECTED]>
    Signed-off-by: Herbert Xu <[EMAIL PROTECTED]>
---
 crypto/ablkcipher.c |    2 +-
 crypto/blkcipher.c  |    2 +-
 crypto/cipher.c     |    2 +-
 crypto/hash.c       |    2 +-
 4 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/crypto/ablkcipher.c b/crypto/ablkcipher.c
index 1c166b4..3dbb1cc 100644
--- a/crypto/ablkcipher.c
+++ b/crypto/ablkcipher.c
@@ -35,7 +35,7 @@ static int setkey_unaligned(struct crypto_ablkcipher *tfm, 
const u8 *key, unsign
        alignbuffer = (u8 *)ALIGN((unsigned long)buffer, alignmask + 1);
        memcpy(alignbuffer, key, keylen);
        ret = cipher->setkey(tfm, alignbuffer, keylen);
-       memset(alignbuffer, 0, absize);
+       memset(alignbuffer, 0, keylen);
        kfree(buffer);
        return ret;
 }
diff --git a/crypto/blkcipher.c b/crypto/blkcipher.c
index 40a3dcf..7755834 100644
--- a/crypto/blkcipher.c
+++ b/crypto/blkcipher.c
@@ -352,7 +352,7 @@ static int setkey_unaligned(struct crypto_tfm *tfm, const 
u8 *key, unsigned int
        alignbuffer = (u8 *)ALIGN((unsigned long)buffer, alignmask + 1);
        memcpy(alignbuffer, key, keylen);
        ret = cipher->setkey(tfm, alignbuffer, keylen);
-       memset(alignbuffer, 0, absize);
+       memset(alignbuffer, 0, keylen);
        kfree(buffer);
        return ret;
 }
diff --git a/crypto/cipher.c b/crypto/cipher.c
index 0b2650c..fc6b46f 100644
--- a/crypto/cipher.c
+++ b/crypto/cipher.c
@@ -36,7 +36,7 @@ static int setkey_unaligned(struct crypto_tfm *tfm, const u8 
*key, unsigned int
        alignbuffer = (u8 *)ALIGN((unsigned long)buffer, alignmask + 1);
        memcpy(alignbuffer, key, keylen);
        ret = cia->cia_setkey(tfm, alignbuffer, keylen);
-       memset(alignbuffer, 0, absize);
+       memset(alignbuffer, 0, keylen);
        kfree(buffer);
        return ret;
 
diff --git a/crypto/hash.c b/crypto/hash.c
index 4d75ca7..4fd470b 100644
--- a/crypto/hash.c
+++ b/crypto/hash.c
@@ -40,7 +40,7 @@ static int hash_setkey_unaligned(struct crypto_hash *crt, 
const u8 *key,
        alignbuffer = (u8 *)ALIGN((unsigned long)buffer, alignmask + 1);
        memcpy(alignbuffer, key, keylen);
        ret = alg->setkey(crt, alignbuffer, keylen);
-       memset(alignbuffer, 0, absize);
+       memset(alignbuffer, 0, keylen);
        kfree(buffer);
        return ret;
 }
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to