From f7f08be3126f325bd3280e53354107d7fd245ac2 Mon Sep 17 00:00:00 2001 From: John Reiser Date: Tue, 3 Dec 2024 10:28:01 -0800 Subject: [PATCH] get_te64_32() fetches 64 bits, checks and returns 32 modified: packer.h --- src/packer.h | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/src/packer.h b/src/packer.h index f1252907..a1743d76 100644 --- a/src/packer.h +++ b/src/packer.h @@ -260,6 +260,7 @@ protected: // permissive version using "void *" inline unsigned get_te16(const void *p) const noexcept { return bele->get16(p); } inline unsigned get_te32(const void *p) const noexcept { return bele->get32(p); } + inline unsigned get_te64_32(const void *p) const { return (unsigned) bele->get64(p); } inline upx_uint64_t get_te64(const void *p) const noexcept { return bele->get64(p); } inline void set_te16(void *p, unsigned v) noexcept { bele->set16(p, v); } inline void set_te32(void *p, unsigned v) noexcept { bele->set32(p, v); } @@ -292,6 +293,13 @@ protected: return bele->get32(p); } template > + inline unsigned get_te64_32(const T *p) const { + upx_uint64_t val = get_te64(p); + if (val >> 32) + throwCantPack("64-bit value too big %#llx", val); + return (unsigned) val; + } + template > inline upx_uint64_t get_te64(const T *p) const noexcept { return bele->get64(p); } @@ -309,13 +317,6 @@ protected: bele->set64(p, v); } #endif - template > - inline upx_uint64_t get_te64_32(const T *p) const { - upx_uint64_t val = get_te64(p); - if (val >> 32) - throwCantPack("64-bit value too big %#llx", val); - return (unsigned) val; - } protected: const N_BELE_RTP::AbstractPolicy *bele = nullptr; // TE - Target Endianness