trifectatechfoundation / sudo-rs

A memory safe implementation of sudo and su.
Other
2.87k stars 76 forks source link

sudo-rs panics during PostmarketOS development when called from pmbootstrap to test linux-lts build #824

Closed Kreyren closed 7 months ago

Kreyren commented 7 months ago

Describe the bug

sudor-rs panics in some situations when called from pmbootstrap:

$ pmbootstrap --details-to-stdout kconfig edit linux-lts --arch=aarch64
(347620) [02:19:49] % cd /home/raptor/.local/var/pmbootstrap/cache_git/pmaports; git remote -v
fork    git@github.com:Kreyren/pmaports-TERES.git (fetch)
fork    git@github.com:Kreyren/pmaports-TERES.git (push)
gitlab-fork     git@gitlab.com:krey_glsux2/pmaports.git (fetch)
gitlab-fork     git@gitlab.com:krey_glsux2/pmaports.git (push)
origin  https://gitlab.com/postmarketOS/pmaports.git (fetch)
origin  https://gitlab.com/postmarketOS/pmaports.git (push)
(347620) [02:19:49] % cd /home/raptor/.local/var/pmbootstrap/cache_git/pmaports; git show origin/master:channels.cfg
# Reference: https://postmarketos.org/channels.cfg
[channels.cfg]
recommended=edge

[edge]
description=Rolling release / Most devices / Occasional breakage: https://postmarketos.org/edge
branch_pmaports=master
branch_aports=master
mirrordir_alpine=edge

[v23.12]
description=Latest release / Recommended for best stability
branch_pmaports=v23.12
branch_aports=3.19-stable
mirrordir_alpine=v3.19

[v23.06]
description=Old release (unsupported)
branch_pmaports=v23.06
branch_aports=3.18-stable
mirrordir_alpine=v3.18

[v22.12]
description=Old release (unsupported)
branch_pmaports=v22.12
branch_aports=3.17-stable
mirrordir_alpine=v3.17

[v22.06]
description=Old release (unsupported)
branch_pmaports=v22.06
branch_aports=3.16-stable
mirrordir_alpine=v3.16

[v21.12]
description=Old release (unsupported)
branch_pmaports=v21.12
branch_aports=3.15-stable
mirrordir_alpine=v3.15

[v21.06]
description=Old release (unsupported)
branch_pmaports=v21.06
branch_aports=3.14-stable
mirrordir_alpine=v3.14

[v21.03]
description=Old release (unsupported)
branch_pmaports=v21.03
branch_aports=3.13-stable
mirrordir_alpine=v3.13

