This is _not_ a good Dispose() call :)
- 主要言語
- CodeQL
- スター
- 10.1k
- フォーク
- 2.1k
- 平均マージ
- 2日 15時間
- マージ済み PR(30日)
- 141
説明
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);
}
}
```
コントリビューションガイド
評価
この issue はまだ評価されていません。