CI: Work around segfaults in ASan/MSan jobs

Referring to actions/runner-images#9491, the sanitizers in LLVM 14 that
ships with Ubuntu 22.04 are incompatible with high-entropy address space
layout randomization (ASLR), which is enabled in the GitHub runners via
their use of a newer kernel than Ubuntu 22.04 uses.
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index eb482df..4c0cda2 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -94,6 +94,7 @@
       - name: Set up build
         run: |
           sudo apt install -y nasm
+          sudo sysctl vm.mmap_rnd_bits=28
       - name: Build
         env:
           ASAN_OPTIONS: "detect_leaks=1 symbolize=1"
@@ -182,6 +183,9 @@
     steps:
       - name: Check out code
         uses: actions/checkout@v4
+      - name: Set up build
+        run: |
+          sudo sysctl vm.mmap_rnd_bits=28
       - name: Build
         env:
           CTEST_OUTPUT_ON_FAILURE: 1