$ docker run --rm --name validator-libsodium-usage-php83-r21-sodium-memzero-clears-buffer-2732 -t --mount type=bind,src=/tmp/validator-status-libsodium-usage-php83-r21-sodium-memzero-clears-buffer,dst=/validator/status validator-libsodium-shared bash -lc 'set -euo pipefail /validator/tests/_shared/install_override_debs.sh exec /validator/tests/_shared/run_library_tests.sh "$@"' validator-testcase libsodium usage-php83-r21-sodium-memzero-clears-buffer -- bash -c 'PS4=$1; shift; set -x; source "$@"' validator-xtrace '__VALIDATOR_XTRACE__ ' /validator/tests/libsodium/tests/cases/usage/usage-php83-r21-sodium-memzero-clears-buffer.sh no override packages found; continuing with apt originals $buf = random_bytes(32); if (strlen($buf) !== 32) { fwrite(STDERR, "buf_len=".strlen($buf)."\n"); exit(1); } $preNonZero = false; for ($i = 0; $i < 32; $i++) { if (ord($buf[$i]) !== 0) { $preNonZero = true; break; } } if (!$preNonZero) { fwrite(STDERR, "random returned all zeros\n"); exit(1); } sodium_memzero($buf); // PHP sodium_memzero wipes the backing buffer; the variable reads as NULL afterwards. if (strlen($buf) !== 0) { fwrite(STDERR, "post len=".strlen($buf)."\n"); exit(1); } if (!is_null($buf)) { fwrite(STDERR, "expected null got ".var_export($buf, true)."\n"); exit(1); } echo "ok memzero buf_is_null=", (is_null($buf) ? "yes" : "no"), PHP_EOL; ' ok memzero buf_is_null=yes