mirror of
https://github.com/upx/upx.git
synced 2024-11-26 22:20:52 +00:00
src: initialize some fields to suppress harmless valgrind errors
This commit is contained in:
parent
6db0af8d04
commit
c69b4561fb
@ -24,8 +24,9 @@ if [[ 1 == 1 ]]; then
|
||||
# INFO: SELinux users *may* have to add ":z" to the volume mount flags; check the docs!
|
||||
flags+=( -v "${argv0dir}/../../..:/home/upx/src/upx" )
|
||||
flags+=( -w /home/upx/src/upx ) # set working directory
|
||||
flags+=( --tmpfs /home/upx/.cache:rw,exec ) # mount a writeable tmpfs
|
||||
flags+=( --tmpfs /home/upx/.local:rw,exec ) # mount a writeable tmpfs
|
||||
flags+=( --tmpfs /home/upx/.cache:rw,exec ) # mount a writeable tmpfs
|
||||
flags+=( --tmpfs /home/upx/.config:rw,exec ) # mount a writeable tmpfs
|
||||
flags+=( --tmpfs /home/upx/.local:rw,exec ) # mount a writeable tmpfs
|
||||
else
|
||||
# run as user root 0:0
|
||||
# ONLY FOR DEBUGGING THE IMAGE
|
||||
|
@ -8,17 +8,19 @@ ENV LANG=C.UTF-8
|
||||
RUN dpkg --add-architecture i386 \
|
||||
&& apt-get update && apt-get upgrade -y \
|
||||
&& apt-get install -y --no-install-recommends \
|
||||
aria2 bash bash-completion ca-certificates dash git less libmpc3 \
|
||||
make ncurses-term perl-base time wget xz-utils \
|
||||
aria2 bash bash-completion ca-certificates curl git less libmpc3 \
|
||||
make ncurses-term perl-base tar time wget xz-utils \
|
||||
libc6:i386 zlib1g:i386 \
|
||||
# the following packages are not required for rebuilding the stubs, but
|
||||
# they do make the image *much* more convenient and also allow building
|
||||
# the full UPX binary inside the container via CMake:
|
||||
7zip bfs busybox bzip2 cabextract ccache chrpath cmake cpio curl elfutils fd-find file fish fzf \
|
||||
g++ gawk gdb gojq ht htop hyperfine jq ksh libzstd-dev lsb-release lz4 lzip lzop \
|
||||
minify mksh moreutils neovim ninja-build p7zip parallel patch patchelf patchutils pax-utils \
|
||||
7zip bfs bubblewrap busybox bzip2 bzip3 cabextract ccache chrpath cmake cpio dash diffstat \
|
||||
elfutils execstack fd-find file fish fzf g++ gawk gdb gojq ht htop hyperfine jq ksh \
|
||||
libzstd-dev lsb-release lz4 lzip lzop minify mksh moreutils musl neovim ninja-build \
|
||||
p7zip parallel patch patchelf patchutils pax-utils proot \
|
||||
python3 python3-pyasn1 python3-pycryptodome python3-zstd \
|
||||
re2c ripgrep rsync screen universal-ctags unzip yash yq zip zlib1g-dev zsh zstd \
|
||||
re2c ripgrep rsync screen universal-ctags unzip yash yq \
|
||||
zip zlib1g-dev zoxide zsh zstd \
|
||||
# extra packages for compiling with "gcc -m32" and "gcc -mx32":
|
||||
g++-multilib gcc-multilib \
|
||||
&& true
|
||||
@ -58,25 +60,36 @@ RUN cd /root \
|
||||
# install official UPX release binaries into /usr/local/bin; not required but convenient for testing
|
||||
RUN cd /root \
|
||||
&& wget -q https://github.com/upx/upx/releases/download/v3.91/upx-3.91-amd64_linux.tar.bz2 \
|
||||
&& xzlist="3.92 3.93 3.94 3.95 3.96 4.0.0 4.0.1 4.0.2 4.1.0 4.2.0 4.2.1 4.2.2 4.2.3" \
|
||||
&& for v in $xzlist; do wget -q https://github.com/upx/upx/releases/download/v${v}/upx-${v}-amd64_linux.tar.xz; done \
|
||||
&& xzversions="3.92 3.93 3.94 3.95 3.96 4.0.0 4.0.1 4.0.2 4.1.0 4.2.0 4.2.1 4.2.2 4.2.3" \
|
||||
&& for v in $xzversions; do wget -q https://github.com/upx/upx/releases/download/v${v}/upx-${v}-amd64_linux.tar.xz; done \
|
||||
&& for f in ./upx-*.tar.*; do tar -xoaf $f; done \
|
||||
&& for v in 3.91 $xzlist; do d=upx-${v}-amd64_linux; ./$d/upx -qq -d $d/upx -o /usr/local/bin/upx-${v}; done \
|
||||
&& for v in 3.91 $xzversions; do d=upx-${v}-amd64_linux; ./$d/upx -qq -d $d/upx -o /usr/local/bin/upx-${v}; done \
|
||||
&& rm -r ./upx-*.tar.* ./upx-*linux \
|
||||
&& true
|
||||
|
||||
# create default user upx:upx 2000:2000
|
||||
# create default container user upx:upx 2000:2000
|
||||
RUN useradd upx -U --uid 2000 --shell /bin/bash -m \
|
||||
&& cd /home/upx && chmod 00700 . \
|
||||
# prepare ~/.cache and ~/.local for possible tmpfs mounts
|
||||
# prepare ~/.cache, ~/.config and ~/.local for possible tmpfs mounts
|
||||
&& mkdir -p .cache/tmp .local/bin src/upx \
|
||||
&& for d in ccache fontconfig go-build mesa_shader_cache tmp wine zig; do mkdir -p .cache/$d; done \
|
||||
&& for d in fish git helix kak nvim; do mkdir -p .config/$d; done \
|
||||
&& for d in bin include lib share state; do mkdir -p .local/$d; done \
|
||||
&& ln -s .cache/wine .wine && ln -s .cache/tmp tmp \
|
||||
# symlink upx-stubtools
|
||||
&& ln -s /usr/local/bin/bin-upx-20221212 .local/bin/bin-upx \
|
||||
&& echo 'm() { make "$@"; }' >> .bash_aliases \
|
||||
&& echo 'source /usr/share/bash-completion/completions/make' >> .bash_aliases \
|
||||
&& echo 'complete -F _make m' >> .bash_aliases \
|
||||
# some convenience settings according to upx developer preferences
|
||||
&& echo "alias md=mkdir" >> .bashrc \
|
||||
&& echo "alias rd=rmdir" >> .bashrc \
|
||||
&& echo 'mdd() { mkdir "$1" && cd "$1"; }' >> .bashrc \
|
||||
&& echo 'm() { make "$@"; }' >> .bashrc \
|
||||
&& echo 'source /usr/share/bash-completion/completions/make' >> .bashrc \
|
||||
&& echo 'complete -F _make m' >> .bashrc \
|
||||
&& echo 'eval "$(zoxide init bash)"' >> .bashrc \
|
||||
&& echo "alias zz=zi\nalias y=z\nalias yy=zi" >> .bashrc \
|
||||
&& echo "alias cd..='cd ..'" >> .bashrc \
|
||||
&& echo "alias ..='cd ..'" >> .bashrc \
|
||||
&& echo "alias .='cd ..'" >> .bashrc \
|
||||
&& chown -R upx:upx . \
|
||||
&& true
|
||||
USER upx
|
||||
|
78
misc/podman/rebuild-stubs/packages.txt
generated
78
misc/podman/rebuild-stubs/packages.txt
generated
@ -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.7.12 amd64 commandline package manager
|
||||
ii aria2 1.37.0+debian-1build3 amd64 High speed download utility
|
||||
ii base-files 13ubuntu9 amd64 Debian base system miscellaneous files
|
||||
ii base-files 13ubuntu10 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
|
||||
@ -12,10 +12,12 @@ ii bfs 3.1.2-1build1 amd64
|
||||
ii binutils 2.42-4ubuntu2 amd64 GNU assembler, linker and binary utilities
|
||||
ii binutils-common:amd64 2.42-4ubuntu2 amd64 Common files for the GNU assembler, linker and binary utilities
|
||||
ii binutils-x86-64-linux-gnu 2.42-4ubuntu2 amd64 GNU binary utilities, for x86-64-linux-gnu target
|
||||
ii bsdextrautils 2.39.3-9ubuntu4 amd64 extra utilities from 4.4BSD-Lite
|
||||
ii bsdutils 1:2.39.3-9ubuntu4 amd64 basic utilities from 4.4BSD-Lite
|
||||
ii busybox 1:1.36.1-6ubuntu1 amd64 Tiny utilities for small and embedded systems
|
||||
ii bsdextrautils 2.39.3-9ubuntu6 amd64 extra utilities from 4.4BSD-Lite
|
||||
ii bsdutils 1:2.39.3-9ubuntu6 amd64 basic utilities from 4.4BSD-Lite
|
||||
ii bubblewrap 0.9.0-1build1 amd64 utility for unprivileged chroot and namespace manipulation
|
||||
ii busybox 1:1.36.1-6ubuntu3 amd64 Tiny utilities for small and embedded systems
|
||||
ii bzip2 1.0.8-5.1 amd64 high-quality block-sorting file compressor - utilities
|
||||
ii bzip3 1.4.0-1 amd64 better, faster and stronger spiritual successor to bzip2 - utilities
|
||||
ii ca-certificates 20240203 all Common CA certificates
|
||||
ii cabextract 1.11-2 amd64 Microsoft Cabinet file unpacker
|
||||
ii ccache 4.9.1-1 amd64 Compiler cache for fast recompilation of C/C++ code
|
||||
@ -32,10 +34,12 @@ ii curl 8.5.0-2ubuntu10 amd64
|
||||
ii dash 0.5.12-6ubuntu5 amd64 POSIX-compliant shell
|
||||
ii debconf 1.5.86ubuntu1 all Debian configuration management system
|
||||
ii debianutils 5.17build1 amd64 Miscellaneous utilities specific to Debian
|
||||
ii diffstat 1.66-1build1 amd64 produces graph of changes introduced by a diff file
|
||||
ii diffutils 1:3.10-1build1 amd64 File comparison utilities
|
||||
ii dpkg 1.22.6ubuntu6 amd64 Debian package management system
|
||||
ii e2fsprogs 1.47.0-2.4~exp1ubuntu4 amd64 ext2/ext3/ext4 file system utilities
|
||||
ii elfutils 0.190-1.1build4 amd64 collection of utilities to handle ELF objects
|
||||
ii execstack 0.0.20131005-1.1ubuntu1 amd64 ELF GNU_STACK program header editing utility
|
||||
ii fd-find 9.0.0-1 amd64 Simple, fast and user-friendly alternative to find
|
||||
ii file 1:5.45-3build1 amd64 Recognize the type of data in a file using "magic" numbers
|
||||
ii findutils 4.9.0-5build1 amd64 utilities for finding files--find, xargs
|
||||
@ -98,10 +102,11 @@ ii libaudit-common 1:3.1.2-2.1build1 all
|
||||
ii libaudit1:amd64 1:3.1.2-2.1build1 amd64 Dynamic library for security auditing
|
||||
ii libbabeltrace1:amd64 1.5.11-3build3 amd64 Babeltrace conversion libraries
|
||||
ii libbinutils:amd64 2.42-4ubuntu2 amd64 GNU binary utilities (private shared library)
|
||||
ii libblkid1:amd64 2.39.3-9ubuntu4 amd64 block device ID library
|
||||
ii libblkid1:amd64 2.39.3-9ubuntu6 amd64 block device ID library
|
||||
ii libbrotli1:amd64 1.1.0-2build2 amd64 library implementing brotli encoder and decoder (shared libraries)
|
||||
ii libbsd0:amd64 0.12.1-1build1 amd64 utility functions from BSD systems - shared library
|
||||
ii libbz2-1.0:amd64 1.0.8-5.1 amd64 high-quality block-sorting file compressor library - runtime
|
||||
ii libbzip3-0:amd64 1.4.0-1 amd64 better, faster and stronger spiritual successor to bzip2 - runtime
|
||||
ii libc-bin 2.39-0ubuntu8 amd64 GNU C Library: Binaries
|
||||
ii libc-dev-bin 2.39-0ubuntu8 amd64 GNU C Library: Development binaries
|
||||
ii libc6-dev-i386 2.39-0ubuntu8 amd64 GNU C Library: 32-bit development libraries for AMD64
|
||||
@ -172,10 +177,10 @@ ii liblzo2-2:amd64 2.10-2build4 amd64
|
||||
ii libmagic-mgc 1:5.45-3build1 amd64 File type determination library using "magic" numbers (compiled magic file)
|
||||
ii libmagic1t64:amd64 1:5.45-3build1 amd64 Recognize the type of data in a file using "magic" numbers - library
|
||||
ii libmd0:amd64 1.1.0-2build1 amd64 message digest functions from BSD systems - shared library
|
||||
ii libmount1:amd64 2.39.3-9ubuntu4 amd64 device mounting library
|
||||
ii libmount1:amd64 2.39.3-9ubuntu6 amd64 device mounting library
|
||||
ii libmpc3:amd64 1.3.1-1build1 amd64 multiple precision complex floating-point library
|
||||
ii libmpfr6:amd64 4.2.1-1build1 amd64 multiple precision floating-point computation
|
||||
ii libmsgpackc2:amd64 4.0.0-3 amd64 binary-based efficient object serialization library
|
||||
ii libmsgpackc2:amd64 4.0.0-3build1 amd64 binary-based efficient object serialization library
|
||||
ii libmspack0t64:amd64 0.11-1.1build1 amd64 library for Microsoft compression formats (shared library)
|
||||
ii libncurses6:amd64 6.4+20240113-1ubuntu2 amd64 shared libraries for terminal handling
|
||||
ii libncursesw6:amd64 6.4+20240113-1ubuntu2 amd64 shared libraries for terminal handling (wide character support)
|
||||
@ -217,7 +222,7 @@ ii libsensors5:amd64 1:3.6.0-9build1 amd64
|
||||
ii libsepol2:amd64 3.5-2build1 amd64 SELinux library for manipulating binary security policies
|
||||
ii libsframe1:amd64 2.42-4ubuntu2 amd64 Library to handle the SFrame format (runtime library)
|
||||
ii libsigsegv2:amd64 2.14-1ubuntu2 amd64 Library for handling page faults in a portable way
|
||||
ii libsmartcols1:amd64 2.39.3-9ubuntu4 amd64 smart column output alignment library
|
||||
ii libsmartcols1:amd64 2.39.3-9ubuntu6 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 amd64 SQLite 3 shared library
|
||||
@ -227,7 +232,8 @@ ii libssh2-1t64:amd64 1.11.0-4.1build2 amd64
|
||||
ii libssl3t64:amd64 3.0.13-0ubuntu3 amd64 Secure Sockets Layer toolkit - shared libraries
|
||||
ii libstdc++-13-dev:amd64 13.2.0-23ubuntu4 amd64 GNU Standard C++ Library v3 (development files)
|
||||
ii libstdc++6:amd64 14-20240412-0ubuntu1 amd64 GNU Standard C++ Library v3
|
||||
ii libsystemd0:amd64 255.4-1ubuntu7 amd64 systemd utility library
|
||||
ii libsystemd0:amd64 255.4-1ubuntu8 amd64 systemd utility library
|
||||
ii libtalloc2:amd64 2.4.2-1build2 amd64 hierarchical pool based memory allocator
|
||||
ii libtasn1-6:amd64 4.19.0-3build1 amd64 Manage ASN.1 structures (runtime)
|
||||
ii libtermkey1:amd64 0.22-1 amd64 library for processing keyboard input
|
||||
ii libtime-duration-perl 1.21-2 all module for rounded or exact English expression of durations
|
||||
@ -237,12 +243,12 @@ ii libtree-sitter0:amd64 0.20.8-2 amd64
|
||||
ii libtsan2:amd64 14-20240412-0ubuntu1 amd64 ThreadSanitizer -- a Valgrind-based detector of data races (runtime)
|
||||
ii libubsan1:amd64 14-20240412-0ubuntu1 amd64 UBSan -- undefined behaviour sanitizer (runtime)
|
||||
ii libuchardet0:amd64 0.0.8-1build1 amd64 universal charset detection library - shared library
|
||||
ii libudev1:amd64 255.4-1ubuntu7 amd64 libudev shared library
|
||||
ii libudev1:amd64 255.4-1ubuntu8 amd64 libudev shared library
|
||||
ii libunibilium4:amd64 2.1.0-3 amd64 simple, self-contained terminfo library
|
||||
ii libunistring5:amd64 1.1-2build1 amd64 Unicode string library for C
|
||||
ii liburing2:amd64 2.5-1build1 amd64 Linux kernel io_uring access library - shared library
|
||||
ii libutempter0:amd64 1.2.1-3build1 amd64 privileged helper for utmp/wtmp updates (runtime)
|
||||
ii libuuid1:amd64 2.39.3-9ubuntu4 amd64 Universally Unique ID library
|
||||
ii libuuid1:amd64 2.39.3-9ubuntu6 amd64 Universally Unique ID library
|
||||
ii libuv1t64:amd64 1.48.0-1.1build1 amd64 asynchronous event notification library - runtime library
|
||||
ii libvterm0:amd64 0.3.3-2build1 amd64 abstract terminal library
|
||||
ii libx11-6:amd64 2:1.8.7-1build1 amd64 X11 client-side library
|
||||
@ -258,14 +264,14 @@ ii libx32stdc++-13-dev 13.2.0-23ubuntu4 amd64
|
||||
ii libx32stdc++6 14-20240412-0ubuntu1 amd64 GNU Standard C++ Library v3 (x32)
|
||||
ii libx32ubsan1 14-20240412-0ubuntu1 amd64 UBSan -- undefined behaviour sanitizer (x32)
|
||||
ii libxau6:amd64 1:1.0.9-1build6 amd64 X11 authorisation library
|
||||
ii libxcb1:amd64 1.15-1 amd64 X C Binding
|
||||
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 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 amd64 fast lossless compression algorithm -- development files
|
||||
ii libzstd1:amd64 1.5.5+dfsg2-2build1 amd64 fast lossless compression algorithm
|
||||
ii linux-libc-dev:amd64 6.8.0-28.28 amd64 Linux Kernel Headers for development
|
||||
ii linux-libc-dev:amd64 6.8.0-31.31 amd64 Linux Kernel Headers for development
|
||||
ii login 1:4.13+dfsg1-4ubuntu3 amd64 system login tools
|
||||
ii logsave 1.47.0-2.4~exp1ubuntu4 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)
|
||||
@ -280,7 +286,8 @@ ii media-types 10.1.0 all
|
||||
ii minify 2.20.17-1 amd64 CLI implementation of the Go minify library package
|
||||
ii mksh 59c-37 amd64 MirBSD Korn Shell
|
||||
ii moreutils 0.69-1 amd64 additional Unix utilities
|
||||
ii mount 2.39.3-9ubuntu4 amd64 tools for mounting and manipulating filesystems
|
||||
ii mount 2.39.3-9ubuntu6 amd64 tools for mounting and manipulating filesystems
|
||||
ii musl:amd64 1.2.4-2 amd64 standard C library
|
||||
ii ncurses-base 6.4+20240113-1ubuntu2 all basic terminal type definitions
|
||||
ii ncurses-bin 6.4+20240113-1ubuntu2 amd64 terminal-related programs and man pages
|
||||
ii ncurses-term 6.4+20240113-1ubuntu2 all additional terminal type definitions
|
||||
@ -300,6 +307,7 @@ ii perl 5.38.2-3.2build2 amd64
|
||||
ii perl-base 5.38.2-3.2build2 amd64 minimal Perl system
|
||||
ii perl-modules-5.38 5.38.2-3.2build2 all Core Perl modules
|
||||
ii procps 2:4.0.4-4ubuntu3 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)
|
||||
ii python3 3.12.3-0ubuntu1 amd64 interactive high-level object-oriented language (default python3 version)
|
||||
ii python3-argcomplete 3.1.4-1 all bash tab completion for argparse (for Python 3)
|
||||
@ -330,7 +338,7 @@ ii ubuntu-keyring 2023.11.28.1 all
|
||||
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 unzip 6.0-28ubuntu4 amd64 De-archiver for .zip files
|
||||
ii util-linux 2.39.3-9ubuntu4 amd64 miscellaneous system utilities
|
||||
ii util-linux 2.39.3-9ubuntu6 amd64 miscellaneous system utilities
|
||||
ii wget 1.21.4-1ubuntu4 amd64 retrieves files from the web
|
||||
ii xz-utils 5.6.1+really5.4.5-1 amd64 XZ-format compression utilities
|
||||
ii yash 2.55-2 amd64 yet another shell
|
||||
@ -339,6 +347,7 @@ ii zip 3.0-13build1 amd64
|
||||
ii zlib1g-dev:amd64 1:1.3.dfsg-3.1ubuntu2 amd64 compression library - development
|
||||
ii zlib1g:amd64 1:1.3.dfsg-3.1ubuntu2 amd64 compression library - runtime
|
||||
ii zlib1g:i386 1:1.3.dfsg-3.1ubuntu2 i386 compression library - runtime
|
||||
ii zoxide 0.9.3-1 amd64 Smarter cd command for your terminal
|
||||
ii zsh 5.9-6ubuntu2 amd64 shell with lots of features
|
||||
ii zsh-common 5.9-6ubuntu2 all architecture independent files for Zsh
|
||||
ii zstd 1.5.5+dfsg2-2build1 amd64 fast lossless compression algorithm -- CLI tool
|
||||
@ -348,7 +357,7 @@ rc libgnutls30:amd64 3.8.3-1ubuntu1 amd64
|
||||
||/ Name Version Architecture Description
|
||||
|
||||
Packages sorted by Installed-Size:
|
||||
873594 ===== TOTAL (342 packages)
|
||||
876372 ===== TOTAL (351 packages)
|
||||
72249 gcc-13-x86-64-linux-gnu amd64
|
||||
37841 g++-13-x86-64-linux-gnu amd64
|
||||
36493 cmake amd64
|
||||
@ -382,7 +391,7 @@ Packages sorted by Installed-Size:
|
||||
7923 python3.12-minimal amd64
|
||||
7913 perl-base amd64
|
||||
7492 libx32gcc-13-dev amd64
|
||||
7165 linux-libc-dev amd64
|
||||
7166 linux-libc-dev amd64
|
||||
6946 libc6-dev-i386 amd64
|
||||
6944 coreutils amd64
|
||||
6775 neovim amd64
|
||||
@ -407,7 +416,7 @@ Packages sorted by Installed-Size:
|
||||
3605 python2.7-minimal amd64
|
||||
3443 fish amd64
|
||||
3441 re2c amd64
|
||||
3437 util-linux amd64
|
||||
3438 util-linux amd64
|
||||
3403 libaria2-0 amd64
|
||||
3382 fd-find amd64
|
||||
3349 libubsan1 amd64
|
||||
@ -457,8 +466,9 @@ Packages sorted by Installed-Size:
|
||||
1314 hyperfine amd64
|
||||
1237 libzstd-dev amd64
|
||||
1186 libmpfr6 amd64
|
||||
1136 zoxide amd64
|
||||
1123 libpam-modules amd64
|
||||
1024 libsystemd0 amd64
|
||||
1025 libsystemd0 amd64
|
||||
1014 libkrb5-3 amd64
|
||||
996 screen amd64
|
||||
924 libcurl4t64 amd64
|
||||
@ -466,9 +476,10 @@ Packages sorted by Installed-Size:
|
||||
905 libcurl3t64-gnutls amd64
|
||||
904 libarchive13t64 amd64
|
||||
884 login amd64
|
||||
852 busybox amd64
|
||||
843 libbrotli1 amd64
|
||||
828 busybox amd64
|
||||
812 lua-luv amd64
|
||||
785 musl amd64
|
||||
780 rsync amd64
|
||||
765 libdw1t64 amd64
|
||||
761 libzstd1 amd64
|
||||
@ -515,12 +526,12 @@ Packages sorted by Installed-Size:
|
||||
375 unzip amd64
|
||||
374 lib32gomp1 amd64
|
||||
372 libgomp1 amd64
|
||||
366 libmount1 amd64
|
||||
367 libmount1 amd64
|
||||
358 libjq1 amd64
|
||||
357 bfs amd64
|
||||
355 ninja-build amd64
|
||||
351 libx32gomp1 amd64
|
||||
347 mount amd64
|
||||
348 mount amd64
|
||||
344 libcrypt-dev amd64
|
||||
344 grep amd64
|
||||
340 sed amd64
|
||||
@ -528,16 +539,16 @@ Packages sorted by Installed-Size:
|
||||
336 libncurses6 amd64
|
||||
332 gpgv amd64
|
||||
328 cpio amd64
|
||||
313 libudev1 amd64
|
||||
314 libudev1 amd64
|
||||
310 libctf-nobfd0 amd64
|
||||
309 less amd64
|
||||
305 libsource-highlight-common all
|
||||
300 libquadmath0 amd64
|
||||
299 libx32quadmath0 amd64
|
||||
289 libblkid1 amd64
|
||||
288 libsemanage2 amd64
|
||||
288 libblkid1 amd64
|
||||
287 bsdutils amd64
|
||||
286 bsdextrautils amd64
|
||||
288 bsdutils amd64
|
||||
287 bsdextrautils amd64
|
||||
276 libpam-runtime all
|
||||
273 patchelf amd64
|
||||
273 mawk amd64
|
||||
@ -567,18 +578,20 @@ Packages sorted by Installed-Size:
|
||||
211 libmagic1t64 amd64
|
||||
208 libpam0g amd64
|
||||
207 libuchardet0 amd64
|
||||
206 libxcb1 amd64
|
||||
206 proot amd64
|
||||
200 libselinux1 amd64
|
||||
200 libnghttp2-14 amd64
|
||||
199 execstack amd64
|
||||
198 libtree-sitter0 amd64
|
||||
197 libgcc-s1 amd64
|
||||
196 libxcb1 amd64
|
||||
196 libelf1t64 amd64
|
||||
187 dash amd64
|
||||
185 libgpg-error0 amd64
|
||||
184 libx32gcc-s1 amd64
|
||||
176 libcares2 amd64
|
||||
172 libnl-3-200 amd64
|
||||
170 libsmartcols1 amd64
|
||||
171 libsmartcols1 amd64
|
||||
163 lzip amd64
|
||||
162 zlib1g amd64
|
||||
159 binutils amd64
|
||||
@ -598,6 +611,7 @@ Packages sorted by Installed-Size:
|
||||
132 libkrb5support0 amd64
|
||||
131 libipt2 amd64
|
||||
130 init-system-helpers all
|
||||
129 bubblewrap amd64
|
||||
127 libbsd0 amd64
|
||||
126 time amd64
|
||||
126 libsframe1 amd64
|
||||
@ -628,9 +642,11 @@ Packages sorted by Installed-Size:
|
||||
93 libvterm0 amd64
|
||||
93 libgdbm6t64 amd64
|
||||
90 libxxhash0 amd64
|
||||
83 libuuid1 amd64
|
||||
84 libuuid1 amd64
|
||||
83 libtalloc2 amd64
|
||||
82 python3 amd64
|
||||
82 cabextract amd64
|
||||
81 libbzip3-0 amd64
|
||||
79 libsensors5 amd64
|
||||
79 libmd0 amd64
|
||||
77 readline-common all
|
||||
@ -639,11 +655,13 @@ Packages sorted by Installed-Size:
|
||||
74 libasm1t64 amd64
|
||||
74 libacl1 amd64
|
||||
72 libffi8 amd64
|
||||
72 diffstat amd64
|
||||
69 yq all
|
||||
69 libss2 amd64
|
||||
69 liberror-perl all
|
||||
69 libdebuginfod1t64 amd64
|
||||
67 libpipeline1 amd64
|
||||
66 bzip3 amd64
|
||||
63 sensible-utils all
|
||||
63 libtermkey1 amd64
|
||||
63 file amd64
|
||||
@ -652,10 +670,10 @@ Packages sorted by Installed-Size:
|
||||
60 libattr1 amd64
|
||||
57 libcom-err2 amd64
|
||||
53 libnl-genl-3-200 amd64
|
||||
52 libmsgpackc2 amd64
|
||||
51 logsave amd64
|
||||
51 libutempter0 amd64
|
||||
50 libdebuginfod-common all
|
||||
48 libmsgpackc2 amd64
|
||||
47 python3-xmltodict all
|
||||
47 libsigsegv2 amd64
|
||||
46 hostname amd64
|
||||
|
@ -180,7 +180,7 @@ typedef upx_int64_t upx_off_t;
|
||||
#if defined(__clang__) || defined(__GNUC__)
|
||||
#define noreturn noinline __attribute__((__noreturn__))
|
||||
#elif (ACC_CC_MSC)
|
||||
// do not use, generates annoying "warning C4702: unreachable code"
|
||||
// do not use, triggers annoying "warning C4702: unreachable code"
|
||||
////#define noreturn noinline __declspec(noreturn)
|
||||
#define noreturn noinline
|
||||
#else
|
||||
@ -458,7 +458,7 @@ noreturn void throwAssertFailed(const char *expr, const char *file, int line, co
|
||||
#if defined(__clang__) || defined(__GNUC__)
|
||||
#undef assert
|
||||
#if DEBUG || 0
|
||||
// generate a warning if assert() is used inside a "noexcept" context
|
||||
// trigger a warning if assert() is used inside a "noexcept" context
|
||||
#define assert(e) \
|
||||
((void) (__acc_cte(e) || (assertFailed(#e, __FILE__, __LINE__, __func__), throw 1, 0)))
|
||||
#else
|
||||
@ -707,7 +707,7 @@ struct upx_compress_config_t final {
|
||||
}
|
||||
};
|
||||
|
||||
#define NULL_cconf ((upx_compress_config_t *) nullptr)
|
||||
#define NULL_cconf ((const upx_compress_config_t *) nullptr)
|
||||
|
||||
/*************************************************************************
|
||||
// compression - result_t
|
||||
|
@ -190,8 +190,7 @@ protected:
|
||||
unsigned le_offset = 0;
|
||||
unsigned exe_offset = 0;
|
||||
|
||||
le_header_t ih;
|
||||
le_header_t oh;
|
||||
le_header_t ih = {}, oh = {};
|
||||
|
||||
le_object_table_entry_t *iobject_table = nullptr;
|
||||
le_object_table_entry_t *oobject_table = nullptr;
|
||||
|
@ -1364,11 +1364,7 @@ int __acc_cdecl_main main(int argc, char *argv[]) /*noexcept*/ {
|
||||
_set_abort_behavior(_WRITE_ABORT_MSG, _WRITE_ABORT_MSG | _CALL_REPORTFAULT);
|
||||
#endif
|
||||
acc_wildargv(&argc, &argv);
|
||||
#if defined(__wasi__)
|
||||
::srand((unsigned) time(nullptr));
|
||||
#else
|
||||
::srand((unsigned) clock());
|
||||
#endif
|
||||
upx_rand_init();
|
||||
|
||||
// info: main() is implicitly "noexcept", so we need a try block
|
||||
#if 0
|
||||
|
@ -86,7 +86,7 @@ protected:
|
||||
LE32 firstreloc;
|
||||
};
|
||||
|
||||
exe_header_t ih, oh;
|
||||
exe_header_t ih = {}, oh = {};
|
||||
|
||||
unsigned ih_exesize = 0;
|
||||
unsigned ih_imagesize = 0;
|
||||
|
@ -75,9 +75,7 @@ static const CLANG_FORMAT_DUMMY_STATEMENT
|
||||
**************************************************************************/
|
||||
|
||||
PackPs1::PackPs1(InputFile *f)
|
||||
: super(f), isCon(!opt->ps1_exe.boot_only), is32Bit(!opt->ps1_exe.do_8bit), buildPart2(0),
|
||||
foundBss(0), sa_cnt(0), overlap(0), sz_lunc(0), sz_lcpr(0), pad_code(0), bss_start(0),
|
||||
bss_end(0) {
|
||||
: super(f), isCon(!opt->ps1_exe.boot_only), is32Bit(!opt->ps1_exe.do_8bit) {
|
||||
bele = &N_BELE_RTP::le_policy;
|
||||
|
||||
COMPILE_TIME_ASSERT(sizeof(ps1_exe_t) == 136)
|
||||
|
24
src/p_ps1.h
24
src/p_ps1.h
@ -108,20 +108,20 @@ protected:
|
||||
LE16 hi2, op3, lo2, op4;
|
||||
};
|
||||
|
||||
ps1_exe_t ih, oh;
|
||||
ps1_exe_hb_t bh;
|
||||
ps1_exe_t ih = {}, oh = {};
|
||||
ps1_exe_hb_t bh = {};
|
||||
|
||||
bool isCon;
|
||||
bool is32Bit;
|
||||
bool buildPart2;
|
||||
bool foundBss;
|
||||
unsigned ram_size;
|
||||
unsigned sa_cnt, overlap;
|
||||
unsigned sz_lunc, sz_lcpr;
|
||||
unsigned pad_code;
|
||||
unsigned bss_start, bss_end;
|
||||
bool isCon = false;
|
||||
bool is32Bit = false;
|
||||
bool buildPart2 = false;
|
||||
bool foundBss = false;
|
||||
unsigned ram_size = 0;
|
||||
unsigned sa_cnt = 0, overlap = 0;
|
||||
unsigned sz_lunc = 0, sz_lcpr = 0;
|
||||
unsigned pad_code = 0;
|
||||
unsigned bss_start = 0, bss_end = 0;
|
||||
// filesize-PS_HDR_SIZE
|
||||
unsigned fdata_size;
|
||||
unsigned fdata_size = 0;
|
||||
};
|
||||
|
||||
/* vim:set ts=4 sw=4 et: */
|
||||
|
@ -70,7 +70,7 @@ protected:
|
||||
byte ___[12]; // esp,numfixups,flags
|
||||
LE32 relocsize;
|
||||
};
|
||||
tmt_header_t ih, oh;
|
||||
tmt_header_t ih = {}, oh = {};
|
||||
};
|
||||
|
||||
/* vim:set ts=4 sw=4 et: */
|
||||
|
@ -71,7 +71,7 @@ protected:
|
||||
BE16 fh_reloc;
|
||||
};
|
||||
|
||||
tos_header_t ih, oh;
|
||||
tos_header_t ih = {}, oh = {};
|
||||
|
||||
// symbols for buildLoader()
|
||||
struct LinkerSymbols {
|
||||
|
@ -57,7 +57,7 @@ void Packer::assertPacker() const {
|
||||
assert(getVersion() >= 11);
|
||||
assert(getVersion() <= 14);
|
||||
assert(strlen(getName()) <= 15);
|
||||
// info: 36 is the limit for show_all_packers() in help.cpp, but 32 should be enough
|
||||
// info: 36 is the limit for show_all_packers() in help.cpp, but 32 should be enough for now
|
||||
assert(strlen(getFullName(nullptr)) <= 32);
|
||||
assert(strlen(getFullName(opt)) <= 32);
|
||||
assert(getCompressionMethods(M_ALL, 10) != nullptr);
|
||||
@ -471,30 +471,7 @@ unsigned Packer::getRandomId() const {
|
||||
if (opt->debug.disable_random_id)
|
||||
return 0x01020304;
|
||||
unsigned id = 0;
|
||||
#if 0 && defined(__unix__)
|
||||
// Don't consume precious bytes from /dev/urandom.
|
||||
int fd = open("/dev/urandom", O_RDONLY | O_BINARY);
|
||||
if (fd < 0)
|
||||
fd = open("/dev/random", O_RDONLY | O_BINARY);
|
||||
if (fd >= 0) {
|
||||
if (read(fd, &id, 4) != 4)
|
||||
id = 0;
|
||||
close(fd);
|
||||
}
|
||||
#endif
|
||||
while (id == 0) {
|
||||
#if (!(HAVE_GETTIMEOFDAY) || ((ACC_OS_DOS32) && defined(__DJGPP__))) && !defined(__wasi__)
|
||||
id ^= (unsigned) time(nullptr);
|
||||
id ^= ((unsigned) clock()) << 12;
|
||||
#else
|
||||
struct timeval tv;
|
||||
gettimeofday(&tv, nullptr);
|
||||
id ^= (unsigned) tv.tv_sec;
|
||||
id ^= ((unsigned) tv.tv_usec) << 12; // shift into high-bits
|
||||
#endif
|
||||
#if HAVE_GETPID
|
||||
id ^= (unsigned) getpid();
|
||||
#endif
|
||||
id ^= (unsigned) fi->st.st_ino;
|
||||
id ^= (unsigned) fi->st.st_atime;
|
||||
id ^= (unsigned) upx_rand();
|
||||
@ -950,9 +927,9 @@ int Packer::prepareMethods(int *methods, int ph_method, const int *all_methods)
|
||||
// debug
|
||||
if (opt->debug.use_random_method && nmethods >= 2) {
|
||||
int method = methods[upx_rand() % nmethods];
|
||||
NO_printf("\nuse_random_method = %#x (%d)\n", method, nmethods);
|
||||
methods[0] = method;
|
||||
nmethods = 1;
|
||||
NO_printf("\nuse_random_method = %d\n", method);
|
||||
}
|
||||
return nmethods;
|
||||
}
|
||||
@ -1019,10 +996,10 @@ done:
|
||||
if (opt->debug.use_random_filter && nfilters >= 3 && filters[nfilters - 1] == 0) {
|
||||
int filter_id = filters[upx_rand() % (nfilters - 1)];
|
||||
if (filter_id > 0) {
|
||||
NO_printf("\nuse_random_filter = %#x (%d)\n", filter_id, nfilters - 1);
|
||||
filters[0] = filter_id;
|
||||
filters[1] = 0;
|
||||
nfilters = 2;
|
||||
NO_printf("\nuse_random_filter = %d\n", filter_id);
|
||||
}
|
||||
}
|
||||
return nfilters;
|
||||
|
@ -579,7 +579,7 @@ protected:
|
||||
ddirs_t ddirs[16];
|
||||
};
|
||||
|
||||
pe_header_t ih, oh;
|
||||
pe_header_t ih = {}, oh = {};
|
||||
};
|
||||
|
||||
class PeFile64 : public PeFile {
|
||||
@ -640,7 +640,7 @@ protected:
|
||||
ddirs_t ddirs[16];
|
||||
};
|
||||
|
||||
pe_header_t ih, oh;
|
||||
pe_header_t ih = {}, oh = {};
|
||||
};
|
||||
|
||||
/* vim:set ts=4 sw=4 et: */
|
||||
|
@ -125,6 +125,7 @@ static_assert(sizeof(void *) == sizeof(long));
|
||||
#include <type_traits>
|
||||
#include <utility>
|
||||
// C++ system headers
|
||||
#include <algorithm>
|
||||
#include <memory> // std::unique_ptr
|
||||
// C++ multithreading (UPX currently does not use multithreading)
|
||||
#if __STDC_NO_ATOMICS__
|
||||
|
@ -26,7 +26,6 @@
|
||||
*/
|
||||
|
||||
#include "system_headers.h"
|
||||
#include <algorithm>
|
||||
#define ACC_WANT_ACC_INCI_H 1
|
||||
#include "miniacc.h"
|
||||
#define ACC_WANT_ACCLIB_GETOPT 1
|
||||
@ -260,8 +259,26 @@ const char *upx_getenv(const char *envvar) noexcept {
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
// random value from libc; quality is not important for UPX
|
||||
int upx_rand(void) noexcept { return ::rand(); }
|
||||
|
||||
void upx_rand_init(void) noexcept {
|
||||
unsigned seed = 0;
|
||||
#if (!HAVE_GETTIMEOFDAY || (ACC_OS_DOS32 && defined(__DJGPP__))) && !defined(__wasi__)
|
||||
seed ^= (unsigned) time(nullptr);
|
||||
seed ^= ((unsigned) clock()) << 12;
|
||||
#else
|
||||
struct timeval tv = {};
|
||||
(void) gettimeofday(&tv, nullptr);
|
||||
seed ^= (unsigned) tv.tv_sec;
|
||||
seed ^= ((unsigned) tv.tv_usec) << 12;
|
||||
#endif
|
||||
#if HAVE_GETPID
|
||||
seed ^= ((unsigned) getpid()) << 4;
|
||||
#endif
|
||||
::srand(seed);
|
||||
}
|
||||
|
||||
void *upx_calloc(size_t n, size_t element_size) may_throw {
|
||||
size_t bytes = mem_size(element_size, n); // assert size
|
||||
void *p = ::malloc(bytes);
|
||||
|
@ -149,6 +149,7 @@ noinline const char *upx_getenv(const char *envvar) noexcept;
|
||||
|
||||
void upx_memswap(void *a, void *b, size_t bytes) noexcept;
|
||||
|
||||
noinline void upx_rand_init(void) noexcept;
|
||||
noinline int upx_rand(void) noexcept;
|
||||
|
||||
typedef int(__acc_cdecl_qsort *upx_compare_func_t)(const void *, const void *);
|
||||
|
Loading…
Reference in New Issue
Block a user