Skip to content

Commit 5b30e94

Browse files
authored
Merge pull request #21410 from MathiasVP/add-WebSocket-ReceiveAsync-model
C#: Add `System.Net.WebSockets.ReceiveAsync` as a remote flow source
2 parents 219ea28 + f8f8991 commit 5b30e94

File tree

5 files changed

+23
-0
lines changed

5 files changed

+23
-0
lines changed
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
---
2+
category: minorAnalysis
3+
---
4+
* Added `System.Net.WebSockets::ReceiveAsync` as a remote flow source.
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
extensions:
2+
- addsTo:
3+
pack: codeql/csharp-all
4+
extensible: sourceModel
5+
data:
6+
- ["System.Net.WebSockets", "WebSocket", True, "ReceiveAsync", "", "", "Argument[0]", "remote", "manual"]

csharp/ql/test/library-tests/dataflow/flowsources/remote/RemoteFlowSource.cs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,5 +44,13 @@ public static void M2(System.Web.HttpRequestBase request)
4444
{
4545
Use(request.Unvalidated.RawUrl);
4646
}
47+
48+
public static async void M3(System.Net.WebSockets.WebSocket webSocket)
49+
{
50+
var buffer = new byte[1024];
51+
var segment = new ArraySegment<byte>(buffer);
52+
var result = await webSocket.ReceiveAsync(segment, System.Threading.CancellationToken.None);
53+
Use(segment);
54+
}
4755
}
4856
}

csharp/ql/test/library-tests/dataflow/flowsources/remote/remoteFlowSource.expected

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,3 +9,4 @@
99
| RemoteFlowSource.cs:40:17:40:23 | access to parameter request | ASP.NET query string |
1010
| RemoteFlowSource.cs:45:17:45:23 | access to parameter request | ASP.NET query string |
1111
| RemoteFlowSource.cs:45:17:45:42 | access to property RawUrl | ASP.NET unvalidated request data |
12+
| RemoteFlowSource.cs:52:55:52:61 | [post] access to local variable segment | external |

csharp/ql/test/library-tests/dataflow/library/FlowSummaries.expected

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -185,6 +185,10 @@ source
185185
| System.IO;StreamWriter;StreamWriter;(System.String,System.IO.FileStreamOptions);Argument[this];file-write;manual |
186186
| System.IO;StreamWriter;StreamWriter;(System.String,System.Text.Encoding,System.IO.FileStreamOptions);Argument[this];file-write;manual |
187187
| System.Net.Sockets;TcpClient;GetStream;();ReturnValue;remote;manual |
188+
| System.Net.WebSockets;ClientWebSocket;ReceiveAsync;(System.ArraySegment<System.Byte>,System.Threading.CancellationToken);Argument[0];remote;manual |
189+
| System.Net.WebSockets;ClientWebSocket;ReceiveAsync;(System.Memory<System.Byte>,System.Threading.CancellationToken);Argument[0];remote;manual |
190+
| System.Net.WebSockets;WebSocket;ReceiveAsync;(System.ArraySegment<System.Byte>,System.Threading.CancellationToken);Argument[0];remote;manual |
191+
| System.Net.WebSockets;WebSocket;ReceiveAsync;(System.Memory<System.Byte>,System.Threading.CancellationToken);Argument[0];remote;manual |
188192
| System;Console;Read;();ReturnValue;stdin;manual |
189193
| System;Console;ReadKey;();ReturnValue;stdin;manual |
190194
| System;Console;ReadKey;(System.Boolean);ReturnValue;stdin;manual |

0 commit comments

Comments
 (0)