From 9248f025572f7d7c77a6f6440b895cfe353e4676 Mon Sep 17 00:00:00 2001 From: "Markus F.X.J. Oberhumer" Date: Fri, 19 Jan 2018 14:13:58 +0100 Subject: [PATCH] Silence some gcc-8-snapshot compiler warnings. --- src/compress_lzma.cpp | 2 +- src/compress_zlib.cpp | 2 +- src/main.cpp | 2 +- src/p_armpe.cpp | 9 --------- src/packer.cpp | 4 ++-- src/pefile.cpp | 7 ------- src/pefile.h | 8 ++++---- src/util.cpp | 6 ++++++ src/util.h | 2 ++ 9 files changed, 17 insertions(+), 25 deletions(-) diff --git a/src/compress_lzma.cpp b/src/compress_lzma.cpp index 0e1ff788..e33fc93d 100644 --- a/src/compress_lzma.cpp +++ b/src/compress_lzma.cpp @@ -43,7 +43,7 @@ void lzma_compress_config_t::reset() { - memset(this, 0, sizeof(*this)); + mem_clear(this, sizeof(*this)); pos_bits.reset(); lit_pos_bits.reset(); diff --git a/src/compress_zlib.cpp b/src/compress_zlib.cpp index 7be362ad..ab30b5c8 100644 --- a/src/compress_zlib.cpp +++ b/src/compress_zlib.cpp @@ -33,7 +33,7 @@ void zlib_compress_config_t::reset() { - memset(this, 0, sizeof(*this)); + mem_clear(this, sizeof(*this)); mem_level.reset(); window_bits.reset(); diff --git a/src/main.cpp b/src/main.cpp index 2493f528..4531f72b 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -46,7 +46,7 @@ int _crt0_startup_flags = _CRT0_FLAG_UNIX_SBRK; void options_t::reset() { options_t *o = this; - memset(o, 0, sizeof(*o)); + mem_clear(o, sizeof(*o)); o->crp.reset(); o->cmd = CMD_NONE; diff --git a/src/p_armpe.cpp b/src/p_armpe.cpp index 8831b827..91f02570 100644 --- a/src/p_armpe.cpp +++ b/src/p_armpe.cpp @@ -92,15 +92,6 @@ void PackArmPe::processImports2(unsigned myimport, unsigned iat_off) // pass 2 { PeFile::processImports2(myimport, iat_off); -__packed_struct(import_desc) - LE32 oft; // orig first thunk - char _[8]; - LE32 dllname; - LE32 iat; // import address table -__packed_struct_end() - - COMPILE_TIME_ASSERT(sizeof(import_desc) == 20); - // adjust import data for (import_desc *im = (import_desc*) oimpdlls; im->dllname; im++) { diff --git a/src/packer.cpp b/src/packer.cpp index e6b5f4e1..6191d396 100644 --- a/src/packer.cpp +++ b/src/packer.cpp @@ -47,7 +47,7 @@ Packer::Packer(InputFile *f) : if (fi != NULL) file_size = fi->st_size(); uip = new UiPacker(this); - memset(&ph, 0, sizeof(ph)); + mem_clear(&ph, sizeof(ph)); } @@ -665,7 +665,7 @@ unsigned Packer::getRandomId() const // this is called directly after the constructor from class PackMaster void Packer::initPackHeader() { - memset(&ph, 0, sizeof(ph)); + mem_clear(&ph, sizeof(ph)); ph.version = getVersion(); ph.format = getFormat(); ph.method = M_NONE; diff --git a/src/pefile.cpp b/src/pefile.cpp index da3bea73..ab394423 100644 --- a/src/pefile.cpp +++ b/src/pefile.cpp @@ -560,13 +560,6 @@ void PeFile64::processRelocs() // pass1 // import handling **************************************************************************/ -//__packed_struct(import_desc) -// LE32 oft; // orig first thunk -// char _[8]; -// LE32 dllname; -// LE32 iat; // import address table -//__packed_struct_end() - LE32& PeFile::IDSIZE(unsigned x) { return iddirs[x].size; } LE32& PeFile::IDADDR(unsigned x) { return iddirs[x].vaddr; } LE32& PeFile::ODSIZE(unsigned x) { return oddirs[x].size; } diff --git a/src/pefile.h b/src/pefile.h index 39adb39e..dc00c1e4 100644 --- a/src/pefile.h +++ b/src/pefile.h @@ -179,10 +179,10 @@ protected: ddirs_t *oddirs; __packed_struct(import_desc) - LE32 oft; // orig first thunk - char _[8]; - LE32 dllname; - LE32 iat; // import address table + LE32 oft; // orig first thunk + char _[8]; + LE32 dllname; + LE32 iat; // import address table __packed_struct_end() LE32 &IDSIZE(unsigned x); diff --git a/src/util.cpp b/src/util.cpp index ae8dbb2d..b6d2a2b6 100644 --- a/src/util.cpp +++ b/src/util.cpp @@ -115,6 +115,12 @@ unsigned ptr_udiff(const void *p1, const void *p2) { return ACC_ICONV(unsigned, d); } +void mem_clear(void *p, size_t n) +{ + mem_size_assert(1, n); + memset(p, 0, n); +} + /************************************************************************* // bele.h **************************************************************************/ diff --git a/src/util.h b/src/util.h index 0830dcc8..91363425 100644 --- a/src/util.h +++ b/src/util.h @@ -50,6 +50,8 @@ bool mem_size_valid_bytes(upx_uint64_t bytes); int ptr_diff(const void *p1, const void *p2); unsigned ptr_udiff(const void *p1, const void *p2); // asserts p1 >= p2 +void mem_clear(void *p, size_t n); + /************************************************************************* // misc. support functions **************************************************************************/