From c102ab995f9a86a77e40b9a952b2b23c0bd7de74 Mon Sep 17 00:00:00 2001 From: "Douglas B. Rumbaugh" Date: Sat, 6 Jun 2026 13:44:00 -0400 Subject: Fuzzing with associated fixes --- bib-extract | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) (limited to 'bib-extract') diff --git a/bib-extract b/bib-extract index 297588a..ac0363d 100755 --- a/bib-extract +++ b/bib-extract @@ -23,7 +23,10 @@ aux=$1 shift [ -r "$aux" ] || { printf 'bib-extract: cannot read %s\n' "$aux" >&2; exit 1; } -keys=$(awk ' +keyfile=$(mktemp) || exit 1 +trap 'rm -f "$keyfile"' EXIT INT TERM + +awk ' # classic bibtex: \citation{key,key,...} { line = $0 @@ -46,10 +49,10 @@ keys=$(awk ' print s line = substr(line, RSTART + RLENGTH) } - }' "$aux" | sort -u | paste -sd, -) + }' "$aux" | sort -u > "$keyfile" -[ -n "$keys" ] || exit 0 +[ -s "$keyfile" ] || exit 0 # a key of "*" (from \nocite{*}) selects the whole database -exec awk -f "$LIB/bib-parse.awk" -f "$LIB/bib-canon.awk" \ - -f "$LIB/bib-select.awk" -v keys="$keys" -v invert=0 "$@" +awk -f "$LIB/bib-parse.awk" -f "$LIB/bib-canon.awk" \ + -f "$LIB/bib-select.awk" -v keyfile="$keyfile" -v invert=0 "$@" -- cgit v1.2.3