You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
account-svc 의 notification dispatch(reverse P/Invoke)에서 실행되므로, 구독자 핸들러가 던진 예외가 네이티브 프레임을 관통 → 프로세스 크래시. 또한 CheckAccountFeature() 는 등록 시점에 이미 통과한 검사를 매 notification 마다 네이티브 feature 조회로 반복합니다 (콜백 내 throw 경로이기도 함). (#7798, #7805 와 동일 계열)
(b)CreateAccountSubscriber(out s_subscriberHandle) 반환값 미검증 (line 653) — 생성 실패 시 invalid handle 로 RegisterSubscriber 진행.
(c)remove 접근자가 UnregisterSubscriber 실패 시 throw (line 674-678) — 이벤트 구독 해제 접근자는 throw 하지 않는 것이 .NET 가이드라인이며, throw 시 s_subscriberHandle 정리가 건너뛰어져 이후 상태 불일치.
(d) 정적 이벤트 add/remove 무동기화 — 두 스레드가 동시에 최초 구독하면 s_accountUpdated == null 을 둘 다 관찰 → RegisterSubscriber 이중 호출 경합.
관련: SafeAccountSubscriberHandle.ReleaseHandle (Interop.AccountService.cs:113-117) 은 네이티브 해제 없이 SetHandle(Zero) 만 수행 — Unregister 없이 방치된 구독자 핸들은 네이티브 측에서 누수.
Problem
Coding Guidelines 렌즈: 콜백 경계 예외 전파 금지 위반(크래시), 이벤트 접근자 계약 위반, 반환값 미검증, thread-safety 부재.
Activity