`GIDGoogleUser.authState` is sometimes read without a lock
Maintainer thường phản hồi trong vòng 3 ngày
Đánh giá
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức phù hợp với người mới
- 18/100
- Loại issue
- Lỗi
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Công nghệ
- ios, objective-c
- Lĩnh vực
- authentication, mobile
Hướng nghiên cứu
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.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
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)
- Ngôn ngữ chính
- Objective-C
- Star
- 756
- Fork
- 283
- Merge trung bình
- 9 ngày 5 giờ
- Pull request đã merge (30 ngày)
- 4
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Không có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của google/GoogleSignIn-iOS
-
Revoke request uses GET instead of POSTCó thể làm lại được Pull request cho issue này đã bị đóng mà không được merge. Đang mởenhancement triage
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
google/GoogleSignIn-iOS#621 ·
Maintainer thường phản hồi trong vòng 3 ngày
-
enhancement triage
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
google/GoogleSignIn-iOS#620 ·
Maintainer thường phản hồi trong vòng 3 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
google/GoogleSignIn-iOS#440 · 4 bình luận · 2 reaction ·
Maintainer thường phản hồi trong vòng 3 ngày
-
question
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 48/100
google/GoogleSignIn-iOS#647 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 3 ngày
-
enhancement triage
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 48/100
google/GoogleSignIn-iOS#611 ·
Maintainer thường phản hồi trong vòng 3 ngày
Tất cả issue của google/GoogleSignIn-iOS
Issue tương tự
-
Missing info Missing repro Platform: iOS
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 64/100
software-mansion/react-native-reanimated#10908 · 2 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
unoplatform/uno#25515 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Missing repro
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
software-mansion/react-native-svg#3082 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
bug-pending-triage
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100
NativeScript/NativeScript#11525 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100
holepunchto/bare-bluetooth-apple#84 ·
Maintainer thường phản hồi trong vòng 1 ngày