Skip to content

Commit 14f753b

Browse files
Use precise access paths for http headers models
1 parent a476677 commit 14f753b

File tree

3 files changed

+142
-59
lines changed

3 files changed

+142
-59
lines changed

java/ql/lib/ext/io.netty.handler.codec.http.model.yml

Lines changed: 51 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -10,26 +10,63 @@ extensions:
1010
extensible: summaryModel
1111
data:
1212
- ["io.netty.handler.codec.http", "QueryStringEncoder", True, "QueryStringEncoder", "(String)", "", "Argument[0]", "Argument[this]", "taint", "ai-generated"]
13-
# TODO: Use precise access paths.
14-
- ["io.netty.handler.codec.http", "HttpHeaders", True, "copy", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
15-
- ["io.netty.handler.codec.http", "HttpHeaders", True, "entries", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
16-
- ["io.netty.handler.codec.http", "HttpHeaders", True, "get", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
13+
- ["io.netty.handler.codec.http", "HttpHeaders", True, "add", "(CharSequence,Iterable)", "", "Argument[0]", "Argument[-1].Element.MapKey", "taint", "manual"]
14+
- ["io.netty.handler.codec.http", "HttpHeaders", True, "add", "(CharSequence,Iterable)", "", "Argument[1].Element", "Argument[-1].Element.MapValue", "taint", "manual"]
15+
- ["io.netty.handler.codec.http", "HttpHeaders", True, "add", "(CharSequence,Object)", "", "Argument[0]", "Argument[-1].Element.MapKey", "taint", "manual"]
16+
- ["io.netty.handler.codec.http", "HttpHeaders", True, "add", "(CharSequence,Object)", "", "Argument[1]", "Argument[-1].Element.MapValue", "taint", "manual"]
17+
- ["io.netty.handler.codec.http", "HttpHeaders", True, "add", "(String,Iterable)", "", "Argument[0]", "Argument[-1].Element.MapKey", "value", "manual"]
18+
- ["io.netty.handler.codec.http", "HttpHeaders", True, "add", "(String,Iterable)", "", "Argument[1].Element", "Argument[-1].Element.MapValue", "taint", "manual"]
19+
- ["io.netty.handler.codec.http", "HttpHeaders", True, "add", "(String,Object)", "", "Argument[0]", "Argument[-1].Element.MapKey", "value", "manual"]
20+
- ["io.netty.handler.codec.http", "HttpHeaders", True, "add", "(String,Object)", "", "Argument[1]", "Argument[-1].Element.MapValue", "taint", "manual"]
21+
- ["io.netty.handler.codec.http", "HttpHeaders", True, "add", "(HttpHeaders)", "", "Argument[0].Element.MapKey", "Argument[-1].Element.MapKey", "value", "manual"]
22+
- ["io.netty.handler.codec.http", "HttpHeaders", True, "add", "(HttpHeaders)", "", "Argument[0].Element.MapValue", "Argument[-1].Element.MapValue", "taint", "manual"]
23+
- ["io.netty.handler.codec.http", "HttpHeaders", True, "addInt", "(CharSequence,int)", "", "Argument[-1]", "ReturnValue", "value", "manual"]
24+
- ["io.netty.handler.codec.http", "HttpHeaders", True, "addInt", "(CharSequence,int)", "", "Argument[0]", "Argument[-1].Element.MapKey", "value", "manual"]
25+
- ["io.netty.handler.codec.http", "HttpHeaders", True, "addShort", "(CharSequence,short)", "", "Argument[-1]", "ReturnValue", "value", "manual"]
26+
- ["io.netty.handler.codec.http", "HttpHeaders", True, "addShort", "(CharSequence,short)", "", "Argument[0]", "Argument[-1].Element.MapKey", "value", "manual"]
27+
- ["io.netty.handler.codec.http", "HttpHeaders", True, "copy", "()", "", "Argument[-1].Element.MapKey", "ReturnValue.Element.MapKey", "value", "manual"]
28+
- ["io.netty.handler.codec.http", "HttpHeaders", True, "copy", "()", "", "Argument[-1].Element.MapValue", "ReturnValue.Element.MapValue", "value", "manual"]
29+
- ["io.netty.handler.codec.http", "HttpHeaders", True, "entries", "()", "", "Argument[-1].Element.MapKey", "ReturnValue.Element.MapKey", "value", "manual"]
30+
- ["io.netty.handler.codec.http", "HttpHeaders", True, "entries", "()", "", "Argument[-1].Element.MapValue", "ReturnValue.Element.MapValue", "value", "manual"]
31+
- ["io.netty.handler.codec.http", "HttpHeaders", True, "get", "", "", "Argument[-1].Element.MapValue", "ReturnValue", "value", "manual"]
1732
- ["io.netty.handler.codec.http", "HttpHeaders", True, "get", "", "", "Argument[1]", "ReturnValue", "value", "manual"]
18-
- ["io.netty.handler.codec.http", "HttpHeaders", True, "getAll", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
19-
- ["io.netty.handler.codec.http", "HttpHeaders", True, "getAllAsString", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
20-
- ["io.netty.handler.codec.http", "HttpHeaders", True, "getAsString", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
33+
- ["io.netty.handler.codec.http", "HttpHeaders", True, "getAll", "", "", "Argument[-1].Element.MapValue", "ReturnValue.Element", "value", "manual"]
34+
- ["io.netty.handler.codec.http", "HttpHeaders", True, "getAllAsString", "", "", "Argument[-1].Element.MapValue", "ReturnValue.Element", "value", "manual"]
35+
- ["io.netty.handler.codec.http", "HttpHeaders", True, "getAsString", "", "", "Argument[-1].Element.MapValue", "ReturnValue", "value", "manual"]
2136
- ["io.netty.handler.codec.http", "HttpHeaders", True, "getHeader", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
2237
- ["io.netty.handler.codec.http", "HttpHeaders", True, "getHeader", "", "", "Argument[2]", "ReturnValue", "value", "manual"]
2338
- ["io.netty.handler.codec.http", "HttpHeaders", True, "getHost", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
2439
- ["io.netty.handler.codec.http", "HttpHeaders", True, "getHost", "", "", "Argument[1]", "ReturnValue", "value", "manual"]
25-
- ["io.netty.handler.codec.http", "HttpHeaders", True, "iteratorAsString", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
26-
- ["io.netty.handler.codec.http", "HttpHeaders", True, "iteratorCharSequence", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
27-
- ["io.netty.handler.codec.http", "HttpHeaders", True, "names", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
40+
- ["io.netty.handler.codec.http", "HttpHeaders", True, "iteratorAsString", "()", "", "Argument[-1].Element.MapKey", "ReturnValue.Element.MapKey", "value", "manual"]
41+
- ["io.netty.handler.codec.http", "HttpHeaders", True, "iteratorAsString", "()", "", "Argument[-1].Element.MapValue", "ReturnValue.Element.MapValue", "value", "manual"]
42+
- ["io.netty.handler.codec.http", "HttpHeaders", True, "iteratorCharSequence", "()", "", "Argument[-1].Element.MapKey", "ReturnValue.Element.MapKey", "taint", "manual"]
43+
- ["io.netty.handler.codec.http", "HttpHeaders", True, "iteratorCharSequence", "()", "", "Argument[-1].Element.MapValue", "ReturnValue.Element.MapValue", "taint", "manual"]
44+
- ["io.netty.handler.codec.http", "HttpHeaders", True, "names", "()", "", "Argument[-1].Element.MapKey", "ReturnValue.Element", "value", "manual"]
2845
- ["io.netty.handler.codec.http", "HttpHeaders", True, "newEntity", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
29-
- ["io.netty.handler.codec.http", "HttpHeaders", True, "valueCharSequenceIterator", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
30-
- ["io.netty.handler.codec.http", "HttpHeaders", True, "valueStringIterator", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
31-
- ["io.netty.handler.codec.http", "HttpHeaders", True, "toString", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
32-
# Currently all write steps to http messages are taint flow. It may reduce FPs to use synthetic field for headers instead.
46+
- ["io.netty.handler.codec.http", "HttpHeaders", True, "remove", "", "", "Argument[-1]", "ReturnValue", "value", "manual"]
47+
- ["io.netty.handler.codec.http", "HttpHeaders", True, "set", "", "", "Argument[-1]", "ReturnValue", "value", "manual"]
48+
- ["io.netty.handler.codec.http", "HttpHeaders", True, "set", "(CharSequence,Iterable)", "", "Argument[0]", "Argument[-1].Element.MapKey", "taint", "manual"]
49+
- ["io.netty.handler.codec.http", "HttpHeaders", True, "set", "(CharSequence,Iterable)", "", "Argument[1].Element", "Argument[-1].Element.MapValue", "taint", "manual"]
50+
- ["io.netty.handler.codec.http", "HttpHeaders", True, "set", "(CharSequence,Object)", "", "Argument[0]", "Argument[-1].Element.MapKey", "taint", "manual"]
51+
- ["io.netty.handler.codec.http", "HttpHeaders", True, "set", "(CharSequence,Object)", "", "Argument[1]", "Argument[-1].Element.MapValue", "taint", "manual"]
52+
- ["io.netty.handler.codec.http", "HttpHeaders", True, "set", "(String,Iterable)", "", "Argument[0]", "Argument[-1].Element.MapKey", "value", "manual"]
53+
- ["io.netty.handler.codec.http", "HttpHeaders", True, "set", "(String,Iterable)", "", "Argument[1].Element", "Argument[-1].Element.MapValue", "taint", "manual"]
54+
- ["io.netty.handler.codec.http", "HttpHeaders", True, "set", "(String,Object)", "", "Argument[0]", "Argument[-1].Element.MapKey", "value", "manual"]
55+
- ["io.netty.handler.codec.http", "HttpHeaders", True, "set", "(String,Object)", "", "Argument[1]", "Argument[-1].Element.MapValue", "taint", "manual"]
56+
- ["io.netty.handler.codec.http", "HttpHeaders", True, "set", "(HttpHeaders)", "", "Argument[0].Element.MapKey", "Argument[-1].Element.MapKey", "value", "manual"]
57+
- ["io.netty.handler.codec.http", "HttpHeaders", True, "set", "(HttpHeaders)", "", "Argument[0].Element.MapValue", "Argument[-1].Element.MapValue", "taint", "manual"]
58+
- ["io.netty.handler.codec.http", "HttpHeaders", True, "setAll", "(HttpHeaders)", "", "Argument[-1]", "ReturnValue", "value", "manual"]
59+
- ["io.netty.handler.codec.http", "HttpHeaders", True, "setAll", "(HttpHeaders)", "", "Argument[0].Element.MapKey", "Argument[-1].Element.MapKey", "value", "manual"]
60+
- ["io.netty.handler.codec.http", "HttpHeaders", True, "setAll", "(HttpHeaders)", "", "Argument[0].Element.MapValue", "Argument[-1].Element.MapValue", "taint", "manual"]
61+
- ["io.netty.handler.codec.http", "HttpHeaders", True, "setInt", "(CharSequence,int)", "", "Argument[-1]", "ReturnValue", "value", "manual"]
62+
- ["io.netty.handler.codec.http", "HttpHeaders", True, "setInt", "(CharSequence,int)", "", "Argument[0]", "Argument[-1].Element.MapKey", "value", "manual"]
63+
- ["io.netty.handler.codec.http", "HttpHeaders", True, "setShort", "(CharSequence,short)", "", "Argument[-1]", "ReturnValue", "value", "manual"]
64+
- ["io.netty.handler.codec.http", "HttpHeaders", True, "setShort", "(CharSequence,short)", "", "Argument[0]", "Argument[-1].Element.MapKey", "value", "manual"]
65+
- ["io.netty.handler.codec.http", "HttpHeaders", True, "valueStringIterator", "()", "", "Argument[-1].Element.MapValue", "ReturnValue.Element", "value", "manual"]
66+
- ["io.netty.handler.codec.http", "HttpHeaders", True, "valueCharSequenceIterator", "()", "", "Argument[-1].Element.MapValue", "ReturnValue.Element", "taint", "manual"]
67+
- ["io.netty.handler.codec.http", "HttpHeaders", True, "toString", "", "", "Argument[-1].Element.MapKey", "ReturnValue", "taint", "manual"]
68+
- ["io.netty.handler.codec.http", "HttpHeaders", True, "toString", "", "", "Argument[-1].Element.MapValue", "ReturnValue", "taint", "manual"]
69+
# Currently all write steps to http messages are taint flow. It may reduce FPs to use a synthetic field for headers instead.
3370
- ["io.netty.handler.codec.http", "HttpMessage", True, "headers", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
3471
- ["io.netty.handler.codec.http", "LastHttpContent", True, "trailingHeaders", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
3572
- ["io.netty.handler.codec.http", "HttpRequest", True, "getUri", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
@@ -43,11 +80,3 @@ extensions:
4380
- ["io.netty.handler.codec.http", "QueryStringDecoder", True, "rawQuery", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
4481
- ["io.netty.handler.codec.http", "QueryStringDecoder", True, "toString", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
4582
- ["io.netty.handler.codec.http", "QueryStringDecoder", True, "uri", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
46-
- ["io.netty.handler.codec.http", "HttpHeaders", True, "add", "", "", "Argument[-1]", "ReturnValue", "value", "manual"]
47-
- ["io.netty.handler.codec.http", "HttpHeaders", True, "addInt", "", "", "Argument[-1]", "ReturnValue", "value", "manual"]
48-
- ["io.netty.handler.codec.http", "HttpHeaders", True, "addShort", "", "", "Argument[-1]", "ReturnValue", "value", "manual"]
49-
- ["io.netty.handler.codec.http", "HttpHeaders", True, "remove", "", "", "Argument[-1]", "ReturnValue", "value", "manual"]
50-
- ["io.netty.handler.codec.http", "HttpHeaders", True, "set", "", "", "Argument[-1]", "ReturnValue", "value", "manual"]
51-
- ["io.netty.handler.codec.http", "HttpHeaders", True, "setAll", "", "", "Argument[-1]", "ReturnValue", "value", "manual"]
52-
- ["io.netty.handler.codec.http", "HttpHeaders", True, "setInt", "", "", "Argument[-1]", "ReturnValue", "value", "manual"]
53-
- ["io.netty.handler.codec.http", "HttpHeaders", True, "setShort", "", "", "Argument[-1]", "ReturnValue", "value", "manual"]

0 commit comments

Comments
 (0)