diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1f2d94a6..47f1c5a1 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -296,6 +296,7 @@ jobs: - { os: macos-14, gcc: gcc-13, gxx: g++-13, testsuite: true } # { os: macos-15, gcc: gcc-14, gxx: g++-14, testsuite: true } - { os: macos-15, testsuite: true } + - { os: macos-26, gcc: gcc-15, gxx: g++-15, testsuite: true } name: ${{ format('{0} {1}{2}', matrix.os, matrix.xcode_version && 'xcode-' || '', matrix.xcode_version) }} runs-on: ${{ matrix.os }} steps: @@ -320,7 +321,7 @@ jobs: echo "UPX_DEBUG_FORCE_PACK_MACOS=1" >> $GITHUB_ENV case "${{ matrix.os }}" in # TODO FIXME: UPX on macos-13+ is broken => disable run-packed for now - macos-1[345]) echo "UPX_CONFIG_DISABLE_RUN_PACKED_TEST=ON" >> $GITHUB_ENV ;; + macos-[12][3456]*) echo "UPX_CONFIG_DISABLE_RUN_PACKED_TEST=ON" >> $GITHUB_ENV ;; esac - uses: actions/checkout@v5 with: { submodules: true } diff --git a/misc/podman/rebuild-stubs/packages.txt b/misc/podman/rebuild-stubs/packages.txt index ccb914f7..c6c498d2 100644 --- a/misc/podman/rebuild-stubs/packages.txt +++ b/misc/podman/rebuild-stubs/packages.txt @@ -4,7 +4,7 @@ Desired=Unknown/Install/Remove/Purge/Hold ii 7zip 23.01+dfsg-11 amd64 7-Zip file archiver with a high compression ratio ii apt 2.8.3 amd64 commandline package manager ii aria2 1.37.0+debian-1build3 amd64 High speed download utility -ii base-files 13ubuntu10.2 amd64 Debian base system miscellaneous files +ii base-files 13ubuntu10.3 amd64 Debian base system miscellaneous files ii base-passwd 3.6.3build1 amd64 Debian base system master password and group files ii bash 5.2.21-2ubuntu4 amd64 GNU Bourne Again SHell ii bash-completion 1:2.11-8 all programmable completion for the bash shell @@ -26,7 +26,7 @@ ii ccache 4.9.1-1 amd64 ii chrpath 0.16-2build1 amd64 Tool to edit the rpath in ELF binaries ii cmake 3.28.3-1build7 amd64 cross-platform, open-source make system ii cmake-data 3.28.3-1build7 all CMake data files (modules, templates and documentation) -ii coreutils 9.4-3ubuntu6 amd64 GNU core utilities +ii coreutils 9.4-3ubuntu6.1 amd64 GNU core utilities ii cpio 2.15+dfsg-1ubuntu2 amd64 GNU cpio -- a program to manage archives of files ii cpp 4:13.2.0-7ubuntu1 amd64 GNU C preprocessor (cpp) ii cpp-13 13.3.0-6ubuntu2~24.04 amd64 GNU C preprocessor @@ -209,16 +209,16 @@ ii libpam-runtime 1.5.3-5ubuntu5.4 all ii libpam0g:amd64 1.5.3-5ubuntu5.4 amd64 Pluggable Authentication Modules library ii libpcre2-32-0:amd64 10.42-4ubuntu2.1 amd64 New Perl Compatible Regular Expression Library - 32 bit runtime files ii libpcre2-8-0:amd64 10.42-4ubuntu2.1 amd64 New Perl Compatible Regular Expression Library- 8 bit runtime files -ii libperl5.38t64:amd64 5.38.2-3.2ubuntu0.1 amd64 shared Perl library +ii libperl5.38t64:amd64 5.38.2-3.2ubuntu0.2 amd64 shared Perl library ii libpipeline1:amd64 1.5.7-2 amd64 Unix process pipeline manipulation library ii libpopt0:amd64 1.19+dfsg-1build1 amd64 lib for parsing cmdline parameters ii libproc2-0:amd64 2:4.0.4-4ubuntu3.2 amd64 library for accessing process information from /proc ii libpsl5t64:amd64 0.21.2-1.1build1 amd64 Library for Public Suffix List (shared libraries) ii libpython2.7-minimal:amd64 2.7.18-8+deb11u1 amd64 Minimal subset of the Python language (version 2.7) ii libpython3-stdlib:amd64 3.12.3-0ubuntu2 amd64 interactive high-level object-oriented language (default python3 version) -ii libpython3.12-minimal:amd64 3.12.3-1ubuntu0.7 amd64 Minimal subset of the Python language (version 3.12) -ii libpython3.12-stdlib:amd64 3.12.3-1ubuntu0.7 amd64 Interactive high-level object-oriented language (standard library, version 3.12) -ii libpython3.12t64:amd64 3.12.3-1ubuntu0.7 amd64 Shared Python runtime library (version 3.12) +ii libpython3.12-minimal:amd64 3.12.3-1ubuntu0.8 amd64 Minimal subset of the Python language (version 3.12) +ii libpython3.12-stdlib:amd64 3.12.3-1ubuntu0.8 amd64 Interactive high-level object-oriented language (standard library, version 3.12) +ii libpython3.12t64:amd64 3.12.3-1ubuntu0.8 amd64 Shared Python runtime library (version 3.12) ii libquadmath0:amd64 14.2.0-4ubuntu2~24.04 amd64 GCC Quad-Precision Math Library ii libreadline8t64:amd64 8.2-4build1 amd64 GNU readline and history libraries, run-time libraries ii librhash0:amd64 1.4.3-3build1 amd64 shared library for hash functions computing @@ -237,7 +237,7 @@ ii libsigsegv2:amd64 2.14-1ubuntu2 amd64 ii libsmartcols1:amd64 2.39.3-9ubuntu6.3 amd64 smart column output alignment library ii libsource-highlight-common 3.1.9-4.3build1 all architecture-independent files for source highlighting library ii libsource-highlight4t64:amd64 3.1.9-4.3build1 amd64 source highlighting library -ii libsqlite3-0:amd64 3.45.1-1ubuntu2.3 amd64 SQLite 3 shared library +ii libsqlite3-0:amd64 3.45.1-1ubuntu2.4 amd64 SQLite 3 shared library ii libss2:amd64 1.47.0-2.4~exp1ubuntu4.1 amd64 command-line interface parsing library ii libssh-4:amd64 0.10.6-2ubuntu0.1 amd64 tiny C SSH library (OpenSSL flavor) ii libssh2-1t64:amd64 1.11.0-4.1build2 amd64 SSH2 client-side library @@ -280,12 +280,12 @@ ii libx32ubsan1 14.2.0-4ubuntu2~24.04 amd64 ii libxau6:amd64 1:1.0.9-1build6 amd64 X11 authorisation library ii libxcb1:amd64 1.15-1ubuntu2 amd64 X C Binding ii libxdmcp6:amd64 1:1.1.3-0ubuntu6 amd64 X11 Display Manager Control Protocol library -ii libxml2:amd64 2.9.14+dfsg-1.3ubuntu3.3 amd64 GNOME XML library +ii libxml2:amd64 2.9.14+dfsg-1.3ubuntu3.5 amd64 GNOME XML library ii libxxhash0:amd64 0.8.2-2build1 amd64 shared library for xxhash ii libyaml-0-2:amd64 0.2.5-1build1 amd64 Fast YAML 1.1 parser and emitter library ii libzstd-dev:amd64 1.5.5+dfsg2-2build1.1 amd64 fast lossless compression algorithm -- development files ii libzstd1:amd64 1.5.5+dfsg2-2build1.1 amd64 fast lossless compression algorithm -ii linux-libc-dev:amd64 6.8.0-64.67 amd64 Linux Kernel Headers for development +ii linux-libc-dev:amd64 6.8.0-79.79 amd64 Linux Kernel Headers for development ii login 1:4.13+dfsg1-4ubuntu3.2 amd64 system login tools ii logsave 1.47.0-2.4~exp1ubuntu4.1 amd64 save the output of a command in a log file ii lsb-release 12.0-2 all Linux Standard Base version reporting utility (minimal implementation) @@ -318,9 +318,9 @@ ii patch 2.7.6-7build3 amd64 ii patchelf 0.18.0-1.1build1 amd64 modify properties of ELF executables ii patchutils 0.4.2-1build3 amd64 Utilities to work with patches ii pax-utils 1.3.7-1 amd64 Security-focused ELF files checking tool -ii perl 5.38.2-3.2ubuntu0.1 amd64 Larry Wall's Practical Extraction and Report Language -ii perl-base 5.38.2-3.2ubuntu0.1 amd64 minimal Perl system -ii perl-modules-5.38 5.38.2-3.2ubuntu0.1 all Core Perl modules +ii perl 5.38.2-3.2ubuntu0.2 amd64 Larry Wall's Practical Extraction and Report Language +ii perl-base 5.38.2-3.2ubuntu0.2 amd64 minimal Perl system +ii perl-modules-5.38 5.38.2-3.2ubuntu0.2 all Core Perl modules ii procps 2:4.0.4-4ubuntu3.2 amd64 /proc file system utilities ii proot 5.1.0-1.3 amd64 emulate chroot, bind mount and binfmt_misc for non-root users ii python2.7-minimal 2.7.18-8+deb11u1 amd64 Minimal subset of the Python language (version 2.7) @@ -337,8 +337,8 @@ ii python3-tomli-w 1.0.0-2 all ii python3-xmltodict 0.13.0-1 all Makes working with XML feel like you are working with JSON (Python 3) ii python3-yaml 6.0.1-2build2 amd64 YAML parser and emitter for Python3 ii python3-zstd 1.5.5.1-1build1 amd64 python bindings to Yann Collet ZSTD compression library -ii python3.12 3.12.3-1ubuntu0.7 amd64 Interactive high-level object-oriented language (version 3.12) -ii python3.12-minimal 3.12.3-1ubuntu0.7 amd64 Minimal subset of the Python language (version 3.12) +ii python3.12 3.12.3-1ubuntu0.8 amd64 Interactive high-level object-oriented language (version 3.12) +ii python3.12-minimal 3.12.3-1ubuntu0.8 amd64 Minimal subset of the Python language (version 3.12) ii re2c 3.1-1build1 amd64 lexer generator for C, C++, Go and Rust ii readline-common 8.2-4build1 all GNU readline and history libraries, common files ii ripgrep 14.1.0-1 amd64 Recursively searches directories for a regex pattern @@ -358,6 +358,7 @@ ii tzdata 2025b-0ubuntu0.24.04.1 all ii ubuntu-keyring 2023.11.28.1 all GnuPG keys of the Ubuntu archive ii ucf 3.0043+nmu1 all Update Configuration File(s): preserve user changes to config files ii universal-ctags 5.9.20210829.0-1 amd64 build tag file indexes of source code definitions +ii unminimize 0.2.1 amd64 Un-minimize your minimial images or setup ii unzip 6.0-28ubuntu4.1 amd64 De-archiver for .zip files ii util-linux 2.39.3-9ubuntu6.3 amd64 miscellaneous system utilities ii valgrind 1:3.22.0-0ubuntu3 amd64 instrumentation framework for building dynamic analysis tools @@ -378,7 +379,7 @@ ii zstd 1.5.5+dfsg2-2build1.1 amd64 ||/ Name Version Architecture Description Packages sorted by Installed-Size: - 1023146 ===== TOTAL (372 packages) + 1023180 ===== TOTAL (373 packages) 76943 valgrind amd64 61333 gcc-13-x86-64-linux-gnu amd64 44381 gh amd64 @@ -386,7 +387,7 @@ Packages sorted by Installed-Size: 35919 libicu74 amd64 33545 g++-13-x86-64-linux-gnu amd64 30811 cpp-13-x86-64-linux-gnu amd64 - 29327 libperl5.38t64 amd64 + 29333 libperl5.38t64 amd64 21815 neovim-runtime all 21692 git amd64 21662 libstdc++-13-dev amd64 @@ -406,16 +407,16 @@ Packages sorted by Installed-Size: 10791 libasan8 amd64 9704 libx32asan8 amd64 9539 lib32asan8 amd64 - 9022 libpython3.12-stdlib amd64 + 9023 libpython3.12-stdlib amd64 8924 libpython3.12t64 amd64 8902 libtsan2 amd64 8335 libmagic-mgc amd64 8296 lib32gcc-13-dev amd64 8119 libc6-dev-x32 amd64 - 7926 python3.12-minimal amd64 + 7927 python3.12-minimal amd64 7913 perl-base amd64 7531 libx32gcc-13-dev amd64 - 7460 linux-libc-dev amd64 + 7468 linux-libc-dev amd64 7226 lib32stdc++-13-dev amd64 7059 libx32stdc++-13-dev amd64 7024 direnv amd64 @@ -427,7 +428,7 @@ Packages sorted by Installed-Size: 6158 7zip amd64 5219 bat amd64 5210 ripgrep amd64 - 5180 libpython3.12-minimal amd64 + 5181 libpython3.12-minimal amd64 4897 libhwasan0 amd64 4341 ncurses-term all 4244 minify amd64 @@ -519,7 +520,7 @@ Packages sorted by Installed-Size: 761 libzstd1 amd64 751 libsepol2 amd64 745 libsource-highlight4t64 amd64 - 736 python3.12 amd64 + 737 python3.12 amd64 732 xz-utils amd64 708 tar amd64 672 perl amd64 @@ -743,6 +744,7 @@ Packages sorted by Installed-Size: 20 cpp-x86-64-linux-gnu amd64 17 lsb-release all 17 libaudit-common all + 16 unminimize amd64 13 g++ amd64 11 g++-x86-64-linux-gnu amd64 11 cpp-13 amd64 diff --git a/src/packhead.h b/src/packhead.h index e2fb266f..993db386 100644 --- a/src/packhead.h +++ b/src/packhead.h @@ -39,12 +39,13 @@ struct PackHeader final { ~PackHeader() noexcept = default; void reset() noexcept; + int set_method(int m, unsigned offset = 0); // check, then assign + + int getPackHeaderSize() const; void putPackHeader(SPAN_S(byte) p) const; bool decodePackHeaderFromBuf(SPAN_S(const byte) b, int blen); - int getPackHeaderSize() const; - // fields stored in compressed file => see stub/src/include/header.S // enum { magic = UPX_MAGIC_LE32 }; int version; @@ -63,7 +64,6 @@ struct PackHeader final { int n_mru; // specific name for filter ctojr }; int header_checksum; - int set_method(int m, unsigned offset = 0); // check, then assign // support fields for verifying decompression unsigned saved_u_adler; diff --git a/src/pefile.h b/src/pefile.h index c0eeacaf..c18d6b2e 100644 --- a/src/pefile.h +++ b/src/pefile.h @@ -529,7 +529,7 @@ protected: }; enum { IMAGE_DEBUG_TYPE_EX_DLLCHARACTERISTICS = 20 }; enum { IMAGE_DLLCHARACTERISTICS_EX_CET_COMPAT = 0x001 }; - struct DebugDir *dbgCET; + struct DebugDir *dbgCET = nullptr; }; class PeFile32 : public PeFile { diff --git a/src/work.cpp b/src/work.cpp index 0a29209d..498d9076 100644 --- a/src/work.cpp +++ b/src/work.cpp @@ -329,19 +329,21 @@ void do_one_file(const char *const iname, char *const oname) may_throw { } // handle command - actual work starts HERE - PackMaster pm(&fi, opt); - if (opt->cmd == CMD_COMPRESS) - pm.pack(&fo); - else if (opt->cmd == CMD_DECOMPRESS) - pm.unpack(&fo); - else if (opt->cmd == CMD_TEST) - pm.test(); - else if (opt->cmd == CMD_LIST) - pm.list(); - else if (opt->cmd == CMD_FILEINFO) - pm.fileInfo(); - else - throwInternalError("invalid command"); + { + PackMaster pm(&fi, opt); + if (opt->cmd == CMD_COMPRESS) + pm.pack(&fo); + else if (opt->cmd == CMD_DECOMPRESS) + pm.unpack(&fo); + else if (opt->cmd == CMD_TEST) + pm.test(); + else if (opt->cmd == CMD_LIST) + pm.list(); + else if (opt->cmd == CMD_FILEINFO) + pm.fileInfo(); + else + throwInternalError("invalid command"); + } // copy time stamp if (oname[0] && opt->preserve_timestamp && fo.isOpen())