Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/external/mpl/bind/dist/lib/isc PR/54594: Martin Husemann: bi...
details: https://anonhg.NetBSD.org/src/rev/c3202c584266
branches: trunk
changeset: 464322:c3202c584266
user: christos <christos%NetBSD.org@localhost>
date: Wed Oct 02 15:43:15 2019 +0000
description:
PR/54594: Martin Husemann: bind may crash at startup
Use memcpy(3) instead of assuming casting "uint8_t *" to "uint64_t *" and
de-referencing works.
diffstat:
external/mpl/bind/dist/lib/isc/siphash.c | 12 ++++++++----
1 files changed, 8 insertions(+), 4 deletions(-)
diffs (26 lines):
diff -r 99fad84abccb -r c3202c584266 external/mpl/bind/dist/lib/isc/siphash.c
--- a/external/mpl/bind/dist/lib/isc/siphash.c Wed Oct 02 15:15:09 2019 +0000
+++ b/external/mpl/bind/dist/lib/isc/siphash.c Wed Oct 02 15:43:15 2019 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: siphash.c,v 1.2 2019/09/05 19:32:59 christos Exp $ */
+/* $NetBSD: siphash.c,v 1.3 2019/10/02 15:43:15 christos Exp $ */
/*
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
@@ -60,9 +60,13 @@
void
isc_siphash24(const uint8_t *k, const uint8_t *in, size_t inlen, uint8_t *out)
{
- const uint64_t *key = (const uint64_t *)k;
- uint64_t k0 = le64toh(key[0]);
- uint64_t k1 = le64toh(key[1]);
+ uint64_t k0, k1;
+
+ memcpy(&k0, k, sizeof(k0));
+ memcpy(&k1, k + sizeof(k0), sizeof(k1));
+
+ k0 = le64toh(k0);
+ k1 = le64toh(k1);
uint64_t v0 = 0x736f6d6570736575ULL ^ k0;
uint64_t v1 = 0x646f72616e646f6dULL ^ k1;
Home |
Main Index |
Thread Index |
Old Index