• v0.3.7 908fda8240

    fix: OTA-Log im Recovery-Skip-Pfad nicht mehr als Fehlschlag ausgeben

    ninharp released this 2026-09-13 00:29:12 +02:00 | 130 commits to main since this release

    Auf dem Überspring-Pfad (Recovery lehnt ein Image ab, weil es bereits die
    laufende Version trägt) bleibt s_error absichtlich NULL, landete aber
    trotzdem in printf("ota: failed (rc=%d, %s)\r\n", rc, s_error) - ein
    Nullzeiger an %s ist undefiniertes Verhalten und wurde bislang nur zufällig
    von newlib als "(null)" abgefangen. Zusätzlich widersprach die Meldung
    "failed" der direkt folgenden Zeile "recovery: image already up to date,
    continuing normal boot".

    ota_task() unterscheidet jetzt explizit zwischen dem Skip-Fall (eigene,
    ehrliche "ota: skipped"-Zeile) und dem echten Fehlschlag (bestehende
    "ota: failed"-Zeile, weiterhin mit dem "download"-Fallback für ein leeres
    s_error). rc bleibt reiner Diagnosewert im Log, da das SDK den Transfer in
    beiden Fällen abbricht, sobald der Trailer-Hook das Image ablehnt.

    Restliche Leser von s_error/nl_ota_last_error() (nl_recovery.c, nl_api.c)
    waren bereits NULL-sicher und mussten nicht angepasst werden.

    Co-Authored-By: Claude Sonnet 5 noreply@anthropic.com

    Downloads