`GIDGoogleUser.authState` is sometimes read without a lock
Los mantenedores suelen responder en 3 días
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 18/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Activo
- Stack tecnológico
- ios, objective-c
- Área
- authentication, mobile
Línea de trabajo
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.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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)
- Lenguaje dominante
- Objective-C
- Estrellas
- 756
- Forks
- 283
- Merge medio
- 9 d 5 h
- PR fusionados (30 d)
- 4
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de google/GoogleSignIn-iOS
-
Revoke request uses GET instead of POSTQuizá libre de nuevo Un pull request para esta issue se cerró sin fusionarse. Abiertoenhancement triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
google/GoogleSignIn-iOS#621 ·
Los mantenedores suelen responder en 3 días
-
enhancement triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
google/GoogleSignIn-iOS#620 ·
Los mantenedores suelen responder en 3 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
google/GoogleSignIn-iOS#440 · 4 comentarios · 2 reacciones ·
Los mantenedores suelen responder en 3 días
-
question
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
google/GoogleSignIn-iOS#647 · 1 comentario ·
Los mantenedores suelen responder en 3 días
-
enhancement triage
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
google/GoogleSignIn-iOS#611 ·
Los mantenedores suelen responder en 3 días
Todos los issues de google/GoogleSignIn-iOS
Issues similares
-
Missing info Missing repro Platform: iOS
Dificultad 2/5 1-3 horas Aptitud para principiantes 64/100
software-mansion/react-native-reanimated#10908 · 2 comentarios ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
unoplatform/uno#25515 ·
Los mantenedores suelen responder en 1 día
-
Missing repro
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
software-mansion/react-native-svg#3082 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
bug-pending-triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
NativeScript/NativeScript#11525 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
holepunchto/bare-bluetooth-apple#84 ·
Los mantenedores suelen responder en 1 día