[v20.05]
description=Old release (unsupported)
branch_pmaports=v20.05
branch_aports=3.12-stable
mirrordir_alpine=v3.12
(347620) [02:19:49] NOTE: Skipped apk version check for chroot 'buildroot_aarch64', because it is not installed yet!
(347620) [02:19:49] % sudo mkdir -p /home/raptor/.local/var/pmbootstrap/chroot_buildroot_aarch64/dev
(347620) [02:19:49] % sudo mount -t tmpfs -o size=1M,noexec,dev tmpfs /home/raptor/.local/var/pmbootstrap/chroot_buildroot_aarch64/dev
(347620) [02:19:49] % sudo mkdir -p /home/raptor/.local/var/pmbootstrap/chroot_buildroot_aarch64/dev/pts /home/raptor/.local/var/pmbootstrap/chroot_buildroot_aarch64/dev/shm
(347620) [02:19:49] % sudo mount -t tmpfs -o nodev,nosuid,noexec tmpfs /home/raptor/.local/var/pmbootstrap/chroot_buildroot_aarch64/dev/shm
(347620) [02:19:49] % sudo mknod -m 666 /home/raptor/.local/var/pmbootstrap/chroot_buildroot_aarch64/dev/null c 1 3
(347620) [02:19:49] % sudo mknod -m 666 /home/raptor/.local/var/pmbootstrap/chroot_buildroot_aarch64/dev/zero c 1 5
(347620) [02:19:50] % sudo mknod -m 666 /home/raptor/.local/var/pmbootstrap/chroot_buildroot_aarch64/dev/full c 1 7
(347620) [02:19:50] % sudo mknod -m 644 /home/raptor/.local/var/pmbootstrap/chroot_buildroot_aarch64/dev/random c 1 8
(347620) [02:19:50] % sudo mknod -m 644 /home/raptor/.local/var/pmbootstrap/chroot_buildroot_aarch64/dev/urandom c 1 9
(347620) [02:19:50] % sudo ln -sf /proc/self/fd /home/raptor/.local/var/pmbootstrap/chroot_buildroot_aarch64/dev/
(347620) [02:19:50] % sudo mkdir -p /home/raptor/.local/var/pmbootstrap/chroot_buildroot_aarch64/proc
(347620) [02:19:50] % sudo mount --bind /proc /home/raptor/.local/var/pmbootstrap/chroot_buildroot_aarch64/proc
(347620) [02:19:50] % sudo mkdir -p /home/raptor/.local/var/pmbootstrap/chroot_buildroot_aarch64/var/cache/apk
(347620) [02:19:50] % sudo mount --bind /home/raptor/.local/var/pmbootstrap/cache_apk_aarch64 /home/raptor/.local/var/pmbootstrap/chroot_buildroot_aarch64/var/cache/apk
(347620) [02:19:50] % sudo mkdir -p /home/raptor/.local/var/pmbootstrap/chroot_buildroot_aarch64/mnt/appstream-data
(347620) [02:19:50] % sudo mount --bind /home/raptor/.local/var/pmbootstrap/cache_appstream/aarch64/edge /home/raptor/.local/var/pmbootstrap/chroot_buildroot_aarch64/mnt/appstream-data
(347620) [02:19:50] % sudo mkdir -p /home/raptor/.local/var/pmbootstrap/chroot_buildroot_aarch64/mnt/pmbootstrap/ccache
(347620) [02:19:50] % sudo mount --bind /home/raptor/.local/var/pmbootstrap/cache_ccache_aarch64 /home/raptor/.local/var/pmbootstrap/chroot_buildroot_aarch64/mnt/pmbootstrap/ccache
(347620) [02:19:50] % sudo mkdir -p /home/raptor/.local/var/pmbootstrap/chroot_buildroot_aarch64/var/cache/distfiles
(347620) [02:19:50] % sudo mount --bind /home/raptor/.local/var/pmbootstrap/cache_distfiles /home/raptor/.local/var/pmbootstrap/chroot_buildroot_aarch64/var/cache/distfiles
(347620) [02:19:50] % sudo mkdir -p /home/raptor/.local/var/pmbootstrap/chroot_buildroot_aarch64/mnt/pmbootstrap/git
(347620) [02:19:50] % sudo mount --bind /home/raptor/.local/var/pmbootstrap/cache_git /home/raptor/.local/var/pmbootstrap/chroot_buildroot_aarch64/mnt/pmbootstrap/git
(347620) [02:19:50] % sudo mkdir -p /home/raptor/.local/var/pmbootstrap/chroot_buildroot_aarch64/mnt/pmbootstrap/go
(347620) [02:19:50] % sudo mount --bind /home/raptor/.local/var/pmbootstrap/cache_go /home/raptor/.local/var/pmbootstrap/chroot_buildroot_aarch64/mnt/pmbootstrap/go
(347620) [02:19:50] % sudo mkdir -p /home/raptor/.local/var/pmbootstrap/chroot_buildroot_aarch64/mnt/pmbootstrap/rust
(347620) [02:19:50] % sudo mount --bind /home/raptor/.local/var/pmbootstrap/cache_rust /home/raptor/.local/var/pmbootstrap/chroot_buildroot_aarch64/mnt/pmbootstrap/rust
(347620) [02:19:50] % sudo mkdir -p /home/raptor/.local/var/pmbootstrap/chroot_buildroot_aarch64/mnt/pmbootstrap/abuild-config
(347620) [02:19:50] % sudo mount --bind /home/raptor/.local/var/pmbootstrap/config_abuild /home/raptor/.local/var/pmbootstrap/chroot_buildroot_aarch64/mnt/pmbootstrap/abuild-config
(347620) [02:19:50] % sudo mkdir -p /home/raptor/.local/var/pmbootstrap/chroot_buildroot_aarch64/etc/apk/keys
(347620) [02:19:50] % sudo mount --bind /home/raptor/.local/var/pmbootstrap/config_apk_keys /home/raptor/.local/var/pmbootstrap/chroot_buildroot_aarch64/etc/apk/keys
(347620) [02:19:50] % sudo mkdir -p /home/raptor/.local/var/pmbootstrap/chroot_buildroot_aarch64/mnt/pmbootstrap/sccache
(347620) [02:19:50] % sudo mount --bind /home/raptor/.local/var/pmbootstrap/cache_sccache /home/raptor/.local/var/pmbootstrap/chroot_buildroot_aarch64/mnt/pmbootstrap/sccache
(347620) [02:19:50] % sudo mkdir -p /home/raptor/.local/var/pmbootstrap/chroot_buildroot_aarch64/mnt/pmbootstrap/netboot
(347620) [02:19:50] % sudo mount --bind /home/raptor/.local/var/pmbootstrap/images_netboot /home/raptor/.local/var/pmbootstrap/chroot_buildroot_aarch64/mnt/pmbootstrap/netboot
(347620) [02:19:50] % sudo mkdir -p /home/raptor/.local/var/pmbootstrap/chroot_buildroot_aarch64/mnt/pmbootstrap/packages
(347620) [02:19:50] % sudo mount --bind /home/raptor/.local/var/pmbootstrap/packages/edge /home/raptor/.local/var/pmbootstrap/chroot_buildroot_aarch64/mnt/pmbootstrap/packages
(347620) [02:19:50] NOTE: Skipped apk version check for chroot 'native', because it is not installed yet!
(347620) [02:19:50] % sudo mkdir -p /home/raptor/.local/var/pmbootstrap/chroot_native/dev
(347620) [02:19:50] % sudo mount -t tmpfs -o size=1M,noexec,dev tmpfs /home/raptor/.local/var/pmbootstrap/chroot_native/dev
(347620) [02:19:50] % sudo mkdir -p /home/raptor/.local/var/pmbootstrap/chroot_native/dev/pts /home/raptor/.local/var/pmbootstrap/chroot_native/dev/shm
(347620) [02:19:50] % sudo mount -t tmpfs -o nodev,nosuid,noexec tmpfs /home/raptor/.local/var/pmbootstrap/chroot_native/dev/shm
(347620) [02:19:50] % sudo mknod -m 666 /home/raptor/.local/var/pmbootstrap/chroot_native/dev/null c 1 3
(347620) [02:19:50] % sudo mknod -m 666 /home/raptor/.local/var/pmbootstrap/chroot_native/dev/zero c 1 5
(347620) [02:19:50] % sudo mknod -m 666 /home/raptor/.local/var/pmbootstrap/chroot_native/dev/full c 1 7
(347620) [02:19:50] % sudo mknod -m 644 /home/raptor/.local/var/pmbootstrap/chroot_native/dev/random c 1 8
(347620) [02:19:50] % sudo mknod -m 644 /home/raptor/.local/var/pmbootstrap/chroot_native/dev/urandom c 1 9
(347620) [02:19:50] % sudo ln -sf /proc/self/fd /home/raptor/.local/var/pmbootstrap/chroot_native/dev/
(347620) [02:19:50] % sudo mkdir -p /home/raptor/.local/var/pmbootstrap/chroot_native/proc
(347620) [02:19:50] % sudo mount --bind /proc /home/raptor/.local/var/pmbootstrap/chroot_native/proc
(347620) [02:19:50] % sudo mkdir -p /home/raptor/.local/var/pmbootstrap/chroot_native/var/cache/apk
(347620) [02:19:50] % sudo mount --bind /home/raptor/.local/var/pmbootstrap/cache_apk_x86_64 /home/raptor/.local/var/pmbootstrap/chroot_native/var/cache/apk
(347620) [02:19:50] % sudo mkdir -p /home/raptor/.local/var/pmbootstrap/chroot_native/mnt/appstream-data
(347620) [02:19:50] % sudo mount --bind /home/raptor/.local/var/pmbootstrap/cache_appstream/x86_64/edge /home/raptor/.local/var/pmbootstrap/chroot_native/mnt/appstream-data
(347620) [02:19:50] % sudo mkdir -p /home/raptor/.local/var/pmbootstrap/chroot_native/mnt/pmbootstrap/ccache
(347620) [02:19:50] % sudo mount --bind /home/raptor/.local/var/pmbootstrap/cache_ccache_x86_64 /home/raptor/.local/var/pmbootstrap/chroot_native/mnt/pmbootstrap/ccache
(347620) [02:19:50] % sudo mkdir -p /home/raptor/.local/var/pmbootstrap/chroot_native/var/cache/distfiles
(347620) [02:19:50] % sudo mount --bind /home/raptor/.local/var/pmbootstrap/cache_distfiles /home/raptor/.local/var/pmbootstrap/chroot_native/var/cache/distfiles
(347620) [02:19:50] % sudo mkdir -p /home/raptor/.local/var/pmbootstrap/chroot_native/mnt/pmbootstrap/git
(347620) [02:19:50] % sudo mount --bind /home/raptor/.local/var/pmbootstrap/cache_git /home/raptor/.local/var/pmbootstrap/chroot_native/mnt/pmbootstrap/git
(347620) [02:19:50] % sudo mkdir -p /home/raptor/.local/var/pmbootstrap/chroot_native/mnt/pmbootstrap/go
(347620) [02:19:50] % sudo mount --bind /home/raptor/.local/var/pmbootstrap/cache_go /home/raptor/.local/var/pmbootstrap/chroot_native/mnt/pmbootstrap/go
(347620) [02:19:50] % sudo mkdir -p /home/raptor/.local/var/pmbootstrap/chroot_native/mnt/pmbootstrap/rust
(347620) [02:19:50] % sudo mount --bind /home/raptor/.local/var/pmbootstrap/cache_rust /home/raptor/.local/var/pmbootstrap/chroot_native/mnt/pmbootstrap/rust
(347620) [02:19:51] % sudo mkdir -p /home/raptor/.local/var/pmbootstrap/chroot_native/mnt/pmbootstrap/abuild-config
(347620) [02:19:51] % sudo mount --bind /home/raptor/.local/var/pmbootstrap/config_abuild /home/raptor/.local/var/pmbootstrap/chroot_native/mnt/pmbootstrap/abuild-config
(347620) [02:19:51] % sudo mkdir -p /home/raptor/.local/var/pmbootstrap/chroot_native/etc/apk/keys
(347620) [02:19:51] % sudo mount --bind /home/raptor/.local/var/pmbootstrap/config_apk_keys /home/raptor/.local/var/pmbootstrap/chroot_native/etc/apk/keys
(347620) [02:19:51] % sudo mkdir -p /home/raptor/.local/var/pmbootstrap/chroot_native/mnt/pmbootstrap/sccache
(347620) [02:19:51] % sudo mount --bind /home/raptor/.local/var/pmbootstrap/cache_sccache /home/raptor/.local/var/pmbootstrap/chroot_native/mnt/pmbootstrap/sccache
(347620) [02:19:51] % sudo mkdir -p /home/raptor/.local/var/pmbootstrap/chroot_native/mnt/pmbootstrap/netboot
(347620) [02:19:51] % sudo mount --bind /home/raptor/.local/var/pmbootstrap/images_netboot /home/raptor/.local/var/pmbootstrap/chroot_native/mnt/pmbootstrap/netboot
(347620) [02:19:51] % sudo mkdir -p /home/raptor/.local/var/pmbootstrap/chroot_native/mnt/pmbootstrap/packages
(347620) [02:19:51] % sudo mount --bind /home/raptor/.local/var/pmbootstrap/packages/edge /home/raptor/.local/var/pmbootstrap/chroot_native/mnt/pmbootstrap/packages
(347620) [02:19:51] % sudo touch /home/raptor/.local/var/pmbootstrap/chroot_native/in-pmbootstrap
(347620) [02:19:51] sigfilename: sbin/apk.static.SIGN.RSA.alpine-devel@lists.alpinelinux.org-6165ee59.rsa.pub
(347620) [02:19:51] sigkey: alpine-devel@lists.alpinelinux.org-6165ee59.rsa.pub
(347620) [02:19:51] extracted: /tmp/pmbootstrap_nil6njmapk
(347620) [02:19:51] extracted: /tmp/pmbootstraplmrs5h0jsig
(347620) [02:19:51] Verify apk.static signature with /nix/store/x84b4r2ixay71nrswf01r5rdiszvblzg-pmbootstrap-2.1.0/lib/python3.11/site-packages/pmb/data/keys/alpine-devel@lists.alpinelinux.org-6165ee59.rsa.pub
(347620) [02:19:51] % openssl dgst -sha1 -verify /nix/store/x84b4r2ixay71nrswf01r5rdiszvblzg-pmbootstrap-2.1.0/lib/python3.11/site-packages/pmb/data/keys/alpine-devel@lists.alpinelinux.org-6165ee59.rsa.pub -signature /tmp/pmbootstraplmrs5h0jsig /tmp/pmbootstrap_nil6njmapk
Verified OK
(347620) [02:19:51] Verify the version reported by the apk.static binary (must match the package version 2.14.0-r5)
(347620) [02:19:51] % /tmp/pmbootstrap_nil6njmapk --version
apk-tools 2.14.0, compiled for x86_64.
(347620) [02:19:51] (native) install alpine-base
(347620) [02:19:51] % sudo ln -s -f /var/cache/apk /home/raptor/.local/var/pmbootstrap/chroot_native/etc/apk/cache
(347620) [02:19:51] % sudo cp /etc/resolv.conf /home/raptor/.local/var/pmbootstrap/chroot_native/etc/resolv.conf
(347620) [02:19:51] % sudo mkdir -p /home/raptor/.local/var/pmbootstrap/chroot_native/etc/apk
(347620) [02:19:51] (native) update /etc/apk/repositories
(347620) [02:19:51] % sudo sh -c echo /mnt/pmbootstrap/packages >> /home/raptor/.local/var/pmbootstrap/chroot_native/etc/apk/repositories
(347620) [02:19:51] % sudo sh -c echo http://mirror.postmarketos.org/postmarketos/master >> /home/raptor/.local/var/pmbootstrap/chroot_native/etc/apk/repositories
(347620) [02:19:51] % sudo sh -c echo http://dl-cdn.alpinelinux.org/alpine/edge/main >> /home/raptor/.local/var/pmbootstrap/chroot_native/etc/apk/repositories
(347620) [02:19:51] % sudo sh -c echo http://dl-cdn.alpinelinux.org/alpine/edge/community >> /home/raptor/.local/var/pmbootstrap/chroot_native/etc/apk/repositories
(347620) [02:19:51] % sudo sh -c echo http://dl-cdn.alpinelinux.org/alpine/edge/testing >> /home/raptor/.local/var/pmbootstrap/chroot_native/etc/apk/repositories
(347620) [02:19:51] % sudo mkdir -p /home/raptor/.local/var/pmbootstrap/tmp
(347620) [02:19:51] % sudo rm -f /home/raptor/.local/var/pmbootstrap/tmp/apk_progress_fifo
(347620) [02:19:51] % sudo mkfifo /home/raptor/.local/var/pmbootstrap/tmp/apk_progress_fifo
(347620) [02:19:51] % sudo cat /home/raptor/.local/var/pmbootstrap/tmp/apk_progress_fifo
(347620) [02:19:51] % sudo sh -c exec 3>/home/raptor/.local/var/pmbootstrap/tmp/apk_progress_fifo; /home/raptor/.local/var/pmbootstrap/apk.static --no-progress --progress-fd 3 --root /home/raptor/.local/var/pmbootstrap/chroot_native --cache-dir /home/raptor/.local/var/pmbootstrap/cache_apk_x86_64 --initdb --arch x86_64 add alpine-base --no-interactive
(347620) [02:19:51] New background process: pid=347918, output=background
WARNING: opening /mnt/pmbootstrap/packages: No such file or directory
(1/25) Installing alpine-baselayout-data (3.5.3-r1)
(2/25) Installing musl (1.2.4_git20230717-r5)
(3/25) Installing busybox (1.36.1-r19)
Executing busybox-1.36.1-r19.post-install
(4/25) Installing busybox-binsh (1.36.1-r19)
(5/25) Installing alpine-baselayout (3.5.3-r1)
Executing alpine-baselayout-3.5.3-r1.pre-install
Executing alpine-baselayout-3.5.3-r1.post-install
(6/25) Installing ifupdown-ng (0.12.1-r4)
(7/25) Installing libcap2 (2.69-r1)
(8/25) Installing openrc (0.53-r0)
Executing openrc-0.53-r0.post-install
(9/25) Installing mdev-conf (4.6-r0)
(10/25) Installing busybox-mdev-openrc (1.36.1-r19)
(11/25) Installing alpine-conf (3.17.2-r0)
(12/25) Installing alpine-keys (2.4-r1)
(13/25) Installing alpine-release (3.20.0_alpha20231219-r0)
(14/25) Installing ca-certificates-bundle (20230506-r1)
(15/25) Installing libcrypto3 (3.1.4-r5)
(16/25) Installing libssl3 (3.1.4-r5)
(17/25) Installing ssl_client (1.36.1-r19)
(18/25) Installing zlib (1.3.1-r0)
(19/25) Installing apk-tools (2.14.0-r5)
(20/25) Installing busybox-openrc (1.36.1-r19)
(21/25) Installing busybox-suid (1.36.1-r19)
(22/25) Installing scanelf (1.3.7-r2)
(23/25) Installing musl-utils (1.2.4_git20230717-r5)
(24/25) Installing libc-utils (0.7.2-r5)
(25/25) Installing alpine-base (3.20.0_alpha20231219-r0)
Executing busybox-1.36.1-r19.trigger
OK: 10 MiB in 25 packages
(347620) [02:19:52] (native) % adduser -D pmos -u 12345
(347620) [02:19:52] (native) % busybox su pmos -c HOME=/home/pmos ln -s /mnt/pmbootstrap/abuild-config /home/pmos/.abuild
(347620) [02:19:52] (native) % chown pmos:pmos /mnt/pmbootstrap/abuild-config
(347620) [02:19:52] (native) % busybox su pmos -c HOME=/home/pmos ln -s /mnt/pmbootstrap/ccache /home/pmos/.ccache
(347620) [02:19:52] (native) % chown pmos:pmos /mnt/pmbootstrap/ccache
(347620) [02:19:52] (native) % busybox su pmos -c HOME=/home/pmos mkdir -p /home/pmos/.cache
(347620) [02:19:52] (native) % busybox su pmos -c HOME=/home/pmos ln -s /mnt/pmbootstrap/go/gocache /home/pmos/.cache/go-build
(347620) [02:19:52] (native) % chown pmos:pmos /mnt/pmbootstrap/go/gocache
(347620) [02:19:52] (native) % busybox su pmos -c HOME=/home/pmos mkdir -p /home/pmos/go/pkg
(347620) [02:19:52] (native) % busybox su pmos -c HOME=/home/pmos ln -s /mnt/pmbootstrap/go/gomodcache /home/pmos/go/pkg/mod
(347620) [02:19:52] (native) % chown pmos:pmos /mnt/pmbootstrap/go/gomodcache
(347620) [02:19:52] (native) % busybox su pmos -c HOME=/home/pmos mkdir -p /home/pmos/packages
(347620) [02:19:52] (native) % busybox su pmos -c HOME=/home/pmos ln -s /mnt/pmbootstrap/packages /home/pmos/packages/pmos
(347620) [02:19:52] (native) % chown pmos:pmos /mnt/pmbootstrap/packages
(347620) [02:19:52] (native) % busybox su pmos -c HOME=/home/pmos mkdir -p /home/pmos/.cargo/git
(347620) [02:19:52] (native) % busybox su pmos -c HOME=/home/pmos ln -s /mnt/pmbootstrap/rust/git/db /home/pmos/.cargo/git/db
(347620) [02:19:53] (native) % chown pmos:pmos /mnt/pmbootstrap/rust/git/db
(347620) [02:19:53] (native) % busybox su pmos -c HOME=/home/pmos mkdir -p /home/pmos/.cargo/registry
(347620) [02:19:53] (native) % busybox su pmos -c HOME=/home/pmos ln -s /mnt/pmbootstrap/rust/registry/cache /home/pmos/.cargo/registry/cache
(347620) [02:19:53] (native) % chown pmos:pmos /mnt/pmbootstrap/rust/registry/cache
(347620) [02:19:53] (native) % busybox su pmos -c HOME=/home/pmos ln -s /mnt/pmbootstrap/rust/registry/index /home/pmos/.cargo/registry/index
(347620) [02:19:53] (native) % chown pmos:pmos /mnt/pmbootstrap/rust/registry/index
(347620) [02:19:53] (native) % busybox su pmos -c HOME=/home/pmos ln -s /mnt/pmbootstrap/sccache /home/pmos/.cache/sccache
(347620) [02:19:53] (native) % chown pmos:pmos /mnt/pmbootstrap/sccache
(347620) [02:19:53] (native) calculate depends of qemu-aarch64 (pmbootstrap -v for details)
(347620) [02:19:54] (native) install qemu-aarch64
(347620) [02:19:54] % sudo mkfifo /home/raptor/.local/var/pmbootstrap/chroot_native/tmp/apk_progress_fifo
(347620) [02:19:54] (native) % cat /tmp/apk_progress_fifo
(347620) [02:19:54] (native) % sh -c exec 3>/tmp/apk_progress_fifo; apk --no-progress --progress-fd 3 add qemu-aarch64 --no-interactive
(347620) [02:19:54] New background process: pid=348061, output=background
(1/1) Installing qemu-aarch64 (8.2.0-r2)
Executing busybox-1.36.1-r19.trigger
OK: 14 MiB in 26 packages
(347620) [02:19:54] Register qemu binfmt (aarch64)
(347620) [02:19:54] % sudo sh -c echo ":qemu-aarch64:M::\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\xb7\x00:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/usr/bin/qemu-aarch64-static:C" > /proc/sys/fs/binfmt_misc/register
(347620) [02:19:54] % sudo mkdir -p /home/raptor/.local/var/pmbootstrap/chroot_buildroot_aarch64/usr/bin
(347620) [02:19:54] % sudo touch /home/raptor/.local/var/pmbootstrap/chroot_buildroot_aarch64/usr/bin/qemu-aarch64-static
(347620) [02:19:55] % sudo mount --bind /home/raptor/.local/var/pmbootstrap/chroot_native/usr/bin/qemu-aarch64 /home/raptor/.local/var/pmbootstrap/chroot_buildroot_aarch64/usr/bin/qemu-aarch64-static
(347620) [02:19:55] % sudo touch /home/raptor/.local/var/pmbootstrap/chroot_buildroot_aarch64/in-pmbootstrap
(347620) [02:19:55] sigfilename: sbin/apk.static.SIGN.RSA.alpine-devel@lists.alpinelinux.org-6165ee59.rsa.pub
(347620) [02:19:55] sigkey: alpine-devel@lists.alpinelinux.org-6165ee59.rsa.pub
(347620) [02:19:55] extracted: /tmp/pmbootstrapn16_m25zapk
(347620) [02:19:55] extracted: /tmp/pmbootstrapdc7eu18asig
(347620) [02:19:55] Verify apk.static signature with /nix/store/x84b4r2ixay71nrswf01r5rdiszvblzg-pmbootstrap-2.1.0/lib/python3.11/site-packages/pmb/data/keys/alpine-devel@lists.alpinelinux.org-6165ee59.rsa.pub
(347620) [02:19:55] % openssl dgst -sha1 -verify /nix/store/x84b4r2ixay71nrswf01r5rdiszvblzg-pmbootstrap-2.1.0/lib/python3.11/site-packages/pmb/data/keys/alpine-devel@lists.alpinelinux.org-6165ee59.rsa.pub -signature /tmp/pmbootstrapdc7eu18asig /tmp/pmbootstrapn16_m25zapk
Verified OK
(347620) [02:19:55] Verify the version reported by the apk.static binary (must match the package version 2.14.0-r5)
(347620) [02:19:55] % /tmp/pmbootstrapn16_m25zapk --version
apk-tools 2.14.0, compiled for x86_64.
(347620) [02:19:55] (buildroot_aarch64) install alpine-base
(347620) [02:19:55] % sudo ln -s -f /var/cache/apk /home/raptor/.local/var/pmbootstrap/chroot_buildroot_aarch64/etc/apk/cache
(347620) [02:19:55] % sudo cp /etc/resolv.conf /home/raptor/.local/var/pmbootstrap/chroot_buildroot_aarch64/etc/resolv.conf
(347620) [02:19:55] % sudo mkdir -p /home/raptor/.local/var/pmbootstrap/chroot_buildroot_aarch64/etc/apk
(347620) [02:19:55] (buildroot_aarch64) update /etc/apk/repositories
(347620) [02:19:55] % sudo sh -c echo /mnt/pmbootstrap/packages >> /home/raptor/.local/var/pmbootstrap/chroot_buildroot_aarch64/etc/apk/repositories
(347620) [02:19:55] % sudo sh -c echo http://mirror.postmarketos.org/postmarketos/master >> /home/raptor/.local/var/pmbootstrap/chroot_buildroot_aarch64/etc/apk/repositories
(347620) [02:19:55] % sudo sh -c echo http://dl-cdn.alpinelinux.org/alpine/edge/main >> /home/raptor/.local/var/pmbootstrap/chroot_buildroot_aarch64/etc/apk/repositories
(347620) [02:19:55] % sudo sh -c echo http://dl-cdn.alpinelinux.org/alpine/edge/community >> /home/raptor/.local/var/pmbootstrap/chroot_buildroot_aarch64/etc/apk/repositories
(347620) [02:19:55] % sudo sh -c echo http://dl-cdn.alpinelinux.org/alpine/edge/testing >> /home/raptor/.local/var/pmbootstrap/chroot_buildroot_aarch64/etc/apk/repositories
(347620) [02:19:55] % sudo mkdir -p /home/raptor/.local/var/pmbootstrap/tmp
(347620) [02:19:55] % sudo rm -f /home/raptor/.local/var/pmbootstrap/tmp/apk_progress_fifo
(347620) [02:19:55] % sudo mkfifo /home/raptor/.local/var/pmbootstrap/tmp/apk_progress_fifo
(347620) [02:19:55] % sudo cat /home/raptor/.local/var/pmbootstrap/tmp/apk_progress_fifo
(347620) [02:19:55] % sudo sh -c exec 3>/home/raptor/.local/var/pmbootstrap/tmp/apk_progress_fifo; /home/raptor/.local/var/pmbootstrap/apk.static --no-progress --progress-fd 3 --root /home/raptor/.local/var/pmbootstrap/chroot_buildroot_aarch64 --cache-dir /home/raptor/.local/var/pmbootstrap/cache_apk_aarch64 --initdb --arch aarch64 add alpine-base --no-interactive
(347620) [02:19:55] New background process: pid=348129, output=background
WARNING: opening /mnt/pmbootstrap/packages: No such file or directory
(1/25) Installing alpine-baselayout-data (3.5.3-r1)
(2/25) Installing musl (1.2.4_git20230717-r5)
(3/25) Installing busybox (1.36.1-r19)
Executing busybox-1.36.1-r19.post-install
(4/25) Installing busybox-binsh (1.36.1-r19)
(5/25) Installing alpine-baselayout (3.5.3-r1)
Executing alpine-baselayout-3.5.3-r1.pre-install
Executing alpine-baselayout-3.5.3-r1.post-install
(6/25) Installing ifupdown-ng (0.12.1-r4)
(7/25) Installing libcap2 (2.69-r1)
(8/25) Installing openrc (0.53-r0)
Executing openrc-0.53-r0.post-install
(9/25) Installing mdev-conf (4.6-r0)
(10/25) Installing busybox-mdev-openrc (1.36.1-r19)
(11/25) Installing alpine-conf (3.17.2-r0)
(12/25) Installing alpine-keys (2.4-r1)
(13/25) Installing alpine-release (3.20.0_alpha20231219-r0)
(14/25) Installing ca-certificates-bundle (20230506-r1)
(15/25) Installing libcrypto3 (3.1.4-r5)
(16/25) Installing libssl3 (3.1.4-r5)
(17/25) Installing ssl_client (1.36.1-r19)
(18/25) Installing zlib (1.3.1-r0)
(19/25) Installing apk-tools (2.14.0-r5)
(20/25) Installing busybox-openrc (1.36.1-r19)
(21/25) Installing busybox-suid (1.36.1-r19)
(22/25) Installing scanelf (1.3.7-r2)
(23/25) Installing musl-utils (1.2.4_git20230717-r5)
(24/25) Installing libc-utils (0.7.2-r5)
(25/25) Installing alpine-base (3.20.0_alpha20231219-r0)
Executing busybox-1.36.1-r19.trigger
OK: 13 MiB in 25 packages
(347620) [02:19:56] (buildroot_aarch64) % adduser -D pmos -u 12345
(347620) [02:19:56] (buildroot_aarch64) % busybox su pmos -c HOME=/home/pmos ln -s /mnt/pmbootstrap/abuild-config /home/pmos/.abuild
(347620) [02:19:56] (buildroot_aarch64) % chown pmos:pmos /mnt/pmbootstrap/abuild-config
(347620) [02:19:56] (buildroot_aarch64) % busybox su pmos -c HOME=/home/pmos ln -s /mnt/pmbootstrap/ccache /home/pmos/.ccache
(347620) [02:19:56] (buildroot_aarch64) % chown pmos:pmos /mnt/pmbootstrap/ccache
(347620) [02:19:56] (buildroot_aarch64) % busybox su pmos -c HOME=/home/pmos mkdir -p /home/pmos/.cache
(347620) [02:19:56] (buildroot_aarch64) % busybox su pmos -c HOME=/home/pmos ln -s /mnt/pmbootstrap/go/gocache /home/pmos/.cache/go-build
(347620) [02:19:57] (buildroot_aarch64) % chown pmos:pmos /mnt/pmbootstrap/go/gocache
(347620) [02:19:57] (buildroot_aarch64) % busybox su pmos -c HOME=/home/pmos mkdir -p /home/pmos/go/pkg
(347620) [02:19:57] (buildroot_aarch64) % busybox su pmos -c HOME=/home/pmos ln -s /mnt/pmbootstrap/go/gomodcache /home/pmos/go/pkg/mod
(347620) [02:19:57] (buildroot_aarch64) % chown pmos:pmos /mnt/pmbootstrap/go/gomodcache
(347620) [02:19:57] (buildroot_aarch64) % busybox su pmos -c HOME=/home/pmos mkdir -p /home/pmos/packages
(347620) [02:19:57] (buildroot_aarch64) % busybox su pmos -c HOME=/home/pmos ln -s /mnt/pmbootstrap/packages /home/pmos/packages/pmos
(347620) [02:19:57] (buildroot_aarch64) % chown pmos:pmos /mnt/pmbootstrap/packages
(347620) [02:19:57] (buildroot_aarch64) % busybox su pmos -c HOME=/home/pmos mkdir -p /home/pmos/.cargo/git
(347620) [02:19:57] (buildroot_aarch64) % busybox su pmos -c HOME=/home/pmos ln -s /mnt/pmbootstrap/rust/git/db /home/pmos/.cargo/git/db
(347620) [02:19:57] (buildroot_aarch64) % chown pmos:pmos /mnt/pmbootstrap/rust/git/db
(347620) [02:19:57] (buildroot_aarch64) % busybox su pmos -c HOME=/home/pmos mkdir -p /home/pmos/.cargo/registry
(347620) [02:19:58] (buildroot_aarch64) % busybox su pmos -c HOME=/home/pmos ln -s /mnt/pmbootstrap/rust/registry/cache /home/pmos/.cargo/registry/cache
(347620) [02:19:58] (buildroot_aarch64) % chown pmos:pmos /mnt/pmbootstrap/rust/registry/cache
(347620) [02:19:58] (buildroot_aarch64) % busybox su pmos -c HOME=/home/pmos ln -s /mnt/pmbootstrap/rust/registry/index /home/pmos/.cargo/registry/index
(347620) [02:19:58] (buildroot_aarch64) % chown pmos:pmos /mnt/pmbootstrap/rust/registry/index
(347620) [02:19:58] (buildroot_aarch64) % busybox su pmos -c HOME=/home/pmos ln -s /mnt/pmbootstrap/sccache /home/pmos/.cache/sccache
(347620) [02:19:58] (buildroot_aarch64) % chown pmos:pmos /mnt/pmbootstrap/sccache
(347620) [02:19:58] (buildroot_aarch64) calculate depends of abuild (pmbootstrap -v for details)
(347620) [02:19:59] (buildroot_aarch64) install abuild
(347620) [02:19:59] % sudo mkfifo /home/raptor/.local/var/pmbootstrap/chroot_buildroot_aarch64/tmp/apk_progress_fifo
(347620) [02:19:59] (buildroot_aarch64) % cat /tmp/apk_progress_fifo
(347620) [02:19:59] (buildroot_aarch64) % sh -c exec 3>/tmp/apk_progress_fifo; apk --no-progress --progress-fd 3 add abuild --no-interactive
(347620) [02:19:59] New background process: pid=348390, output=background
(1/13) Installing libattr (2.5.2-r0)
(2/13) Installing attr (2.5.2-r0)
(3/13) Installing libcap-getcap (2.69-r1)
(4/13) Installing fakeroot (1.33-r0)
(5/13) Installing libgcc (13.2.1_git20231014-r0)
(6/13) Installing libstdc++ (13.2.1_git20231014-r0)
(7/13) Installing lzip (1.23-r1)
(8/13) Installing openssl (3.1.4-r5)
(9/13) Installing patch (2.7.6-r10)
(10/13) Installing pkgconf (2.1.0-r0)
(11/13) Installing libacl (2.3.2-r0)
(12/13) Installing tar (1.35-r2)
(13/13) Installing abuild (3.12.0-r2)
Executing abuild-3.12.0-r2.pre-install
Executing busybox-1.36.1-r19.trigger
OK: 19 MiB in 38 packages
(347620) [02:20:02] (buildroot_aarch64) % chown root:abuild /var/cache/distfiles
(347620) [02:20:02] (buildroot_aarch64) % chmod g+w /var/cache/distfiles
(347620) [02:20:02] (buildroot_aarch64) % adduser pmos abuild
(347620) [02:20:03] (buildroot_aarch64) calculate depends of abuild, build-base, ccache, git (pmbootstrap -v for details)
(347620) [02:20:03] so:libisl.so.23: has multiple providers (isl25, isl26), picked shortest: isl25
(347620) [02:20:03] (buildroot_aarch64) install abuild build-base ccache git
(347620) [02:20:03] % sudo rm -f /home/raptor/.local/var/pmbootstrap/chroot_buildroot_aarch64/tmp/apk_progress_fifo
(347620) [02:20:03] % sudo mkfifo /home/raptor/.local/var/pmbootstrap/chroot_buildroot_aarch64/tmp/apk_progress_fifo
(347620) [02:20:03] (buildroot_aarch64) % cat /tmp/apk_progress_fifo
(347620) [02:20:03] (buildroot_aarch64) % sh -c exec 3>/tmp/apk_progress_fifo; apk --no-progress --progress-fd 3 add abuild build-base ccache git --no-interactive
(347620) [02:20:03] New background process: pid=348473, output=background
(1/33) Installing jansson (2.14-r4)
(2/33) Installing zstd-libs (1.5.5-r8)
(3/33) Installing binutils (2.41-r0)
(4/33) Installing libmagic (5.45-r1)
(5/33) Installing file (5.45-r1)
(6/33) Installing libgomp (13.2.1_git20231014-r0)
(7/33) Installing libatomic (13.2.1_git20231014-r0)
(8/33) Installing gmp (6.3.0-r0)
(9/33) Installing isl26 (0.26-r1)
(10/33) Installing mpfr4 (4.2.1-r0)
(11/33) Installing mpc1 (1.3.1-r1)
(12/33) Installing gcc (13.2.1_git20231014-r0)
(13/33) Installing libstdc++-dev (13.2.1_git20231014-r0)
(14/33) Installing musl-dev (1.2.4_git20230717-r5)
(15/33) Installing libc-dev (0.7.2-r5)
(16/33) Installing g++ (13.2.1_git20231014-r0)
(17/33) Installing make (4.4.1-r2)
(18/33) Installing fortify-headers (1.1-r3)
(19/33) Installing build-base (0.5-r3)
(20/33) Installing hiredis (1.2.0-r0)
(21/33) Installing libxxhash (0.8.2-r2)
(22/33) Installing ccache (4.9-r0)
(23/33) Installing ca-certificates (20230506-r1)
(24/33) Installing brotli-libs (1.1.0-r1)
(25/33) Installing c-ares (1.26.0-r0)
(26/33) Installing libunistring (1.1-r2)
(27/33) Installing libidn2 (2.3.7-r0)
(28/33) Installing nghttp2-libs (1.59.0-r0)
(29/33) Installing libpsl (0.21.5-r0)
(30/33) Installing libcurl (8.5.0-r1)
(31/33) Installing libexpat (2.5.0-r2)
(32/33) Installing pcre2 (10.42-r2)
(33/33) Installing git (2.43.0-r2)
Executing busybox-1.36.1-r19.trigger
Executing ca-certificates-20230506-r1.trigger
OK: 234 MiB in 71 packages
(347620) [02:20:12] (buildroot_aarch64) % cp /tmp/gzip_wrapper.sh /usr/local/bin/gzip
(347620) [02:20:12] (buildroot_aarch64) % chmod +x /usr/local/bin/gzip
(347620) [02:20:12] (buildroot_aarch64) % sed -i -e s/^CLEANUP=.*/CLEANUP=''/ /etc/abuild.conf
(347620) [02:20:12] (buildroot_aarch64) % sed -i -e s/^ERROR_CLEANUP=.*/ERROR_CLEANUP=''/ /etc/abuild.conf
(347620) [02:20:12] (native) calculate depends of ccache-cross-symlinks, gcc-aarch64, g++-aarch64, crossdirect (pmbootstrap -v for details)
(347620) [02:20:12] so:libisl.so.23: has multiple providers (isl25, isl26), picked shortest: isl25
(347620) [02:20:12] (native) install ccache-cross-symlinks gcc-aarch64 g++-aarch64 crossdirect
(347620) [02:20:12] % sudo rm -f /home/raptor/.local/var/pmbootstrap/chroot_native/tmp/apk_progress_fifo
(347620) [02:20:12] % sudo mkfifo /home/raptor/.local/var/pmbootstrap/chroot_native/tmp/apk_progress_fifo
(347620) [02:20:12] (native) % cat /tmp/apk_progress_fifo
(347620) [02:20:12] (native) % sh -c exec 3>/tmp/apk_progress_fifo; apk --no-progress --progress-fd 3 add ccache-cross-symlinks gcc-aarch64 g++-aarch64 crossdirect --no-interactive
(347620) [02:20:12] New background process: pid=348654, output=background
(1/19) Installing libgcc (13.2.1_git20231014-r0)
(2/19) Installing hiredis (1.2.0-r0)
(3/19) Installing libstdc++ (13.2.1_git20231014-r0)
(4/19) Installing libxxhash (0.8.2-r2)
(5/19) Installing zstd-libs (1.5.5-r8)
(6/19) Installing ccache (4.9-r0)
(7/19) Installing ccache-cross-symlinks (3-r0)
(8/19) Installing crossdirect (5.1.0-r0)
(9/19) Installing libstdc++-dev-aarch64 (13.2.1_git20231014-r0)
(10/19) Installing jansson (2.14-r4)
(11/19) Installing binutils-aarch64 (2.41-r1)
(12/19) Installing gmp (6.3.0-r0)
(13/19) Installing mpfr4 (4.2.1-r0)
(14/19) Installing mpc1 (1.3.1-r1)
(15/19) Installing isl26 (0.26-r1)
(16/19) Installing gcc-aarch64 (13.2.1_git20231014-r0)
(17/19) Installing musl-dev (1.2.4_git20230717-r5)
(18/19) Installing libc-dev (0.7.2-r5)
(19/19) Installing g++-aarch64 (13.2.1_git20231014-r0)
Executing busybox-1.36.1-r19.trigger
OK: 228 MiB in 45 packages
(347620) [02:20:14] (native) calculate depends of perl, gmp-dev, mpc1-dev, mpfr-dev, elfutils-dev, bash, flex, bison, zstd, sed, installkernel, bc, linux-headers, linux-firmware-any, openssl-dev>3, mawk, diffutils, findutils, zstd, pahole, python3, gcc>=13.1.1_git20230624, ncurses-dev (pmbootstrap -v for details)
(347620) [02:20:14] linux-firmware-any: picked provider(s) with highest priority 2: linux-firmware
(347620) [02:20:14] (native) install perl gmp-dev mpc1-dev mpfr-dev elfutils-dev bash flex bison zstd sed installkernel bc linux-headers linux-firmware-any openssl-dev>3 mawk diffutils findutils zstd pahole python3 gcc>=13.1.1_git20230624 ncurses-dev
(347620) [02:20:14] % sudo rm -f /home/raptor/.local/var/pmbootstrap/chroot_native/tmp/apk_progress_fifo
(347620) [02:20:14] % sudo mkfifo /home/raptor/.local/var/pmbootstrap/chroot_native/tmp/apk_progress_fifo
(347620) [02:20:14] (native) % cat /tmp/apk_progress_fifo
(347620) [02:20:14] (native) % sh -c exec 3>/tmp/apk_progress_fifo; apk --no-progress --progress-fd 3 add perl gmp-dev mpc1-dev mpfr-dev elfutils-dev bash flex bison zstd sed installkernel bc linux-headers linux-firmware-any 'openssl-dev>3' mawk diffutils findutils zstd pahole python3 'gcc>=13.1.1_git20230624' ncurses-dev --no-interactive
(347620) [02:20:14] New background process: pid=348732, output=background
thread 'main' panicked at src/log/syslog.rs:36:20:
range end index 1022 out of range for slice of length 967
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
^C
Caught KeyboardInterrupt, exiting …

https://github.com/memorysafety/sudo-rs/blob/main/src/log/syslog.rs#L36

To Reproduce

Hard to reproduce

Expected behavior

Do not complicate development

Done behavior

Switch back on sudo and report this issue

Environment (please complete the following information)

squell commented 7 months ago

Thanks for the report!

marlonbaeten commented 7 months ago

I can reproduce this. The SysLogWriter in src/log/syslog.rs incorrectly handles large messages. I will make a PR to fix this.

squell commented 7 months ago

Seems like the write_str assumed that self.cursor is always 0 upon entry; probably introduced when this was function was moved into an impl Write. Interesting bug. We should probably consider rewriting this code in a more Rust-style (something taking an iterator of Char and turning that into Lines iterator or something) in the future, but better to just patch it. Line 53 in syslog.rs looks suspect to me (shouldn't that be let mut mid = LIMIT - self.cursor?)

squell commented 7 months ago

Note, in a non-memory safe language this would have been a nice buffer overflow, so I'm slapping the appropriate label on it :)

squell commented 7 months ago

Fixed due to #825.

Kreyren commented 7 months ago

CC @nbraud (The sudo-rs package maintainer in NixOS) - Please backport to stable release, thanks!

nbraud commented 4 months ago

Sorry @Kreyren, I wasn't around due to health issues, so I'm only catching up to things now. I agree this should still be fixed in NixOS 23.11 though, and initiated a backport PR

nbraud commented 4 months ago

PS: Done :tada:

Kreyren commented 4 months ago

Sorry @Kreyren, I wasn't around due to health issues, so I'm only catching up to things now. I agree this should still be fixed in NixOS 23.11 though, and initiated a backport PR

np i ain't doing great myself rn either x.x Get well soon and thanks for working on this!

nbraud commented 3 months ago

np i ain't doing great myself rn either x.x Get well soon and thanks for working on this!

Thanks, and hopefully things look up for you :purple_heart: