Skip to content

v0.25.1 — audit fixes

Choose a tag to compare

@mhoogenbosch mhoogenbosch released this 08 Oct 07:28
· 26 commits to master since this release
a245e0a

English

Audit round (security + robustness), no new features. Companion: ha-pipup v1.24.1.

  • A failed port bind no longer leaves the TV offline: the service stays up and the 30 s watchdog retries :7979 until it binds (it used to stop itself, which START_STICKY does not undo).
  • Install button keeps its "Installing PiPup vX" popup (0.24.0 regression).
  • Re-sending a popup with a new callback URL updates it in place again, so a camera stream with buttons no longer restarts on every re-send.
  • Re-send during the 180 ms exit animation keeps the popup instead of removing it right after answering 200.
  • Push queue is bounded (16, oldest dropped, no retry on 4xx or when a newer push waits): a controller outage no longer causes minutes of stale, in-order pushes afterwards.
  • Self-update cleanup: failed or abandoned installs drop their PackageInstaller session; a truncated download is refused instead of committed; every refusal is visible in /state.update.error.
  • Service stop removes its popups; /state is corrected when a bringToFront redraw fails; the update announcement is only marked shown once it is on screen.
  • Multipart /notify limits: bodies > 32 MB and images > 32 MP are refused, larger images are downsampled (a crafted image could take the whole process down).
  • WebView: no file or content-provider access from web/whep pages. Callback URL (single-use token) is redacted in logcat and the /notify reply.

Nederlands

Auditronde (security + robuustheid), geen nieuwe functies. Hoort bij ha-pipup v1.24.1.

  • Een mislukte poortbinding laat de tv niet meer offline: de service blijft draaien en de 30 s-watchdog probeert :7979 opnieuw tot het lukt (hij stopte zichzelf, en dat maakt START_STICKY niet ongedaan).
  • De Install-knop houdt zijn "Installing PiPup vX"-popup (regressie uit 0.24.0).
  • Opnieuw sturen met een nieuwe callback-URL werkt weer in-place bij, dus een camerastream met knoppen herstart niet meer bij elke herhaling.
  • Opnieuw sturen tijdens de 180 ms-uitanimatie houdt de popup in plaats van hem direct na de 200 te verwijderen.
  • Push-wachtrij is begrensd (16, oudste vervalt, geen herhaling bij 4xx of als er al een nieuwere push wacht): een storing van de controller geeft daarna geen minutenlange stroom verouderde pushes meer.
  • Zelf-update opruimen: mislukte of opgegeven installaties laten hun PackageInstaller-sessie los; een afgebroken download wordt geweigerd in plaats van gecommit; elke weigering staat in /state.update.error.
  • Stoppen van de service haalt de popups weg; /state klopt weer als een bringToFront-herteken mislukt; de update-aankondiging telt pas als getoond zodra hij op het scherm staat.
  • Limieten voor multipart /notify: bodies > 32 MB en beelden > 32 MP worden geweigerd, grotere beelden worden verkleind (een geprepareerd beeld kon het hele proces neerhalen).
  • WebView: geen bestands- of content-provider-toegang vanuit web/whep-pagina's. Callback-URL (eenmalig token) is weggelaten uit logcat en het /notify-antwoord.