Skip to content

Commit 7d6d8be

Browse files
committed
Python: Fix httpx modeling
1 parent 56901ea commit 7d6d8be

File tree

2 files changed

+9
-13
lines changed
  • python/ql

2 files changed

+9
-13
lines changed

python/ql/lib/semmle/python/frameworks/Httpx.qll

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,9 @@ private module HttpxModel {
2323
override DataFlow::Node getAUrlPart() {
2424
result = this.getArgByName("url")
2525
or
26-
not methodName = "request" and
27-
result = this.getArg(0)
28-
or
29-
methodName in ["request", "stream"] and
30-
result = this.getArg(1)
26+
if methodName in ["request", "stream"]
27+
then result = this.getArg(1)
28+
else result = this.getArg(0)
3129
}
3230

3331
override string getFramework() { result = "httpx" }
@@ -66,11 +64,9 @@ private module HttpxModel {
6664
override DataFlow::Node getAUrlPart() {
6765
result = this.getArgByName("url")
6866
or
69-
not methodName = "request" and
70-
result = this.getArg(0)
71-
or
72-
methodName in ["request", "stream"] and
73-
result = this.getArg(1)
67+
if methodName in ["request", "stream"]
68+
then result = this.getArg(1)
69+
else result = this.getArg(0)
7470
}
7571

7672
override string getFramework() { result = "httpx.[Async]Client" }

python/ql/test/library-tests/frameworks/httpx/test.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,20 +5,20 @@
55
httpx.patch("url") # $ clientRequestUrlPart="url"
66
httpx.options("url") # $ clientRequestUrlPart="url"
77
httpx.request("method", url="url") # $ clientRequestUrlPart="url"
8-
httpx.stream("method", url="url") # $ clientRequestUrlPart="url" SPURIOUS: clientRequestUrlPart="method"
8+
httpx.stream("method", url="url") # $ clientRequestUrlPart="url"
99

1010
client = httpx.Client()
1111
response = client.get("url") # $ clientRequestUrlPart="url"
1212
response = client.post("url") # $ clientRequestUrlPart="url"
1313
response = client.patch("url") # $ clientRequestUrlPart="url"
1414
response = client.options("url") # $ clientRequestUrlPart="url"
1515
response = client.request("method", url="url") # $ clientRequestUrlPart="url"
16-
response = client.stream("method", url="url") # $ clientRequestUrlPart="url" SPURIOUS: clientRequestUrlPart="method"
16+
response = client.stream("method", url="url") # $ clientRequestUrlPart="url"
1717

1818
client = httpx.AsyncClient()
1919
response = client.get("url") # $ clientRequestUrlPart="url"
2020
response = client.post("url") # $ clientRequestUrlPart="url"
2121
response = client.patch("url") # $ clientRequestUrlPart="url"
2222
response = client.options("url") # $ clientRequestUrlPart="url"
2323
response = client.request("method", url="url") # $ clientRequestUrlPart="url"
24-
response = client.stream("method", url="url") # $ clientRequestUrlPart="url" SPURIOUS: clientRequestUrlPart="method"
24+
response = client.stream("method", url="url") # $ clientRequestUrlPart="url"

0 commit comments

Comments
 (0)