Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Geçersiz durumda olabilecek bir
owner<T>öğesini silmeyin (r.3)
Açıklamalar
Sahip işaretçisi kaynağını serbest bıraktığında veya aktardığında "geçersiz" duruma geçer. Böyle bir işaretçinin silinmesi, çift silme nedeniyle ani bellek bozulmasına veya silinen kaynağa başka bir sahip işaretçisinden erişildiğinde erişim ihlaline neden olabilir.
Kod analizi adı: DONT_DELETE_INVALID
Örnek 1
Değerini aktardıktan sonra sahip siliniyor:
gsl::owner<State*> validState = nullptr;
gsl::owner<State*> state = ReadState();
validState = state;
if (!IsValid(state))
delete state; // C26404
Örnek 2
Başlatılmamış sahip siliniyor:
gsl::owner<Message*> message;
if (popLast)
message = ReleaseMessage();
delete message; // C26404