`GIDGoogleUser.authState` is sometimes read without a lock
I maintainer di solito rispondono entro 3 giorni
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 18/100
- Tipo di issue
- Bug
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Attiva
- Stack tecnologico
- ios, objective-c
- Ambito
- authentication, mobile
Direzione di ricerca
Start in GIDGoogleUser, where the private lock guards authState, then trace the direct accesses the issue lists: GIDSignIn (addScopes and disconnect), GIDEMMSupport, and GTMAuthSession.primeForRefresh. The issue names no file paths or tests. Done means every read and write goes through one lock and multi-field reads happen in a single acquisition, but the issue leaves open whether the fix goes inside OIDAuthState or into the public API, so agree that with maintainers first.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
AC:
- Reads & writes to
GIDGoogleUser.authStateare serialized under one lock. Multi-field reads must happen in the same lock acquisition.
Background:
GIDGoogleUser serializes its own authState updates & multi-field reads under a private lock. However, the following readers access it directly:
GIDSignIn, for the addScopes and disconnect pathsGIDEMMSupportaccesses it viaauthSession.authState- Apps can access it via
fetcherAuthorizer. Worse still, the authorizer can also write to that state via-[OIDAuthState performActionWithFreshTokens:additionalRefreshParameters:]. GTMAuthSession.primeForRefreshcan also write toauthState.
The full fix probably needs a lock inside OIDAuthState itself, or a public API change pushing reads via GIDGoogleUser & disallowing direct access. (OIDAuthState does not have an internal lock, currently)
- Lingua principale
- Objective-C
- Stelle
- 756
- Fork
- 283
- Merge medio
- 9g 5h
- PR unite (30g)
- 4
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
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 google/GoogleSignIn-iOS
-
Revoke request uses GET instead of POSTForse di nuovo libera Una pull request per questa issue è stata chiusa senza essere unita. Apertaenhancement triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
google/GoogleSignIn-iOS#621 ·
I maintainer di solito rispondono entro 3 giorni
-
enhancement triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
google/GoogleSignIn-iOS#620 ·
I maintainer di solito rispondono entro 3 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
google/GoogleSignIn-iOS#440 · 4 commenti · 2 reazioni ·
I maintainer di solito rispondono entro 3 giorni
-
question
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
google/GoogleSignIn-iOS#647 · 1 commento ·
I maintainer di solito rispondono entro 3 giorni
-
enhancement triage
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
google/GoogleSignIn-iOS#611 ·
I maintainer di solito rispondono entro 3 giorni
Tutte le issue di google/GoogleSignIn-iOS
Issue simili
-
Missing repro
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
software-mansion/react-native-svg#3082 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
bug-pending-triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
NativeScript/NativeScript#11525 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
holepunchto/bare-bluetooth-apple#84 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
AvaloniaUI/Avalonia#22461 ·
I maintainer di solito rispondono entro 2 giorni
-
e: impeller engine team-engine
Difficoltà 2/5 Mezza giornata Idoneità per principianti 62/100
I maintainer di solito rispondono entro 1 giorno