volatile needs to be casted away behind a [[gnu::noipa]] function, to
make that invisible to the compiler. Otherwise, the compiler can see
that it is being discarded, and is free to abuse Undefined Behavior.
Closes: <https://github.com/shadow-maint/shadow/issues/1028>
Reported-by: Chris Hofstaedtler <zeha@debian.org>
Tested-by: Chris Hofstaedtler <zeha@debian.org>
Reviewed-by: Chris Hofstaedtler <zeha@debian.org>
Signed-off-by: Alejandro Colomar <alx@kernel.org>
Cherry-picked-from: 6e57238bf9 ("tests/unit/test_xasprintf.c: Fix use of volatile pointer")
Cc: Serge Hallyn <serge@hallyn.com>
Signed-off-by: Alejandro Colomar <alx@kernel.org>
This testsuite is NOT SECURE: it will temporarily change your passwords file with known passwords. You should run it on a chroot, or on a secured dedicated system. To test a Debian system: $ mkdir sid-chroot $ sudo debootstrap sid sid-chroot/ http://deb.debian.org/debian/ edit or copy a sources.list $ sudo cp /etc/apt/sources.list sid-chroot/etc/apt/ edit or copy a resolv.conf $ sudo cp /etc/resolv.conf sid-chroot/etc/ $ su - root -c "chroot sid-chroot/ /bin/bash" # mount -t proc proc /proc # mount -t devpts devpts /dev/pts # aptitude update # aptitude install expect # cd /dev ; mknod --mode=666 /dev/ptmx c 5 2