Fix stack corruption on 64 bit linux when md5inum is enabled
authorMichael Meffie <mmeffie@sinenomine.net>
Tue, 18 Aug 2009 18:51:57 +0000 (14:51 -0400)
committerDerrick Brashear <shadow@dementia.org>
Tue, 18 Aug 2009 19:13:21 +0000 (12:13 -0700)
Fix a stack overflow on 64 bit linux which corrupts the stack
saved arguments and causes a kernel panic. This bug is seen
on platforms where ino_t is 64 bits and the md5inum sysctl
option is enabled.

Reviewed-on: http://gerrit.openafs.org/322
Tested-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>

src/afs/afs_util.c

index 9b46f00..8becfcf 100644 (file)
@@ -596,7 +596,7 @@ afs_int32 afs_calc_inum (afs_int32 volume, afs_int32 vnode)
        AFS_MD5_Update(&ct, &volume, 4);
        AFS_MD5_Update(&ct, &vnode, 4);
        AFS_MD5_Final(digest, &ct);
-       memcpy(&ino, digest, sizeof(ino_t));
+       memcpy(&ino, digest, sizeof(afs_int32));
        ino ^= (ino ^ vno) & 1;
     } else {
        ino = (volume << 16) + vnode;