fix(restore): freshness check pg_header_ok returns 1 on corrupt dump

Negativ-Test 2026-06-03: korrupter mealie.dump wurde nicht erkannt,
weil der Docker-Fallback-Pfad nach gescheitertem pg_restore --list
zu return 2 (unchecked) durchfiel statt return 1 (invalid).

Fix: explizites if/else statt &&-Kette, damit fehlgeschlagene
Header-Validierung return 1 liefert und als DUMP_HEADER_INVALID
in den Critical-Zaehler geht.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
2026-06-03 13:47:08 +02:00
parent 8a4df239fa
commit 5e52316fab
+6 -2
View File
@@ -38,9 +38,13 @@ pg_header_ok() {
if ! command -v pg_restore >/dev/null 2>&1; then
# ohne Host-pg_restore: in laufendem Postgres-Container probieren
if command -v docker >/dev/null 2>&1 && docker inspect postgresql17 >/dev/null 2>&1; then
docker exec -i postgresql17 pg_restore --list </"$path" >/dev/null 2>&1 && return 0
if docker exec -i postgresql17 pg_restore --list < "$path" >/dev/null 2>&1; then
return 0 # Header valide
else
return 1 # Header korrupt
fi
fi
return 2 # nicht pruefbar
return 2 # nicht pruefbar (kein pg_restore, kein Container)
fi
pg_restore --list "$path" >/dev/null 2>&1
}