diff options
author | Tor Egge <Tor.Egge@online.no> | 2023-10-03 17:15:14 +0200 |
---|---|---|
committer | Tor Egge <Tor.Egge@online.no> | 2023-10-03 17:15:14 +0200 |
commit | d5d29a8fff4437d1b5024d03abd6b8fe6a00ce55 (patch) | |
tree | fd6b5f2843080f72e303201b78e2cf8b7a365495 /searchlib/src | |
parent | c09cfc611673efb38f8d29b33e0e50ced8197666 (diff) |
Avoid unaligned read while decoding serialized query stack dump.
Diffstat (limited to 'searchlib/src')
-rw-r--r-- | searchlib/src/vespa/searchlib/parsequery/stackdumpiterator.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/searchlib/src/vespa/searchlib/parsequery/stackdumpiterator.cpp b/searchlib/src/vespa/searchlib/parsequery/stackdumpiterator.cpp index f7c38b54227..c54663185fa 100644 --- a/searchlib/src/vespa/searchlib/parsequery/stackdumpiterator.cpp +++ b/searchlib/src/vespa/searchlib/parsequery/stackdumpiterator.cpp @@ -153,9 +153,10 @@ bool SimpleQueryStackDumpIterator::readNext() { break; case ParseItem::ITEM_PURE_WEIGHTED_LONG: { - if (p + sizeof(int64_t) > _bufEnd) return false; - _curr_integer_term = vespalib::nbo::n2h(*reinterpret_cast<const int64_t *>(p)); - p += sizeof(int64_t); + if (p + sizeof(int64_t) > _bufEnd) { + return false; + } + _curr_integer_term = readUint64(p); _currArity = 0; } break; |