diff --git a/src/sso/test/fuzz.sh b/src/sso/test/fuzz.sh
index 745028efabd157ccb8bd4c4f178be4ddc78951c0..779896dfe694b050d65dcbda64a3142a4e6f75be 100755
--- a/src/sso/test/fuzz.sh
+++ b/src/sso/test/fuzz.sh
@@ -1,10 +1,24 @@
 #!/bin/sh
+#
+# Compile libsso with libfuzz, using a specific fuzz entry point.
+# Useful libfuzz args include -jobs=N -workers=N for parallelization.
+#
+# Note: on Debian this probably requires CC=clang-11.
+#
 
 dir=$(dirname "$0")
 dir=${dir:-.}
+top_srcdir=${dir}/..
+
+fuzz_src="$1"
+if [ -z "$fuzz_src" ]; then
+    echo "Usage: $0 <target_source_file>" >&2
+    exit 2
+fi
+shift
 
 set -e
-make -C ${dir}/.. clean
-make -C ${dir}/.. CC=${CC:-clang} CFLAGS='-g -fsanitize=address,fuzzer-no-link'
-${CC:-clang} -I${dir}/.. -g -fsanitize=address,fuzzer -o fuzz "$@" -L${dir}/../.libs -lsso
-LD_LIBRARY_PATH=${dir}/../.libs ./fuzz
+make -C ${top_srcdir} clean
+make -C ${top_srcdir} CC=${CC:-clang} CFLAGS='-g -fsanitize=address,fuzzer-no-link'
+${CC:-clang} -I${top_srcdir} -g -fsanitize=address,fuzzer -o fuzz "${fuzz_src}" -L${top_srcdir}/.libs -lsso
+LD_LIBRARY_PATH=${top_srcdir}/.libs ./fuzz "$@"