v1.3.6
v1.3.6 — review hardening
Stabilitäts-, Sicherheits-, Performance- und Konformitätsfixes aus einem vollständigen Code-Review.
Security / Stabilität
- RTSP: fd-Leak bei wiederholtem SETUP behoben (unauth. DoS)
- OSD-Rasterizer: NULL-Check des Coverage-Puffers (Crash unter Speicherdruck)
- gen_sdp: snprintf-Akkumulation gegen size_t-Underflow abgesichert
- auth: konstantzeitige Credential-Vergleiche
- httpd: negatives Content-Length abgewiesen; Snapshot/MJPEG-Header geklammert
- config: runtime-mutable Strings gegen Torn-Reads gesperrt
Performance
- hub_publish baut das Paket vor dem Lock (kein Publisher-Stall)
- OSD-Scanline integer-begrenzt (vorher O(bbox) Soft-Float)
- Timelapse/Snapshot interval-gegatet (Encoder nicht mehr 24/7 aktiv)
- Piggyback-JPEG encodet mit Drain-Rate (kein ~80% Verschnitt)
- fMP4: persistenter Per-Connection-Puffer (weniger Heap-Churn)
- fanqueue: signal nach unlock; bei Overflow bis zum Keyframe durchdroppen
A/V-Konformität
- AAC über RTP: korrekte Per-Fragment-AU-Header (RFC 3640)
- fMP4: feste 1024-Sample-AAC-Dauer (kein MSE-A/V-Drift)
- NAL-Iterator: Zero-Length-NALs überspringen statt abbrechen
Speicher / Robustheit
- SRT: Client-Cap; reduzierte Fanqueue-Tiefe (begrenzter Pinned-RAM)
- record: lstat + Depth-Bound beim Prunen; RING_MAX_BYTES überschreibbar
- OSD: Font-Cache; retired-Puffer im Idle freigeben; /proc-Werte gecacht