Skip to content

Commit 0dbf951

Browse files
committed
Updated ClientSocket and SendNode with API graphs.
1 parent 455ce59 commit 0dbf951

File tree

4 files changed

+13
-7
lines changed

4 files changed

+13
-7
lines changed

javascript/ql/lib/semmle/javascript/frameworks/WebSocket.qll

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -95,10 +95,10 @@ module ClientWebSocket {
9595
/**
9696
* A client WebSocket instance.
9797
*/
98-
class ClientSocket extends EventEmitter::Range, DataFlow::NewNode, ClientRequest::Range {
98+
class ClientSocket extends EventEmitter::Range, API::NewNode, ClientRequest::Range {
9999
SocketClass socketClass;
100100

101-
ClientSocket() { this = socketClass.getAnInstantiation() }
101+
ClientSocket() { this = socketClass.getAnInvocation() }
102102

103103
/**
104104
* Gets the WebSocket library name.
@@ -129,10 +129,10 @@ module ClientWebSocket {
129129
/**
130130
* A message sent from a WebSocket client.
131131
*/
132-
class SendNode extends EventDispatch::Range, DataFlow::CallNode {
132+
class SendNode extends EventDispatch::Range, API::CallNode {
133133
override ClientSocket emitter;
134134

135-
SendNode() { this = emitter.getAMemberCall("send") }
135+
SendNode() { this = emitter.getReturn().getMember("send").getACall() }
136136

137137
override string getChannel() { result = channelName() }
138138

javascript/ql/test/library-tests/frameworks/WebSocket/browser-custom.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ import { MyWebSocket, MySockJS, myWebSocketInstance, mySockJSInstance } from './
3636

3737
(function () {
3838
myWebSocketInstance.addEventListener('open', function (event) {
39-
myWebSocketInstance.send('Hi from browser!'); // $ MISSING: clientSend
39+
myWebSocketInstance.send('Hi from browser!'); // $ clientSend
4040
});
4141

4242
myWebSocketInstance.addEventListener('message', function (event) {
@@ -51,7 +51,7 @@ import { MyWebSocket, MySockJS, myWebSocketInstance, mySockJSInstance } from './
5151

5252
(function () {
5353
mySockJSInstance.onopen = function () {
54-
mySockJSInstance.send('test'); // $ MISSING: clientSend
54+
mySockJSInstance.send('test'); // $ clientSend
5555
};
5656

5757
mySockJSInstance.onmessage = function (e) {

javascript/ql/test/library-tests/frameworks/WebSocket/client-custom.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ const { MyWebSocketWS, myWebSocketWSInstance } = require('./client.js');
1414

1515
(function () {
1616
myWebSocketWSInstance.on('open', function open() {
17-
myWebSocketWSInstance.send('Hi from client!'); // $ MISSING: clientSend
17+
myWebSocketWSInstance.send('Hi from client!'); // $ clientSend
1818
});
1919

2020
myWebSocketWSInstance.on('message', function incoming(data) {

javascript/ql/test/library-tests/frameworks/WebSocket/test.expected

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,12 @@ clientReceive
1212
clientSend
1313
| browser-custom.js:7:3:7:33 | socket. ... wser!') |
1414
| browser-custom.js:23:3:23:19 | sock.send('test') |
15+
| browser-custom.js:39:9:39:52 | myWebSo ... wser!') |
16+
| browser-custom.js:54:9:54:37 | mySockJ ... 'test') |
1517
| browser.js:5:3:5:33 | socket. ... wser!') |
1618
| browser.js:21:3:21:19 | sock.send('test') |
1719
| client-custom.js:7:3:7:28 | ws.send ... ient!') |
20+
| client-custom.js:17:3:17:47 | myWebSo ... ient!') |
1821
| client.js:7:3:7:28 | ws.send ... ient!') |
1922
clientSocket
2023
| browser-custom.js:4:17:4:54 | new MyW ... :9080') |
@@ -33,9 +36,12 @@ flowSteps
3336
| browser-custom.js:1:54:1:69 | mySockJSInstance | browser-custom.js:1:54:1:69 | mySockJSInstance |
3437
| browser-custom.js:7:15:7:32 | 'Hi from browser!' | server.js:7:38:7:44 | message |
3538
| browser-custom.js:23:13:23:18 | 'test' | sockjs.js:9:31:9:37 | message |
39+
| browser-custom.js:39:34:39:51 | 'Hi from browser!' | server.js:7:38:7:44 | message |
40+
| browser-custom.js:54:31:54:36 | 'test' | sockjs.js:9:31:9:37 | message |
3641
| browser.js:5:15:5:32 | 'Hi from browser!' | server.js:7:38:7:44 | message |
3742
| browser.js:21:13:21:18 | 'test' | sockjs.js:9:31:9:37 | message |
3843
| client-custom.js:7:11:7:27 | 'Hi from client!' | server.js:7:38:7:44 | message |
44+
| client-custom.js:17:30:17:46 | 'Hi from client!' | server.js:7:38:7:44 | message |
3945
| client.js:7:11:7:27 | 'Hi from client!' | server.js:7:38:7:44 | message |
4046
| client.js:15:32:15:44 | require('ws') | client-custom.js:1:9:1:21 | MyWebSocketWS |
4147
| client.js:16:40:16:72 | new Web ... e.org') | client-custom.js:1:24:1:44 | myWebSo ... nstance |

0 commit comments

Comments
 (0)