mirror of
https://github.com/github/codeql.git
synced 2025-12-17 01:03:14 +01:00
C#: Re-factor to use inline expectation tests instead.
This commit is contained in:
@@ -48,9 +48,9 @@ class Test
|
|||||||
}
|
}
|
||||||
|
|
||||||
// BAD: No Dispose call
|
// BAD: No Dispose call
|
||||||
var c1d = new Timer(TimerProc);
|
var c1d = new Timer(TimerProc); // $ Alert
|
||||||
var fs = new FileStream("", FileMode.CreateNew, FileAccess.Write);
|
var fs = new FileStream("", FileMode.CreateNew, FileAccess.Write); // $ Alert
|
||||||
new FileStream("", FileMode.CreateNew, FileAccess.Write).Fluent();
|
new FileStream("", FileMode.CreateNew, FileAccess.Write).Fluent(); // $ Alert
|
||||||
|
|
||||||
// GOOD: Disposed via wrapper
|
// GOOD: Disposed via wrapper
|
||||||
fs = new FileStream("", FileMode.CreateNew, FileAccess.Write);
|
fs = new FileStream("", FileMode.CreateNew, FileAccess.Write);
|
||||||
@@ -72,7 +72,7 @@ class Test
|
|||||||
;
|
;
|
||||||
|
|
||||||
// GOOD: XmlDocument.Load disposes incoming XmlReader (False positive as this is disposed in library code)
|
// GOOD: XmlDocument.Load disposes incoming XmlReader (False positive as this is disposed in library code)
|
||||||
var xmlReader = XmlReader.Create(new StringReader("xml"), null);
|
var xmlReader = XmlReader.Create(new StringReader("xml"), null); // $ Alert
|
||||||
var xmlDoc = new XmlDocument();
|
var xmlDoc = new XmlDocument();
|
||||||
xmlDoc.Load(xmlReader);
|
xmlDoc.Load(xmlReader);
|
||||||
|
|
||||||
@@ -104,6 +104,15 @@ class Test
|
|||||||
public void Dispose() { }
|
public void Dispose() { }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class Bad
|
||||||
|
{
|
||||||
|
long GetLength(string file)
|
||||||
|
{
|
||||||
|
var stream = new FileStream(file, FileMode.Open); // $ Alert
|
||||||
|
return stream.Length;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static class Extensions
|
static class Extensions
|
||||||
{
|
{
|
||||||
public static FileStream Fluent(this FileStream fs) => fs;
|
public static FileStream Fluent(this FileStream fs) => fs;
|
||||||
|
|||||||
@@ -3,4 +3,4 @@
|
|||||||
| NoDisposeCallOnLocalIDisposable.cs:53:9:53:64 | object creation of type FileStream | Disposable 'FileStream' is created but not disposed. |
|
| NoDisposeCallOnLocalIDisposable.cs:53:9:53:64 | object creation of type FileStream | Disposable 'FileStream' is created but not disposed. |
|
||||||
| NoDisposeCallOnLocalIDisposable.cs:75:25:75:71 | call to method Create | Disposable 'XmlReader' is created but not disposed. |
|
| NoDisposeCallOnLocalIDisposable.cs:75:25:75:71 | call to method Create | Disposable 'XmlReader' is created but not disposed. |
|
||||||
| NoDisposeCallOnLocalIDisposable.cs:75:42:75:64 | object creation of type StringReader | Disposable 'StringReader' is created but not disposed. |
|
| NoDisposeCallOnLocalIDisposable.cs:75:42:75:64 | object creation of type StringReader | Disposable 'StringReader' is created but not disposed. |
|
||||||
| NoDisposeCallOnLocalIDisposableBad.cs:8:22:8:56 | object creation of type FileStream | Disposable 'FileStream' is created but not disposed. |
|
| NoDisposeCallOnLocalIDisposable.cs:111:22:111:56 | object creation of type FileStream | Disposable 'FileStream' is created but not disposed. |
|
||||||
|
|||||||
@@ -1 +1,2 @@
|
|||||||
API Abuse/NoDisposeCallOnLocalIDisposable.ql
|
query: API Abuse/NoDisposeCallOnLocalIDisposable.ql
|
||||||
|
postprocess: utils/test/InlineExpectationsTestQuery.ql
|
||||||
|
|||||||
@@ -1,11 +0,0 @@
|
|||||||
using System;
|
|
||||||
using System.IO;
|
|
||||||
|
|
||||||
class Bad
|
|
||||||
{
|
|
||||||
long GetLength(string file)
|
|
||||||
{
|
|
||||||
var stream = new FileStream(file, FileMode.Open);
|
|
||||||
return stream.Length;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user