fix(shm): make rings work safely across app and coreaudiod users
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 45/100
- Tipo di issue
- Bug
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Tranquilla
- Stack tecnologico
- macos, rust
- Ambito
- audio-video-rtc, operating-systems
Direzione di ricerca
Iniziare in mars-hal::shm_backend e analizzare come vengono creati e aperti gli anelli di memoria condivisa POSIX. Innanzitutto convalidare i permessi richiesti quando un plug-in HAL macOS viene eseguito sotto coreaudiod o DriverHelper, quindi definire lo spazio dei nomi, la proprietà, la pulizia e il modello lettore/scrittore. Il lavoro è completato quando i permessi minimi necessari al funzionamento sono implementati e documentati e vengono dimostrati tramite un test di integrazione o manuale che utilizza un producer nello spazio utente e un consumer HAL.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Context
For HAL virtual input/output, shared memory crosses process and user boundaries. The app or daemon may run as the logged-in user, while the HAL plug-in runs inside CoreAudio/DriverHelper/coreaudiod context.
A downstream app-owned producer may need the HAL driver to read a POSIX shm object created outside the HAL process. MARS currently creates rings in mars-hal::shm_backend with mode 0o600.
Risk
Unit tests that open the ring twice in the same process/user will pass, but real HAL usage can fail if the creator and reader are different users or sandbox contexts.
Acceptance criteria
- Validate real permissions needed for macOS HAL plug-in access from coreaudiod/DriverHelper.
- Update ring creation/opening to use the minimum permissions that work cross-user.
- Document the security model: namespace ownership, app ids/uids, cleanup, and who can read/write a ring.
- Add an integration or manual acceptance test that proves a user-space producer and HAL consumer can access the same ring.
- Avoid fallback modes that silently report success while the HAL device cannot read the ring.
- Lingua principale
- Rust
- Stelle
- 0
- Fork
- 1
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di JacobLinCool/mars
-
enhancement
Difficoltà 5/5 Più di una settimana Idoneità per principianti 42/100
JacobLinCool/mars#41 · 1 commento ·
-
feat(observability): optional OpenTelemetry for usage, reliability, and realtime performanceForse già presa @JacobLinCool l’ha presa 226 giorni fa. Apertacli daemon enhancement
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
JacobLinCool/mars#32 ·
Tutte le issue di JacobLinCool/mars
Issue simili
-
good first issue help wanted r-feature
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
servo/rust-smallvec#792 ·
I maintainer di solito rispondono entro 1 giorno
-
A-Unicode C-bug P-low
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
rust-lang/rustfmt#7210 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 1/5 1-3 ore Idoneità per principianti 86/100
I maintainer di solito rispondono entro 1 giorno
-
area:sim good first issue kind:feature
Difficoltà 2/5 1-3 ore Idoneità per principianti 87/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
bitcoindevkit/bdk#2432 ·
I maintainer di solito rispondono entro 3 giorni