This is _not_ a good Dispose() call :)
- Lenguaje dominante
- CodeQL
- Estrellas
- 10.1k
- Forks
- 2.1k
- Merge medio
- 2 d 15 h
- PR fusionados (30 d)
- 141
Descripción
This is not really a huge issue, but the provided example in csharp/ql/src/API Abuse/MissingDisposeCallGood.cs is actually quite bad, as it can lead to all kinds of pointer-related issues (anything from a mysterious crashes to arbitrary code execution).
As you're a security-focused code analysis service, I really think a proper implementation of the Disposable-pattern would be in order :)
```
class MyClass : IDisposable
{
bool disposed = false;
public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}
protected virtual void Dispose(bool disposing)
{
if (disposed)
return;
if (disposing) {
// free any managed objects
}
// Free any unmanaged objects
disposed = true;
}
~MyClass()
{
Dispose(false);
}
}
```
Guía de contribución
Evaluación
Este issue todavía no se ha evaluado.