merchant

Merchant backend to process payments, run by merchants
Log | Files | Refs | Submodules | README | LICENSE

commit 7e6fa590cc4d5ca53615bbe7889a57d2fcbb5a96
parent dde34d272a1221a1a62c5a935fa29434e12b236c
Author: Florian Dold <dold@taler.net>
Date:   Thu, 20 Aug 2026 19:52:48 +0200

backenddb: harden generated SQL preprocessing

Diffstat:
Msrc/backenddb/sql-schema/meson.build | 3+++
Msrc/backenddb/sql-schema/preprocess-sql.sh | 22++++++++++++++++++----
2 files changed, 21 insertions(+), 4 deletions(-)

diff --git a/src/backenddb/sql-schema/meson.build b/src/backenddb/sql-schema/meson.build @@ -158,6 +158,9 @@ custom_target( 'gen-merchantdb-merchant_0036.sql', input: [ 'merchant-0036.sql.in', + '../create_tables.sql', + '../pg_create_instance_schema.sql', + '../pg_fixup_instance_schema.sql', 'merchant-0036-init.sql.fragment', 'merchant-0036-copy.sql.fragment', 'merchant-0036-drop.sql.fragment', diff --git a/src/backenddb/sql-schema/preprocess-sql.sh b/src/backenddb/sql-schema/preprocess-sql.sh @@ -39,12 +39,26 @@ cat <<'EOF' -- EOF -echo "-- generated by" $(basename $0) -for n in $@ +echo "-- generated by" "$(basename "$0")" +for n in "$@" do - echo "-- generated from" $(basename $n) + echo "-- generated from" "$(basename "$n")" done echo "--" # Pre-process with cpp and remove SQL comments and empty lines -gcc -I $(dirname $1) -E -P -undef - < $1 2>/dev/null | sed -e "s/--.*//" | awk 'NF' +preprocessed=$(mktemp "${TMPDIR:-/tmp}/merchant-sql.XXXXXX") +trap 'rm -f "$preprocessed"' 0 +trap 'exit 1' HUP INT TERM + +gcc -I "$(dirname "$1")" \ + -E -P -undef - \ + < "$1" \ + > "$preprocessed" \ + 2>/dev/null + +awk '{ + sub(/--.*/, "") + if (NF) + print +}' "$preprocessed"