From 8e353aafe5dc510d32d6f24524e56e8dc8632dc3 Mon Sep 17 00:00:00 2001 From: Jon Siwek Date: Fri, 14 Feb 2020 21:18:07 -0800 Subject: [PATCH] Format tables indexed by patterns consistently across 32-bit/64-bit Uses a full 64 bit integer for length values regardless of actual size_t to get consistent results between either 32-bit and 64-bit platforms. --- src/CompHash.cc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/CompHash.cc b/src/CompHash.cc index 37ee7e25c9..511d6c620a 100644 --- a/src/CompHash.cc +++ b/src/CompHash.cc @@ -156,10 +156,10 @@ char* CompositeHash::SingleValHash(int type_check, char* kp0, v->AsPattern()->AnywherePatternText() }; - size_t* kp; + uint64_t* kp; for ( int i = 0; i < 2; i++ ) { - kp = AlignAndPadType(kp0+i); + kp = AlignAndPadType(kp0+i); *kp = strlen(texts[i]) + 1; } @@ -507,7 +507,7 @@ int CompositeHash::SingleTypeKeySize(BroType* bt, const Val* v, if ( ! v ) return (optional && ! calc_static_size) ? sz : 0; - sz = SizeAlign(sz, 2 * sizeof(size_t)); + sz = SizeAlign(sz, 2 * sizeof(uint64_t)); sz += strlen(v->AsPattern()->PatternText()) + strlen(v->AsPattern()->AnywherePatternText()) + 2; // 2 for null terminators break; @@ -894,7 +894,7 @@ const char* CompositeHash::RecoverOneVal(const HashKey* k, const char* kp0, } else { - const size_t* const len = AlignType(kp0); + const uint64_t* const len = AlignType(kp0); kp1 = reinterpret_cast(len+2); re = new RE_Matcher(kp1, kp1 + len[0]);