postgres-github.git / summary / log / commit / refs
commit 4a18907b412e77684bf888ad6d1b4844d220196a
Author: Andrew Dunstan <andrew@dunslane.net>
Date: Thu Apr 09 18:20:40 2026 +0000
Add built-in fuzzing harnesses for security testing.
Add 12 libFuzzer-compatible fuzzing harnesses behind a new -Dfuzzing=true
meson option. Each harness implements LLVMFuzzerTestOneInput() and can
also be built in standalone mode (reading from files) when no fuzzer
engine is detected.
Frontend targets (no backend dependencies):
fuzz_json - non-incremental JSON parser (pg_parse_json)
fuzz_json_incremental - incremental/chunked JSON parser
fuzz_conninfo - libpq connection string parser (PQconninfoParse)
fuzz_pglz - PGLZ decompressor (pglz_decompress)
fuzz_unescapebytea - libpq bytea unescape (PQunescapeBytea)
fuzz_b64decode - base64 decoder (pg_b64_decode)
fuzz_saslprep - SASLprep normalization (pg_saslprep)
fuzz_parsepgarray - array literal parser (parsePGArray)
fuzz_pgbench_expr - pgbench expression parser (via Bison/Flex)
Backend targets (link against postgres_lib):
fuzz_rawparser - SQL raw parser (raw_parser)
fuzz_regex - regex engine (pg_regcomp/pg_regexec)
fuzz_typeinput - type input functions (numeric/date/timestamp/interval)
[parent: 2b5ba2a0a141]