From b3a14d7b913313552a4224834cd760836f6aaf8c Mon Sep 17 00:00:00 2001 From: Matt Turner Date: Sun, 10 Nov 2024 19:38:22 -0500 Subject: [PATCH] intel: Avoid unaligned pointer access Avoids the sanitizer error: ``` ../src/intel/common/intel_debug_identifier.c:122:15: runtime error: member access within misaligned address 0x7f5ca8b32051 for type 'struct intel_debug_block_base', which requires 4 byte alignment 0x7f5ca8b32051: note: pointer points here 66 30 29 00 03 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 08 00 00 00 00 00 00 00 ^ ``` Part-of: --- src/intel/common/intel_debug_identifier.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/intel/common/intel_debug_identifier.c b/src/intel/common/intel_debug_identifier.c index a327dc904fb..db5a384e6e0 100644 --- a/src/intel/common/intel_debug_identifier.c +++ b/src/intel/common/intel_debug_identifier.c @@ -117,14 +117,15 @@ intel_debug_get_identifier_block(void *_buffer, *end_buffer = _buffer + buffer_size; while (buffer < end_buffer) { - struct intel_debug_block_base *item = buffer; + struct intel_debug_block_base item; + memcpy(&item, buffer, sizeof(item)); - if (item->type == type) - return item; - if (item->type == INTEL_DEBUG_BLOCK_TYPE_END) + if (item.type == type) + return buffer; + if (item.type == INTEL_DEBUG_BLOCK_TYPE_END) return NULL; - buffer += item->length; + buffer += item.length; } return NULL;