`GIDGoogleUser.authState` is sometimes read without a lock
Les mainteneurs répondent en général sous 3 jours
Évaluation
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Accessibilité débutants
- 18/100
- Type d'issue
- Bug
- Clarté
- Plutôt claire
- Activité
- Active
- Stack technique
- ios, objective-c
- Domaine
- authentication, mobile
Piste de recherche
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.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
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)
- Langage dominant
- Objective-C
- Étoiles
- 756
- Forks
- 284
- Merge moyen
- 9 j 5 h
- PR mergées (30 j)
- 4
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Aucun modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de google/GoogleSignIn-iOS
-
Revoke request uses GET instead of POSTPeut-être à nouveau libre Une pull request pour cette issue a été fermée sans être fusionnée. Ouverteenhancement triage
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
google/GoogleSignIn-iOS#621 ·
Les mainteneurs répondent en général sous 3 jours
-
enhancement triage
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
google/GoogleSignIn-iOS#620 ·
Les mainteneurs répondent en général sous 3 jours
-
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
google/GoogleSignIn-iOS#440 · 4 commentaires · 2 réactions ·
Les mainteneurs répondent en général sous 3 jours
-
question
Difficulté 4/5 3-5 jours Accessibilité débutants 48/100
google/GoogleSignIn-iOS#647 · 1 commentaire ·
Les mainteneurs répondent en général sous 3 jours
-
enhancement triage
Difficulté 4/5 3-5 jours Accessibilité débutants 48/100
google/GoogleSignIn-iOS#611 ·
Les mainteneurs répondent en général sous 3 jours
Toutes les issues de google/GoogleSignIn-iOS
Issues similaires
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 82/100
Countly/countly-sdk-ios#485 ·
Les mainteneurs répondent en général sous 1 jour
-
bug
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
-
Missing info Missing repro Platform: iOS
Difficulté 2/5 1-3 heures Accessibilité débutants 64/100
software-mansion/react-native-reanimated#10908 · 2 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
unoplatform/uno#25515 ·
Les mainteneurs répondent en général sous 1 jour
-
Missing repro
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
software-mansion/react-native-svg#3082 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour