`GIDGoogleUser.authState` is sometimes read without a lock
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Anfängerfreundlichkeit
- 18/100
- Issue-Typ
- Bug
- Klarheit
- Größtenteils klar
- Aktivitätsstatus
- Aktiv
- Tech-Stack
- ios, objective-c
- Bereich
- authentication, mobile
Rechercherichtung
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.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
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)
- Vorherrschende Sprache
- Objective-C
- Sterne
- 756
- Forks
- 283
- Ø Merge
- 3 T. 1 Std.
- Gemergte PRs (30 T.)
- 2
Entwicklungsumgebung
- Kein Dockerfile und keine Docker-Compose-Datei
- Keine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus google/GoogleSignIn-iOS
-
Revoke request uses GET instead of POSTEvtl. wieder frei Ein Pull Request dazu wurde ohne Merge geschlossen. Offenenhancement triage
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
google/GoogleSignIn-iOS#621 ·
-
enhancement triage
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
google/GoogleSignIn-iOS#620 ·
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
google/GoogleSignIn-iOS#440 · 4 Kommentare · 2 Reaktionen ·
-
bug triage
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 48/100
google/GoogleSignIn-iOS#647 ·
-
enhancement triage
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 48/100
google/GoogleSignIn-iOS#611 ·
Alle Issues in google/GoogleSignIn-iOS
Ähnliche Issues
-
bug-pending-triage
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 70/100
NativeScript/NativeScript#11525 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 70/100
holepunchto/bare-bluetooth-apple#84 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 70/100
AvaloniaUI/Avalonia#22461 ·
Maintainer antworten meist innerhalb von 2 Tagen
-
e: impeller engine team-engine
Schwierigkeit 2/5 Ein halber Tag Anfängerfreundlichkeit 62/100
Maintainer antworten meist innerhalb von 1 Tag
-
bug
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 88/100
beeware/rubicon-objc#844 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag