Skip to content

Latest commit

 

History

History
32 lines (27 loc) · 914 Bytes

c26404.md

File metadata and controls

32 lines (27 loc) · 914 Bytes
description title ms.date ms.topic f1_keywords helpviewer_keywords ms.assetid
Learn more about: C26404 DONT_DELETE_INVALID
C26404
07/21/2017
conceptual
C26404
C26404
94afb700-3f3b-40db-8afc-2481935360c2

C26404 DONT_DELETE_INVALID

Once owner pointer releases or transfers its resource, it gets into an "invalid" state. Deleting such a pointer may lead to immediate memory corruption due to double delete, or to an access violation when the deleted resource is accessed from another owner pointer.

Example 1: Deleting an owner after transferring its value

gsl::owner<State*> validState = nullptr;
gsl::owner<State*> state = ReadState();
validState = state;
if (!IsValid(state))
    delete state;   // C26404

Example 2: Deleting an uninitialized owner

gsl::owner<Message*> message;
if (popLast)
    message = ReleaseMessage();
delete message; // C26404