[rfc] supporting non-Linux unix platforms

Aperta
#182 1 commento 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
5/5
Tempo stimato
Più di una settimana
Idoneità per principianti
25/100
Tipo di issue
Funzionalità
Chiarezza
Abbastanza chiara
Stato di attività
Ferma
Stack tecnologico
rust

Direzione di ricerca

Start by reading the existing Linux path resolver and the os.Root approach mentioned in the issue. Investigate how path components can be safely re-evaluated for .. on non-Linux Unix systems, and whether the existing re-opening APIs can be supported there. Done means the project has a decided approach for non-Linux support and its resolver semantics.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

impact/feature

Initially the plan was for libpathrs to only support Linux but given that umoci supports non-Linux operating systems, it might make sense to have an O_PATH resolver that works on non-Linux systems.

We can take a leaf out of the os.Root book and implement safe .. lookups by re-evaluating all path components from the root each time we hit .. (which avoids the risk of rename attacks at the cost of making lookups O(n^2)).

The main issue is that we cannot easily implement re-opening semantics on non-Linux platforms as far as I can see. In principle we could not provide that API on non-Linux platforms but it would be unfortunate since I expect a fair number of users to use those APIs... (Though now that we have one-shot opening maybe we can do without it.)

Lingua principale
Rust
Stelle
146
Fork
12
Merge medio
1g 16h
PR unite (30g)
20

Preparare l'ambiente

  • Include un Dockerfile o un file Docker Compose
  • Nessun modello di pull request
  • Nessuna guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di cyphar/libpathrs

Tutte le issue di cyphar/libpathrs

Issue simili

Altre issue su Rust

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.