From 75a11439044765feb93c9f375c6de84f65d1904e Mon Sep 17 00:00:00 2001 From: Bill Chapman Date: Mon, 16 Sep 2024 16:32:07 -0400 Subject: [PATCH] Bdlc packedintarray ubsan drqs 176630428 (#4955) --- groups/bdl/bdlc/bdlc_flathashmap.h | 2 +- groups/bdl/bdlc/bdlc_packedintarray.h | 8 +++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/groups/bdl/bdlc/bdlc_flathashmap.h b/groups/bdl/bdlc/bdlc_flathashmap.h index d2ba085e18..6fe0d1e2f8 100644 --- a/groups/bdl/bdlc/bdlc_flathashmap.h +++ b/groups/bdl/bdlc/bdlc_flathashmap.h @@ -823,7 +823,7 @@ class FlatHashMap { try_emplace(const_iterator, const KEY& key, ARGS&&... args); /// If a key equivalent to the specified `key` already exists in this - /// map, return an iterator referring to the existing item. Otherwise, + /// map, return an iterator referring to the existing item. Otherwise, /// insert into this map a newly-created `value_type` object, /// constructed from `std::forward(key)` and the specified `args`, /// and return an iterator referring to the newly-created entry. This diff --git a/groups/bdl/bdlc/bdlc_packedintarray.h b/groups/bdl/bdlc/bdlc_packedintarray.h index 9d38230962..8c64ca34dd 100644 --- a/groups/bdl/bdlc/bdlc_packedintarray.h +++ b/groups/bdl/bdlc/bdlc_packedintarray.h @@ -1664,9 +1664,11 @@ void PackedIntArrayImp::remove(bsl::size_t dstIndex, d_length -= numElements; - bsl::memmove(address() + dstIndex * d_bytesPerElement, - address() + (dstIndex + numElements) * d_bytesPerElement, - (d_length - dstIndex) * d_bytesPerElement); + if (address()) { + bsl::memmove(address() + dstIndex * d_bytesPerElement, + address() + (dstIndex + numElements) * d_bytesPerElement, + (d_length - dstIndex) * d_bytesPerElement); + } } template