Venv-Audit: grep -c Zaehl-Bug (doppelte Zeile -> Rechenfehler)

Erstlauf-Befund: "grep -c ... || echo 0" haengte bei 0 Treffern eine zweite
Zeile an (grep -c druckt selbst schon "0") -> "integer expected" + kaputte
Summe. || echo 0 raus, Ergebnis auf Ziffern reduziert. Fund selbst war echt:
1 CVE in mem0, 27 Pakete veraltet.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Hitonabi
2026-07-17 17:03:10 +02:00
parent e556dcc853
commit 7b826f66c4
+7 -3
View File
@@ -46,8 +46,11 @@ for EINTRAG in "${VENVS[@]}"; do
ZEILEN+=("$NAME: venv fehlt/unlesbar unter $VENV — bitte prüfen") ZEILEN+=("$NAME: venv fehlt/unlesbar unter $VENV — bitte prüfen")
continue continue
fi fi
# Veraltete Pakete (Anzahl reicht fürs Lagebild) # Veraltete Pakete (Anzahl reicht fürs Lagebild). grep -c druckt IMMER genau eine
ALT_N="$("$AUDIT_VENV/bin/pip" list --outdated --path "$SP" 2>/dev/null | tail -n +3 | grep -c '' || echo 0)" # Zahl → KEIN "|| echo 0" (das hängte eine zweite Zeile an → Rechenfehler, Befund
# 17.07.); zur Sicherheit auf Ziffern reduzieren.
ALT_N="$("$AUDIT_VENV/bin/pip" list --outdated --path "$SP" 2>/dev/null | tail -n +3 | grep -c '.')"
ALT_N="${ALT_N//[!0-9]/}"; ALT_N="${ALT_N:-0}"
# CVE-Prüfung gegen den eingefrorenen Stand (lokale Pfade/Editables ausfiltern) # CVE-Prüfung gegen den eingefrorenen Stand (lokale Pfade/Editables ausfiltern)
"$AUDIT_VENV/bin/pip" list --format=freeze --path "$SP" 2>/dev/null \ "$AUDIT_VENV/bin/pip" list --format=freeze --path "$SP" 2>/dev/null \
| grep -vE ' @ |^-e |^#' > "$TMP/$NAME.txt" || true | grep -vE ' @ |^-e |^#' > "$TMP/$NAME.txt" || true
@@ -57,7 +60,8 @@ for EINTRAG in "${VENVS[@]}"; do
if printf '%s' "$AUDIT_OUT" | grep -qi 'No known vulnerabilities'; then if printf '%s' "$AUDIT_OUT" | grep -qi 'No known vulnerabilities'; then
CVE_N=0 CVE_N=0
else else
CVE_N="$(printf '%s\n' "$AUDIT_OUT" | grep -cE '^[a-zA-Z0-9_.-]+ +[0-9][^ ]* +(GHSA|PYSEC|CVE)' || echo 0)" CVE_N="$(printf '%s\n' "$AUDIT_OUT" | grep -cE '^[a-zA-Z0-9_.-]+ +[0-9][^ ]* +(GHSA|PYSEC|CVE)')"
CVE_N="${CVE_N//[!0-9]/}"; CVE_N="${CVE_N:-0}"
if [ "${CVE_N:-0}" -gt 0 ]; then if [ "${CVE_N:-0}" -gt 0 ]; then
CVE_DETAILS="${CVE_DETAILS} CVE_DETAILS="${CVE_DETAILS}
== ${NAME} == == ${NAME} ==