gnucash stable: Fix Asan UB complaint about int64_t alignment.
John Ralls
jralls at code.gnucash.org
Sat Dec 20 20:46:56 EST 2025
Updated via https://github.com/Gnucash/gnucash/commit/3a066029 (commit)
from https://github.com/Gnucash/gnucash/commit/603e6ced (commit)
commit 3a06602910289aefc9d0c43abfb031e0f0870326
Author: John Ralls <jralls at ceridwen.us>
Date: Sat Dec 20 17:46:44 2025 -0800
Fix Asan UB complaint about int64_t alignment.
by doing endian_swap on the aligned local instead of the unaligned bytes of the memory mapped file.
diff --git a/libgnucash/engine/gnc-timezone.cpp b/libgnucash/engine/gnc-timezone.cpp
index 5584e46e51..5653e02c98 100644
--- a/libgnucash/engine/gnc-timezone.cpp
+++ b/libgnucash/engine/gnc-timezone.cpp
@@ -455,9 +455,9 @@ namespace IANAParser
{
int64_t transition_time;
// Ensure correct alignment for ARM.
- memcpy(&transition_time,
- endian_swap(reinterpret_cast<int64_t*>(&fileblock[fb_index])),
+ memcpy(&transition_time, &fileblock[fb_index],
sizeof(int64_t));
+ transition_time = *(endian_swap(&transition_time));
auto info = static_cast<uint8_t>(fileblock[info_index]);
transitions.push_back({transition_time, info});
}
Summary of changes:
libgnucash/engine/gnc-timezone.cpp | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
More information about the gnucash-changes
mailing list