Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/common/lib/libc/hash/sha2 Fix unaligned access as reported i...



details:   https://anonhg.NetBSD.org/src/rev/69b76d78de2d
branches:  trunk
changeset: 748841:69b76d78de2d
user:      joerg <joerg%NetBSD.org@localhost>
date:      Fri Nov 06 20:31:17 2009 +0000

description:
Fix unaligned access as reported in PR port-sparc/42273

diffstat:

 common/lib/libc/hash/sha2/sha2.c |  9 ++++-----
 1 files changed, 4 insertions(+), 5 deletions(-)

diffs (44 lines):

diff -r 80802863347a -r 69b76d78de2d common/lib/libc/hash/sha2/sha2.c
--- a/common/lib/libc/hash/sha2/sha2.c  Fri Nov 06 20:31:17 2009 +0000
+++ b/common/lib/libc/hash/sha2/sha2.c  Fri Nov 06 20:31:17 2009 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: sha2.c,v 1.19 2009/08/21 09:40:51 skrll Exp $ */
+/* $NetBSD: sha2.c,v 1.20 2009/11/06 20:31:18 joerg Exp $ */
 /*     $KAME: sha2.c,v 1.9 2003/07/20 00:28:38 itojun Exp $    */
 
 /*
@@ -43,7 +43,7 @@
 #include <sys/cdefs.h>
 
 #if defined(_KERNEL) || defined(_STANDALONE)
-__KERNEL_RCSID(0, "$NetBSD: sha2.c,v 1.19 2009/08/21 09:40:51 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: sha2.c,v 1.20 2009/11/06 20:31:18 joerg Exp $");
 
 #include <sys/param.h> /* XXX: to pull <machine/macros.h> for vax memset(9) */
 #include <lib/libkern/libkern.h>
@@ -51,7 +51,7 @@
 #else
 
 #if defined(LIBC_SCCS) && !defined(lint)
-__RCSID("$NetBSD: sha2.c,v 1.19 2009/08/21 09:40:51 skrll Exp $");
+__RCSID("$NetBSD: sha2.c,v 1.20 2009/11/06 20:31:18 joerg Exp $");
 #endif /* LIBC_SCCS and not lint */
 
 #include "namespace.h"
@@ -943,7 +943,6 @@
 int
 SHA512_Final(uint8_t digest[], SHA512_CTX *context)
 {
-       uint64_t        *d = (void *)digest;
        size_t i;
 
        /* If no digest buffer is passed, we don't bother doing this: */
@@ -952,7 +951,7 @@
 
                /* Save the hash data for output: */
                for (i = 0; i < 8; ++i)
-                       d[i] = htobe64(context->state[i]);
+                       be64enc(digest + 8 * i, context->state[i]);
        }
 
        /* Zero out state data */



Home | Main Index | Thread Index | Old Index