From d105789b331dba84ad73ab92db890e38fe665be0 Mon Sep 17 00:00:00 2001 From: caheckman <48068198+caheckman@users.noreply.github.com> Date: Fri, 18 Sep 2026 21:50:37 +0000 Subject: [PATCH] GP-7235 PackedDecode::skipAttribute --- Ghidra/Features/Decompiler/src/decompile/cpp/marshal.cc | 4 ++-- Ghidra/Features/Decompiler/src/decompile/cpp/marshal.hh | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/marshal.cc b/Ghidra/Features/Decompiler/src/decompile/cpp/marshal.cc index 73fb5701a3..c2828512ea 100644 --- a/Ghidra/Features/Decompiler/src/decompile/cpp/marshal.cc +++ b/Ghidra/Features/Decompiler/src/decompile/cpp/marshal.cc @@ -648,7 +648,7 @@ void PackedDecode::skipAttribute(void) uint1 attribType = typeByte >> TYPECODE_SHIFT; if (attribType == TYPECODE_BOOLEAN || attribType == TYPECODE_SPECIALSPACE) return; // has no additional data - uint4 length = readLengthCode(typeByte); // Length of data in bytes + uint8 length = readLengthCode(typeByte); // Length of data in bytes if (attribType == TYPECODE_STRING) { length = readInteger(length); // Read length field to get final length of string } @@ -664,7 +664,7 @@ void PackedDecode::skipAttributeRemaining(uint1 typeByte) uint1 attribType = typeByte >> TYPECODE_SHIFT; if (attribType == TYPECODE_BOOLEAN || attribType == TYPECODE_SPECIALSPACE) return; // has no additional data - uint4 length = readLengthCode(typeByte); // Length of data in bytes + uint8 length = readLengthCode(typeByte); // Length of data in bytes if (attribType == TYPECODE_STRING) { length = readInteger(length); // Read length field to get final length of string } diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/marshal.hh b/Ghidra/Features/Decompiler/src/decompile/cpp/marshal.hh index 9817f7b013..3c1aec132b 100644 --- a/Ghidra/Features/Decompiler/src/decompile/cpp/marshal.hh +++ b/Ghidra/Features/Decompiler/src/decompile/cpp/marshal.hh @@ -536,7 +536,7 @@ private: uint1 getByte(Position &pos) { return *pos.current; } ///< Get the byte at the current position, do not advance uint1 getBytePlus1(Position &pos); ///< Get the byte following the current byte, do not advance position uint1 getNextByte(Position &pos); ///< Get the byte at the current position and advance to the next byte - void advancePosition(Position &pos,uint4 skip); ///< Advance the position by the given number of bytes + void advancePosition(Position &pos,uint8 skip); ///< Advance the position by the given number of bytes uint8 readInteger(int4 len); ///< Read an integer from the \e current position given its length in bytes uint4 readLengthCode(uint1 typeByte) { return ((uint4)typeByte & PackedFormat::LENGTHCODE_MASK); } ///< Extract length code from type byte void findMatchingAttribute(const AttributeId &attribId); ///< Find attribute matching the given id in open element @@ -631,7 +631,7 @@ inline uint1 PackedDecode::getNextByte(Position &pos) /// An exception is thrown of position is advanced past the end of the stream /// \param pos is the position being advanced /// \param skip is the number of bytes to advance -inline void PackedDecode::advancePosition(Position &pos,uint4 skip) +inline void PackedDecode::advancePosition(Position &pos,uint8 skip) { while(pos.end - pos.current <= skip) {