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:
@@ -46,8 +46,11 @@ for EINTRAG in "${VENVS[@]}"; do
|
||||
ZEILEN+=("$NAME: venv fehlt/unlesbar unter $VENV — bitte prüfen")
|
||||
continue
|
||||
fi
|
||||
# Veraltete Pakete (Anzahl reicht fürs Lagebild)
|
||||
ALT_N="$("$AUDIT_VENV/bin/pip" list --outdated --path "$SP" 2>/dev/null | tail -n +3 | grep -c '' || echo 0)"
|
||||
# Veraltete Pakete (Anzahl reicht fürs Lagebild). grep -c druckt IMMER genau eine
|
||||
# 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)
|
||||
"$AUDIT_VENV/bin/pip" list --format=freeze --path "$SP" 2>/dev/null \
|
||||
| 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
|
||||
CVE_N=0
|
||||
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
|
||||
CVE_DETAILS="${CVE_DETAILS}
|
||||
== ${NAME} ==
|
||||
|
||||
Reference in New Issue
Block a user