--- description: "Learn more about: Warning C26167" title: Warning C26167 ms.date: 11/04/2016 f1_keywords: ["C26167"] helpviewer_keywords: ["C26167"] ms.assetid: 5a3d767f-31fa-45e0-8c9b-1aa776acaa45 --- # Warning C26167 > Possibly releasing unheld lock '*lock*' in function '*func*'. Warning C26167 resembles warning [C26117](../code-quality/c26117.md) except that the confidence level is lower. For example, the function may contain annotation errors. ## Examples The following code will generate C26167 and C26110. ```cpp typedef struct _DATA { CRITICAL_SECTION cs; } DATA; _Releases_lock_(p->cs) void Leave(DATA* p) { LeaveCriticalSection(&p->cs); // OK } void ReleaseUnheldLock(DATA* p) { // Warning C26167 int i = 0; Leave(p); // Warning C26110 } ``` The following code will correct these warnings. ```cpp typedef struct _DATA { CRITICAL_SECTION cs; } DATA; _Releases_lock_(p->cs) void Leave(DATA* p) { LeaveCriticalSection( &p->cs ); } void ReleaseUnheldLock( DATA* p ) { EnterCriticalSection( &p->cs ); int i = 0; Leave(p); } ```