From b0699a1b5eac14a607eb4b0f20d264056e6f81fb Mon Sep 17 00:00:00 2001 From: Ben Lubar Date: Sat, 29 Feb 2020 18:36:00 -0600 Subject: [PATCH] allow uninitialized data to be all zeroes --- plugins/devel/check-structures-sanity.cpp | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/plugins/devel/check-structures-sanity.cpp b/plugins/devel/check-structures-sanity.cpp index 5ad77870c..2045145d3 100644 --- a/plugins/devel/check-structures-sanity.cpp +++ b/plugins/devel/check-structures-sanity.cpp @@ -715,13 +715,17 @@ void Checker::queue_union(const ToCheck & item, const ToCheck & tag_item) } // if it's all uninitialized, ignore it - bool all_uninitialized = true; - for (size_t offset = 0; offset < union_type->byte_size(); offset++) + uint8_t uninit_value = *reinterpret_cast(item.ptr); + bool all_uninitialized = uninit_value == 0 || uninit_value == 0xd2; + if (all_uninitialized) { - if (*reinterpret_cast(PTR_ADD(item.ptr, offset)) != 0xd2) + for (size_t offset = 0; offset < union_type->byte_size(); offset++) { - all_uninitialized = false; - break; + if (*reinterpret_cast(PTR_ADD(item.ptr, offset)) != uninit_value) + { + all_uninitialized = false; + break; + } } } if (all_uninitialized)