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:
@@ -38,9 +38,13 @@ pg_header_ok() {
|
|||||||
if ! command -v pg_restore >/dev/null 2>&1; then
|
if ! command -v pg_restore >/dev/null 2>&1; then
|
||||||
# ohne Host-pg_restore: in laufendem Postgres-Container probieren
|
# 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
|
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
|
fi
|
||||||
return 2 # nicht pruefbar
|
return 2 # nicht pruefbar (kein pg_restore, kein Container)
|
||||||
fi
|
fi
|
||||||
pg_restore --list "$path" >/dev/null 2>&1
|
pg_restore --list "$path" >/dev/null 2>&1
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user