Merge branch 'main' into timing-attack-py

This commit is contained in:
Taus
2023-03-27 15:27:13 +02:00
committed by GitHub
276 changed files with 14053 additions and 3614 deletions

View File

@@ -50,7 +50,7 @@ jobs:
echo "/usr/local/opt/gnu-tar/libexec/gnubin" >> $GITHUB_PATH
- name: Install cargo-cross
if: runner.os == 'Linux'
run: cargo install cross --version 0.2.1
run: cargo install cross --version 0.2.5
- uses: ./.github/actions/os-version
id: os_version
- name: Cache entire extractor
@@ -85,7 +85,12 @@ jobs:
# This ensures we don't depend on glibc > 2.17.
- name: Release build (linux)
if: steps.cache-extractor.outputs.cache-hit != 'true' && runner.os == 'Linux'
run: cd extractor && cross build --release
run: |
cd extractor
cross build --release
mv target/x86_64-unknown-linux-gnu/release/extractor target/release/
mv target/x86_64-unknown-linux-gnu/release/autobuilder target/release/
mv target/x86_64-unknown-linux-gnu/release/generator target/release/
- name: Release build (windows and macos)
if: steps.cache-extractor.outputs.cache-hit != 'true' && runner.os != 'Linux'
run: cd extractor && cargo build --release

View File

@@ -3,3 +3,4 @@ import semmle.code.cpp.rangeanalysis.SimpleRangeAnalysis
// Import each extension we want to enable
import extensions.SubtractSelf
import extensions.ConstantBitwiseAndExprRange
import extensions.StrlenLiteralRangeExpr

View File

@@ -0,0 +1,18 @@
private import cpp
private import experimental.semmle.code.cpp.models.interfaces.SimpleRangeAnalysisExpr
/**
* Provides range analysis information for calls to `strlen` on literal strings.
* For example, the range of `strlen("literal")` will be 7.
*/
class StrlenLiteralRangeExpr extends SimpleRangeAnalysisExpr, FunctionCall {
StrlenLiteralRangeExpr() {
getTarget().hasGlobalOrStdName("strlen") and getArgument(0).isConstant()
}
override int getLowerBounds() { result = getArgument(0).getValue().length() }
override int getUpperBounds() { result = getArgument(0).getValue().length() }
override predicate dependsOnChild(Expr e) { none() }
}

View File

@@ -8,3 +8,4 @@ upgrades: upgrades
dependencies:
codeql/ssa: ${workspace}
codeql/tutorial: ${workspace}
codeql/util: ${workspace}

View File

@@ -3,6 +3,7 @@ private import DataFlowUtil
private import DataFlowDispatch
private import FlowVar
private import DataFlowImplConsistency
import codeql.util.Unit
/** Gets the callable in which this node occurs. */
DataFlowCallable nodeGetEnclosingCallable(Node n) { result = n.getEnclosingCallable() }
@@ -264,15 +265,6 @@ int accessPathLimit() { result = 5 }
*/
predicate forceHighPrecision(Content c) { none() }
/** The unit type. */
private newtype TUnit = TMkUnit()
/** The trivial type with a single element. */
class Unit extends TUnit {
/** Gets a textual representation of this element. */
string toString() { result = "unit" }
}
/** Holds if `n` should be hidden from path explanations. */
predicate nodeIsHidden(Node n) { none() }

View File

@@ -6,6 +6,7 @@ private import DataFlowImplConsistency
private import semmle.code.cpp.ir.internal.IRCppLanguage
private import SsaInternals as Ssa
private import DataFlowImplCommon as DataFlowImplCommon
import codeql.util.Unit
cached
private module Cached {
@@ -799,15 +800,6 @@ int accessPathLimit() { result = 5 }
*/
predicate forceHighPrecision(Content c) { none() }
/** The unit type. */
private newtype TUnit = TMkUnit()
/** The trivial type with a single element. */
class Unit extends TUnit {
/** Gets a textual representation of this element. */
string toString() { result = "unit" }
}
/** Holds if `n` should be hidden from path explanations. */
predicate nodeIsHidden(Node n) {
n instanceof OperandNode and

View File

@@ -0,0 +1,2 @@
| test.cpp:4:3:4:8 | call to strlen | 7.0 | 7.0 |
| test.cpp:5:3:5:8 | call to strlen | 1.8446744073709552E19 | 0.0 |

View File

@@ -0,0 +1,6 @@
import cpp
import semmle.code.cpp.rangeanalysis.SimpleRangeAnalysis
import experimental.semmle.code.cpp.rangeanalysis.extensions.StrlenLiteralRangeExpr
from FunctionCall fc
select fc, upperBound(fc), lowerBound(fc)

View File

@@ -0,0 +1,6 @@
unsigned long strlen(const char *);
void func(const char *s) {
strlen("literal");
strlen(s);
}

View File

@@ -1,35 +1,21 @@
| CPP-205.cpp:0:0:0:0 | CPP-205.cpp | |
| CPP-205.cpp:1:20:1:20 | T | |
| CPP-205.cpp:1:20:1:20 | definition of T | |
| CPP-205.cpp:2:5:2:5 | definition of fn | function declaration entry for int fn<int>(int) |
| CPP-205.cpp:2:5:2:5 | fn | function int fn<int>(int) |
| CPP-205.cpp:2:5:2:6 | definition of fn | function declaration entry for int fn<T>(T) |
| CPP-205.cpp:2:5:2:6 | fn | function int fn<T>(T) |
| CPP-205.cpp:2:10:2:12 | definition of out | parameter declaration entry for int fn<T>(T) |
| CPP-205.cpp:2:10:2:12 | definition of out | parameter declaration entry for int fn<int>(int) |
| CPP-205.cpp:2:10:2:12 | out | parameter for int fn<T>(T) |
| CPP-205.cpp:2:10:2:12 | out | parameter for int fn<int>(int) |
| CPP-205.cpp:2:15:5:1 | { ... } | |
| CPP-205.cpp:2:15:5:1 | { ... } | |
| CPP-205.cpp:3:3:3:33 | declaration | |
| CPP-205.cpp:3:3:3:33 | declaration | |
| CPP-205.cpp:3:15:3:15 | declaration of y | |
| CPP-205.cpp:3:15:3:15 | y | |
| CPP-205.cpp:3:17:3:31 | 5 | |
| CPP-205.cpp:4:3:4:11 | return ... | |
| CPP-205.cpp:4:3:4:11 | return ... | |
| CPP-205.cpp:4:10:4:10 | 0 | |
| CPP-205.cpp:4:10:4:10 | 0 | |
| CPP-205.cpp:2:5:2:5 | definition of fn | function declaration entry for int fn<int>(int), isFromTemplateInstantiation(fn) |
| CPP-205.cpp:2:5:2:5 | fn | function int fn<int>(int), isFromTemplateInstantiation(fn) |
| CPP-205.cpp:2:5:2:6 | definition of fn | function declaration entry for int fn<T>(T), isFromUninstantiatedTemplate(fn) |
| CPP-205.cpp:2:5:2:6 | fn | function int fn<T>(T), isFromUninstantiatedTemplate(fn) |
| CPP-205.cpp:2:10:2:12 | definition of out | isFromTemplateInstantiation(fn), parameter declaration entry for int fn<int>(int) |
| CPP-205.cpp:2:10:2:12 | definition of out | isFromUninstantiatedTemplate(fn), parameter declaration entry for int fn<T>(T) |
| CPP-205.cpp:2:10:2:12 | out | isFromTemplateInstantiation(fn), parameter for int fn<int>(int) |
| CPP-205.cpp:2:10:2:12 | out | isFromUninstantiatedTemplate(fn), parameter for int fn<T>(T) |
| CPP-205.cpp:2:15:5:1 | { ... } | isFromTemplateInstantiation(fn) |
| CPP-205.cpp:2:15:5:1 | { ... } | isFromUninstantiatedTemplate(fn) |
| CPP-205.cpp:3:3:3:33 | declaration | isFromTemplateInstantiation(fn) |
| CPP-205.cpp:3:3:3:33 | declaration | isFromUninstantiatedTemplate(fn) |
| CPP-205.cpp:3:15:3:15 | declaration of y | isFromUninstantiatedTemplate(fn) |
| CPP-205.cpp:3:15:3:15 | y | isFromUninstantiatedTemplate(fn) |
| CPP-205.cpp:3:17:3:31 | 5 | isFromTemplateInstantiation(fn) |
| CPP-205.cpp:4:3:4:11 | return ... | isFromTemplateInstantiation(fn) |
| CPP-205.cpp:4:3:4:11 | return ... | isFromUninstantiatedTemplate(fn) |
| CPP-205.cpp:4:10:4:10 | 0 | isFromTemplateInstantiation(fn) |
| CPP-205.cpp:4:10:4:10 | 0 | isFromUninstantiatedTemplate(fn) |
| CPP-205.cpp:7:5:7:8 | definition of main | function declaration entry for int main() |
| CPP-205.cpp:7:5:7:8 | main | function int main() |
| CPP-205.cpp:7:12:9:1 | { ... } | |
| CPP-205.cpp:8:3:8:15 | return ... | |
| CPP-205.cpp:8:10:8:11 | call to fn | |
| CPP-205.cpp:8:13:8:13 | 0 | |
| file://:0:0:0:0 | (unnamed parameter 0) | parameter for __va_list_tag& __va_list_tag::operator=(__va_list_tag const&) |
| file://:0:0:0:0 | (unnamed parameter 0) | parameter for __va_list_tag& __va_list_tag::operator=(__va_list_tag&&) |
| file://:0:0:0:0 | __super | |
| file://:0:0:0:0 | __va_list_tag | |
| file://:0:0:0:0 | operator= | function __va_list_tag& __va_list_tag::operator=(__va_list_tag const&) |
| file://:0:0:0:0 | operator= | function __va_list_tag& __va_list_tag::operator=(__va_list_tag&&) |
| file://:0:0:0:0 | y | |

View File

@@ -14,10 +14,20 @@ string describe(Element e) {
result =
"parameter declaration entry for " +
getIdentityString(e.(ParameterDeclarationEntry).getFunctionDeclarationEntry().getFunction())
or
exists(Element template |
e.isFromTemplateInstantiation(template) and
result = "isFromTemplateInstantiation(" + template.toString() + ")"
)
or
exists(Element template |
e.isFromUninstantiatedTemplate(template) and
result = "isFromUninstantiatedTemplate(" + template.toString() + ")"
)
}
from Element e
where
not e.getLocation() instanceof UnknownLocation and
e.getLocation().getFile().getBaseName() != "" and
not e instanceof Folder
select e, concat(describe(e), ", ")
select e, strictconcat(describe(e), ", ")

View File

@@ -1,26 +1,9 @@
| captures.cpp:0:0:0:0 | captures.cpp |
| captures.cpp:1:8:1:8 | declaration of operator= |
| captures.cpp:1:8:1:8 | declaration of operator= |
| captures.cpp:1:8:1:8 | operator= |
| captures.cpp:1:8:1:8 | operator= |
| captures.cpp:1:8:1:10 | definition of foo |
| captures.cpp:1:8:1:10 | foo |
| captures.cpp:2:8:2:8 | a |
| captures.cpp:2:8:2:8 | definition of a |
| captures.cpp:2:14:2:14 | definition of x |
| captures.cpp:2:14:2:14 | x |
| captures.cpp:2:17:6:3 | { ... } |
| captures.cpp:3:5:3:5 | (unnamed constructor) |
| captures.cpp:3:5:3:5 | (unnamed constructor) |
| captures.cpp:3:5:3:5 | (unnamed constructor) |
| captures.cpp:3:5:3:5 | declaration of (unnamed constructor) |
| captures.cpp:3:5:3:5 | declaration of (unnamed constructor) |
| captures.cpp:3:5:3:5 | definition of (unnamed constructor) |
| captures.cpp:3:5:3:5 | definition of operator= |
| captures.cpp:3:5:3:5 | operator= |
| captures.cpp:3:5:5:5 | [...](...){...} |
| captures.cpp:3:5:5:5 | {...} |
| captures.cpp:3:5:5:6 | ExprStmt |
| captures.cpp:3:6:3:6 | definition of x |
| captures.cpp:3:6:3:6 | x |
| captures.cpp:3:6:3:6 | x |
@@ -29,7 +12,6 @@
| captures.cpp:3:9:3:9 | definition of (captured this) |
| captures.cpp:3:9:3:12 | (captured this) |
| captures.cpp:3:9:3:12 | this |
| captures.cpp:3:15:3:15 | definition of operator() |
| captures.cpp:3:15:3:15 | operator() |
| captures.cpp:3:15:5:5 | { ... } |
| captures.cpp:4:7:4:7 | (captured this) |
@@ -41,26 +23,14 @@
| captures.cpp:4:9:4:13 | x |
| captures.cpp:4:13:4:13 | 1 |
| captures.cpp:5:5:5:5 | return ... |
| captures.cpp:6:3:6:3 | return ... |
| captures.cpp:8:8:8:8 | b |
| captures.cpp:8:8:8:8 | definition of b |
| captures.cpp:8:14:8:14 | definition of x |
| captures.cpp:8:14:8:14 | x |
| captures.cpp:8:17:12:3 | { ... } |
| captures.cpp:9:5:9:5 | (unnamed constructor) |
| captures.cpp:9:5:9:5 | (unnamed constructor) |
| captures.cpp:9:5:9:5 | (unnamed constructor) |
| captures.cpp:9:5:9:5 | declaration of (unnamed constructor) |
| captures.cpp:9:5:9:5 | declaration of (unnamed constructor) |
| captures.cpp:9:5:9:5 | definition of (unnamed constructor) |
| captures.cpp:9:5:9:5 | definition of operator= |
| captures.cpp:9:5:9:5 | operator= |
| captures.cpp:9:5:11:5 | [...](...){...} |
| captures.cpp:9:5:11:5 | this |
| captures.cpp:9:5:11:5 | x |
| captures.cpp:9:5:11:5 | {...} |
| captures.cpp:9:5:11:6 | ExprStmt |
| captures.cpp:9:9:9:9 | definition of operator() |
| captures.cpp:9:9:9:9 | operator() |
| captures.cpp:9:9:11:5 | { ... } |
| captures.cpp:10:7:10:7 | (captured this) |
@@ -78,48 +48,23 @@
| captures.cpp:10:9:10:13 | x |
| captures.cpp:10:13:10:13 | 1 |
| captures.cpp:11:5:11:5 | return ... |
| captures.cpp:12:3:12:3 | return ... |
| captures.cpp:14:15:14:15 | c |
| captures.cpp:14:15:14:15 | definition of c |
| captures.cpp:14:21:14:21 | definition of x |
| captures.cpp:14:21:14:21 | x |
| captures.cpp:14:24:18:3 | { ... } |
| captures.cpp:15:5:15:5 | (unnamed constructor) |
| captures.cpp:15:5:15:5 | (unnamed constructor) |
| captures.cpp:15:5:15:5 | (unnamed constructor) |
| captures.cpp:15:5:15:5 | declaration of (unnamed constructor) |
| captures.cpp:15:5:15:5 | declaration of (unnamed constructor) |
| captures.cpp:15:5:15:5 | definition of (unnamed constructor) |
| captures.cpp:15:5:15:5 | definition of operator= |
| captures.cpp:15:5:15:5 | operator= |
| captures.cpp:15:5:17:5 | [...](...){...} |
| captures.cpp:15:5:17:5 | {...} |
| captures.cpp:15:5:17:6 | ExprStmt |
| captures.cpp:15:6:15:6 | definition of x |
| captures.cpp:15:6:15:6 | x |
| captures.cpp:15:6:15:6 | x |
| captures.cpp:15:6:15:6 | x |
| captures.cpp:15:9:15:9 | definition of operator() |
| captures.cpp:15:9:15:9 | operator() |
| captures.cpp:15:9:17:5 | { ... } |
| captures.cpp:16:7:16:7 | call to c |
| captures.cpp:16:7:16:11 | ExprStmt |
| captures.cpp:16:9:16:9 | 0 |
| captures.cpp:16:13:16:49 | // `x` is unused, but still captured. |
| captures.cpp:17:5:17:5 | return ... |
| captures.cpp:18:3:18:3 | return ... |
| captures.cpp:21:5:21:5 | d |
| captures.cpp:21:5:21:5 | definition of d |
| captures.cpp:21:11:21:11 | definition of x |
| captures.cpp:21:11:21:11 | x |
| captures.cpp:21:18:21:18 | definition of y |
| captures.cpp:21:18:21:18 | y |
| captures.cpp:21:21:27:1 | { ... } |
| captures.cpp:22:3:24:4 | declaration |
| captures.cpp:22:8:22:15 | definition of myLambda |
| captures.cpp:22:8:22:15 | myLambda |
| captures.cpp:22:18:24:3 | [...](...){...} |
| captures.cpp:22:18:24:3 | initializer for myLambda |
| captures.cpp:22:18:24:3 | y |
| captures.cpp:22:18:24:3 | {...} |
| captures.cpp:22:19:22:19 | (reference dereference) |
@@ -131,10 +76,6 @@
| captures.cpp:22:19:22:19 | (unnamed parameter 0) |
| captures.cpp:22:19:22:19 | constructor init of field x |
| captures.cpp:22:19:22:19 | constructor init of field y |
| captures.cpp:22:19:22:19 | declaration of (unnamed constructor) |
| captures.cpp:22:19:22:19 | definition of (unnamed constructor) |
| captures.cpp:22:19:22:19 | definition of (unnamed constructor) |
| captures.cpp:22:19:22:19 | definition of operator= |
| captures.cpp:22:19:22:19 | operator= |
| captures.cpp:22:19:22:19 | return ... |
| captures.cpp:22:19:22:19 | x |
@@ -144,9 +85,7 @@
| captures.cpp:22:23:22:23 | x |
| captures.cpp:22:23:22:23 | x |
| captures.cpp:22:23:22:23 | x |
| captures.cpp:22:25:22:25 | definition of operator() |
| captures.cpp:22:25:22:25 | operator() |
| captures.cpp:22:30:22:30 | definition of z |
| captures.cpp:22:30:22:30 | z |
| captures.cpp:22:40:24:3 | { ... } |
| captures.cpp:23:5:23:21 | return ... |
@@ -161,30 +100,7 @@
| captures.cpp:23:16:23:16 | y |
| captures.cpp:23:16:23:16 | y |
| captures.cpp:23:20:23:20 | z |
| captures.cpp:26:3:26:24 | return ... |
| captures.cpp:26:10:26:17 | (const lambda [] type at line 22, col. 19)... |
| captures.cpp:26:10:26:17 | myLambda |
| captures.cpp:26:18:26:18 | call to operator() |
| captures.cpp:26:19:26:22 | 1000 |
| end_pos.cpp:0:0:0:0 | end_pos.cpp |
| end_pos.cpp:2:1:2:14 | #define OPEN { |
| end_pos.cpp:3:6:3:10 | definition of igFun |
| end_pos.cpp:3:6:3:10 | igFun |
| end_pos.cpp:3:14:12:1 | { ... } |
| end_pos.cpp:4:5:4:8 | OPEN |
| end_pos.cpp:4:5:5:5 | { ... } |
| end_pos.cpp:6:5:6:15 | declaration |
| end_pos.cpp:6:9:6:10 | definition of ii |
| end_pos.cpp:6:9:6:10 | ii |
| end_pos.cpp:6:13:6:14 | 0 |
| end_pos.cpp:6:13:6:14 | initializer for ii |
| end_pos.cpp:7:5:7:69 | // EDG used to not give the initialization for this ii capture an |
| end_pos.cpp:8:5:8:20 | // end location: |
| end_pos.cpp:9:5:11:6 | declaration |
| end_pos.cpp:9:10:9:11 | definition of fp |
| end_pos.cpp:9:10:9:11 | fp |
| end_pos.cpp:9:14:11:5 | [...](...){...} |
| end_pos.cpp:9:14:11:5 | initializer for fp |
| end_pos.cpp:9:14:11:5 | {...} |
| end_pos.cpp:9:15:9:15 | (reference dereference) |
| end_pos.cpp:9:15:9:15 | (unnamed constructor) |
@@ -192,10 +108,6 @@
| end_pos.cpp:9:15:9:15 | (unnamed constructor) |
| end_pos.cpp:9:15:9:15 | (unnamed parameter 0) |
| end_pos.cpp:9:15:9:15 | constructor init of field ii |
| end_pos.cpp:9:15:9:15 | declaration of (unnamed constructor) |
| end_pos.cpp:9:15:9:15 | definition of (unnamed constructor) |
| end_pos.cpp:9:15:9:15 | definition of (unnamed constructor) |
| end_pos.cpp:9:15:9:15 | definition of operator= |
| end_pos.cpp:9:15:9:15 | ii |
| end_pos.cpp:9:15:9:15 | operator= |
| end_pos.cpp:9:15:9:15 | return ... |
@@ -205,14 +117,10 @@
| end_pos.cpp:9:17:9:18 | (reference to) |
| end_pos.cpp:9:17:9:18 | ii |
| end_pos.cpp:9:17:9:18 | ii |
| end_pos.cpp:9:20:9:20 | definition of operator() |
| end_pos.cpp:9:20:9:20 | operator() |
| end_pos.cpp:9:27:11:5 | { ... } |
| end_pos.cpp:10:9:10:17 | return ... |
| end_pos.cpp:10:16:10:16 | 1 |
| end_pos.cpp:12:1:12:1 | return ... |
| file://:0:0:0:0 | |
| file://:0:0:0:0 | (global namespace) |
| file://:0:0:0:0 | (reference to) |
| file://:0:0:0:0 | (unnamed parameter 0) |
| file://:0:0:0:0 | (unnamed parameter 0) |
@@ -229,90 +137,8 @@
| file://:0:0:0:0 | (unnamed parameter 0) |
| file://:0:0:0:0 | (unnamed parameter 0) |
| file://:0:0:0:0 | (unnamed parameter 0) |
| file://:0:0:0:0 | (unnamed parameter 0) |
| file://:0:0:0:0 | (unnamed parameter 0) |
| file://:0:0:0:0 | (unnamed parameter 0) |
| file://:0:0:0:0 | (unnamed parameter 0) |
| file://:0:0:0:0 | ..()(..) |
| file://:0:0:0:0 | ..()(..) |
| file://:0:0:0:0 | ..(*)(..) |
| file://:0:0:0:0 | ..(*)(..) |
| file://:0:0:0:0 | ..(*)(..) |
| file://:0:0:0:0 | ..(..) |
| file://:0:0:0:0 | __super |
| file://:0:0:0:0 | __va_list_tag |
| file://:0:0:0:0 | __va_list_tag & |
| file://:0:0:0:0 | __va_list_tag && |
| file://:0:0:0:0 | auto |
| file://:0:0:0:0 | const __va_list_tag |
| file://:0:0:0:0 | const __va_list_tag & |
| file://:0:0:0:0 | const foo |
| file://:0:0:0:0 | const foo & |
| file://:0:0:0:0 | const lambda [] type at line 3, col. 5 |
| file://:0:0:0:0 | const lambda [] type at line 3, col. 5 & |
| file://:0:0:0:0 | const lambda [] type at line 3, col. 5 * |
| file://:0:0:0:0 | const lambda [] type at line 9, col. 5 |
| file://:0:0:0:0 | const lambda [] type at line 9, col. 5 & |
| file://:0:0:0:0 | const lambda [] type at line 9, col. 5 * |
| file://:0:0:0:0 | const lambda [] type at line 9, col. 15 |
| file://:0:0:0:0 | const lambda [] type at line 9, col. 15 & |
| file://:0:0:0:0 | const lambda [] type at line 9, col. 15 * |
| file://:0:0:0:0 | const lambda [] type at line 15, col. 5 |
| file://:0:0:0:0 | const lambda [] type at line 15, col. 5 & |
| file://:0:0:0:0 | const lambda [] type at line 15, col. 5 * |
| file://:0:0:0:0 | const lambda [] type at line 22, col. 19 |
| file://:0:0:0:0 | const lambda [] type at line 22, col. 19 & |
| file://:0:0:0:0 | const lambda [] type at line 22, col. 19 * |
| file://:0:0:0:0 | declaration of 1st parameter |
| file://:0:0:0:0 | declaration of 1st parameter |
| file://:0:0:0:0 | declaration of 1st parameter |
| file://:0:0:0:0 | declaration of 1st parameter |
| file://:0:0:0:0 | declaration of 1st parameter |
| file://:0:0:0:0 | declaration of 1st parameter |
| file://:0:0:0:0 | declaration of 1st parameter |
| file://:0:0:0:0 | declaration of 1st parameter |
| file://:0:0:0:0 | declaration of 1st parameter |
| file://:0:0:0:0 | declaration of 1st parameter |
| file://:0:0:0:0 | declaration of 1st parameter |
| file://:0:0:0:0 | declaration of 1st parameter |
| file://:0:0:0:0 | declaration of 1st parameter |
| file://:0:0:0:0 | declaration of 1st parameter |
| file://:0:0:0:0 | declaration of 1st parameter |
| file://:0:0:0:0 | declaration of 1st parameter |
| file://:0:0:0:0 | declaration of 1st parameter |
| file://:0:0:0:0 | decltype([...](...){...}) |
| file://:0:0:0:0 | decltype([...](...){...}) |
| file://:0:0:0:0 | decltype([...](...){...}) |
| file://:0:0:0:0 | decltype([...](...){...}) |
| file://:0:0:0:0 | decltype([...](...){...}) |
| file://:0:0:0:0 | definition of fp_offset |
| file://:0:0:0:0 | definition of gp_offset |
| file://:0:0:0:0 | definition of overflow_arg_area |
| file://:0:0:0:0 | definition of reg_save_area |
| file://:0:0:0:0 | foo & |
| file://:0:0:0:0 | foo && |
| file://:0:0:0:0 | foo * |
| file://:0:0:0:0 | foo *const |
| file://:0:0:0:0 | fp_offset |
| file://:0:0:0:0 | gp_offset |
| file://:0:0:0:0 | int & |
| file://:0:0:0:0 | lambda [] type at line 3, col. 5 & |
| file://:0:0:0:0 | lambda [] type at line 3, col. 5 && |
| file://:0:0:0:0 | lambda [] type at line 3, col. 5 * |
| file://:0:0:0:0 | lambda [] type at line 9, col. 5 & |
| file://:0:0:0:0 | lambda [] type at line 9, col. 5 && |
| file://:0:0:0:0 | lambda [] type at line 9, col. 5 * |
| file://:0:0:0:0 | lambda [] type at line 9, col. 15 & |
| file://:0:0:0:0 | lambda [] type at line 9, col. 15 && |
| file://:0:0:0:0 | lambda [] type at line 9, col. 15 * |
| file://:0:0:0:0 | lambda [] type at line 15, col. 5 & |
| file://:0:0:0:0 | lambda [] type at line 15, col. 5 && |
| file://:0:0:0:0 | lambda [] type at line 15, col. 5 * |
| file://:0:0:0:0 | lambda [] type at line 22, col. 19 & |
| file://:0:0:0:0 | lambda [] type at line 22, col. 19 && |
| file://:0:0:0:0 | lambda [] type at line 22, col. 19 * |
| file://:0:0:0:0 | operator= |
| file://:0:0:0:0 | operator= |
| file://:0:0:0:0 | overflow_arg_area |
| file://:0:0:0:0 | reg_save_area |
| file://:0:0:0:0 | void * |

View File

@@ -1,8 +1,13 @@
import cpp
predicate interesting(Element e) {
e instanceof LambdaCapture or
e instanceof LambdaExpression or
e = any(LambdaExpression le).getLambdaFunction() or
e = any(LambdaExpression le).getInitializer() or
e instanceof Closure
}
from Element e
where
not e instanceof BuiltInType and
not e instanceof Specifier and
not e instanceof Folder
where interesting(e.getEnclosingElement*())
select e

View File

@@ -0,0 +1,3 @@
| extern.cpp:1:20:1:20 | T |
| extern.cpp:2:5:2:5 | f |
| extern.cpp:2:7:2:7 | (unnamed parameter 0) |

View File

@@ -0,0 +1,5 @@
import cpp
from Declaration d
where d.getLocation().getFile().getBaseName() != ""
select d

View File

@@ -1,8 +0,0 @@
| extern.cpp:0:0:0:0 | extern.cpp |
| extern.cpp:1:20:1:20 | T |
| extern.cpp:1:20:1:20 | definition of T |
| extern.cpp:2:5:2:5 | declaration of f |
| extern.cpp:2:5:2:5 | f |
| extern.cpp:2:7:2:7 | (unnamed parameter 0) |
| extern.cpp:2:7:2:7 | declaration of 1st parameter |
| extern.cpp:4:1:4:58 | // Currently we don't have an element for this declaration |

View File

@@ -1,8 +0,0 @@
import cpp
from Element e
where
exists(e.getLocation()) and
not e.getLocation() instanceof UnknownLocation and
not e instanceof Folder
select e

View File

@@ -19,6 +19,7 @@ private import semmle.code.csharp.frameworks.system.Collections
private import semmle.code.csharp.frameworks.system.threading.Tasks
private import semmle.code.cil.Ssa::Ssa as CilSsa
private import semmle.code.cil.internal.SsaImpl as CilSsaImpl
import codeql.util.Unit
/** Gets the callable in which this node occurs. */
DataFlowCallable nodeGetEnclosingCallable(NodeImpl n) { result = n.getEnclosingCallableImpl() }
@@ -2163,15 +2164,6 @@ int accessPathLimit() { result = 5 }
*/
predicate forceHighPrecision(Content c) { c instanceof ElementContent }
/** The unit type. */
private newtype TUnit = TMkUnit()
/** The trivial type with a single element. */
class Unit extends TUnit {
/** Gets a textual representation of this element. */
string toString() { result = "unit" }
}
class LambdaCallKind = Unit;
/** Holds if `creation` is an expression that creates a delegate for `c`. */
@@ -2183,7 +2175,7 @@ predicate lambdaCreation(ExprNode creation, LambdaCallKind kind, DataFlowCallabl
e.(AddressOfExpr).getOperand().(CallableAccess).getTarget().getUnboundDeclaration()
]
) and
kind = TMkUnit()
exists(kind)
}
private class LambdaConfiguration extends ControlFlowReachabilityConfiguration {
@@ -2214,7 +2206,7 @@ predicate lambdaCall(DataFlowCall call, LambdaCallKind kind, Node receiver) {
or
receiver = call.(SummaryCall).getReceiver()
) and
kind = TMkUnit()
exists(kind)
}
/** Extra data-flow steps needed for lambda flow analysis. */

View File

@@ -7,5 +7,6 @@ library: true
upgrades: upgrades
dependencies:
codeql/tutorial: ${workspace}
codeql/util: ${workspace}
dataExtensions:
- ext/*.model.yml

View File

@@ -3,6 +3,7 @@ private import DataFlowUtil
private import DataFlowImplCommon
private import ContainerFlow
private import FlowSummaryImpl as FlowSummaryImpl
import codeql.util.Unit
import DataFlowNodes::Private
private newtype TReturnKind =
@@ -339,15 +340,6 @@ predicate forceHighPrecision(Content c) {
c instanceof ArrayContent or c instanceof CollectionContent
}
/** The unit type. */
private newtype TUnit = TMkUnit()
/** The trivial type with a single element. */
class Unit extends TUnit {
/** Gets a textual representation of this element. */
string toString() { result = "unit" }
}
/**
* Gets the `i`th argument of call `c`, where the receiver of a method call
* counts as argument -1.

View File

@@ -4,6 +4,7 @@
private import go
private import FlowSummaryImpl as FlowSummaryImpl
private import codeql.util.Unit
/**
* Holds if taint can flow from `src` to `sink` in zero or more
@@ -66,14 +67,6 @@ predicate defaultImplicitTaintRead(DataFlow::Node node, DataFlow::Content c) {
)
}
private newtype TUnit = TMkUnit()
/** A singleton class containing a single dummy "unit" value. */
private class Unit extends TUnit {
/** Gets a textual representation of this element. */
string toString() { result = "unit" }
}
/**
* A unit class for adding additional taint steps.
*

View File

@@ -49,13 +49,14 @@ jakarta.json,,,123,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,100,23
jakarta.ws.rs.client,1,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,
jakarta.ws.rs.container,,9,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,9,,
jakarta.ws.rs.core,2,,149,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,,,,,,,,,94,55
java.awt,,,3,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,3
java.beans,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,
java.io,42,,40,,17,,,,,,,,,,,,,,,3,,,,,,,,,,,,,22,,,,,,,,39,1
java.lang,16,,76,,,,,,,,,,,,8,,,,,3,,4,,,1,,,,,,,,,,,,,,,,53,23
java.io,42,,45,,17,,,,,,,,,,,,,,,3,,,,,,,,,,,,,22,,,,,,,,43,2
java.lang,16,,90,,,,,,,,,,,,8,,,,,3,,4,,,1,,,,,,,,,,,,,,,,55,35
java.net,12,3,17,,,,,,,,,,,,,,,12,,,,,,,,,,,,,,,,,,,,,,3,17,
java.nio,25,,29,,19,,,,,,,,,,,,,,,4,,,,,,,,,,,,,2,,,,,,,,29,
java.nio,25,,30,,19,,,,,,,,,,,,,,,4,,,,,,,,,,,,,2,,,,,,,,30,
java.sql,13,,3,,,,,,,,4,,,,,,,,,,,,,,,,,,9,,,,,,,,,,,,2,1
java.util,44,,465,,,,,,,,,,,,34,,,,,,,,5,2,,1,2,,,,,,,,,,,,,,38,427
java.util,44,,478,,,,,,,,,,,,34,,,,,,,,5,2,,1,2,,,,,,,,,,,,,,41,437
javafx.scene.web,1,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,
javax.faces.context,2,7,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,,,,7,,
javax.imageio.stream,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,
1 package sink source summary sink:bean-validation sink:create-file sink:fragment-injection sink:groovy sink:header-splitting sink:information-leak sink:intent-start sink:jdbc-url sink:jexl sink:jndi-injection sink:ldap sink:logging sink:mvel sink:ognl-injection sink:open-url sink:pending-intent-sent sink:read-file sink:regex-use sink:regex-use[-1] sink:regex-use[0] sink:regex-use[] sink:regex-use[f-1] sink:regex-use[f1] sink:regex-use[f] sink:set-hostname-verifier sink:sql sink:ssti sink:url-open-stream sink:url-redirect sink:write-file sink:xpath sink:xslt sink:xss source:android-external-storage-dir source:android-widget source:contentprovider source:remote summary:taint summary:value
49 jakarta.ws.rs.client 1 1
50 jakarta.ws.rs.container 9 9
51 jakarta.ws.rs.core 2 149 2 94 55
52 java.awt 3 3
53 java.beans 1 1
54 java.io 42 40 45 17 3 22 39 43 1 2
55 java.lang 16 76 90 8 3 4 1 53 55 23 35
56 java.net 12 3 17 12 3 17
57 java.nio 25 29 30 19 4 2 29 30
58 java.sql 13 3 4 9 2 1
59 java.util 44 465 478 34 5 2 1 2 38 41 427 437
60 javafx.scene.web 1 1
61 javax.faces.context 2 7 2 7
62 javax.imageio.stream 1 1

View File

@@ -18,10 +18,10 @@ Java framework & library support
`Google Guava <https://guava.dev/>`_,``com.google.common.*``,,730,39,,6,,,,,
JBoss Logging,``org.jboss.logging``,,,324,,,,,,,
`JSON-java <https://github.com/stleary/JSON-java>`_,``org.json``,,236,,,,,,,,
Java Standard Library,``java.*``,3,631,152,36,,,9,,,12
Java Standard Library,``java.*``,3,667,152,36,,,9,,,12
Java extensions,"``javax.*``, ``jakarta.*``",63,611,34,1,,4,,1,1,2
Kotlin Standard Library,``kotlin*``,,1835,12,10,,,,,,2
`Spring <https://spring.io/>`_,``org.springframework.*``,29,480,101,,,,19,14,,29
Others,"``cn.hutool.core.codec``, ``com.esotericsoftware.kryo.io``, ``com.esotericsoftware.kryo5.io``, ``com.fasterxml.jackson.core``, ``com.fasterxml.jackson.databind``, ``com.hubspot.jinjava``, ``com.mitchellbosecke.pebble``, ``com.opensymphony.xwork2.ognl``, ``com.rabbitmq.client``, ``com.thoughtworks.xstream``, ``com.unboundid.ldap.sdk``, ``com.zaxxer.hikari``, ``flexjson``, ``freemarker.cache``, ``freemarker.template``, ``groovy.lang``, ``groovy.util``, ``hudson.model``, ``hudson.os``, ``hudson.remoting``, ``hudson.util``, ``io.netty.bootstrap``, ``io.netty.channel``, ``io.netty.handler.codec.http``, ``io.netty.handler.ssl``, ``io.netty.handler.stream``, ``io.netty.resolver``, ``io.netty.util.internal``, ``javafx.scene.web``, ``jodd.json``, ``net.sf.saxon.s9api``, ``ognl``, ``okhttp3``, ``org.apache.commons.codec``, ``org.apache.commons.compress.archivers.tar``, ``org.apache.commons.jelly``, ``org.apache.commons.jexl2``, ``org.apache.commons.jexl3``, ``org.apache.commons.logging``, ``org.apache.commons.ognl``, ``org.apache.directory.ldap.client.api``, ``org.apache.hadoop.hive.metastore``, ``org.apache.hive.hcatalog.templeton``, ``org.apache.ibatis.jdbc``, ``org.apache.log4j``, ``org.apache.shiro.codec``, ``org.apache.shiro.jndi``, ``org.apache.tools.ant``, ``org.apache.tools.zip``, ``org.apache.velocity.app``, ``org.apache.velocity.runtime``, ``org.codehaus.cargo.container.installer``, ``org.codehaus.groovy.control``, ``org.dom4j``, ``org.geogebra.web.full.main``, ``org.hibernate``, ``org.jdbi.v3.core``, ``org.jooq``, ``org.kohsuke.stapler``, ``org.mvel2``, ``org.openjdk.jmh.runner.options``, ``org.scijava.log``, ``org.slf4j``, ``org.thymeleaf``, ``org.xml.sax``, ``org.xmlpull.v1``, ``play.mvc``, ``ratpack.core.form``, ``ratpack.core.handling``, ``ratpack.core.http``, ``ratpack.exec``, ``ratpack.form``, ``ratpack.func``, ``ratpack.handling``, ``ratpack.http``, ``ratpack.util``, ``retrofit2``",60,314,328,12,,,18,18,,28
Totals,,217,8508,1647,150,6,10,113,33,1,113
Totals,,217,8544,1647,150,6,10,113,33,1,113

View File

@@ -0,0 +1,4 @@
---
category: minorAnalysis
---
* Added sources and flow step models for the Netty framework up to version 4.1.

View File

@@ -0,0 +1,4 @@
---
category: deprecated
---
* The `WebViewDubuggingQuery` library has been renamed to `WebViewDebuggingQuery` to fix the typo in the file name. `WebViewDubuggingQuery` is now deprecated.

View File

@@ -0,0 +1,7 @@
---
category: minorAnalysis
---
* Added more sink and summary dataflow models for the following packages:
* `hudson.model`
* `hudson.scm`
* `hudson.util`

View File

@@ -0,0 +1,8 @@
---
category: minorAnalysis
---
* Added more sink and summary dataflow models for the following packages:
* `hudson.cli`
* `hudson.lifecycle`
* `hudson`
* `hudson.util.io`

View File

@@ -0,0 +1,7 @@
extensions:
- addsTo:
pack: codeql/java-all
extensible: sinkModel
data:
- ["hudson.cli", "FullDuplexHttpStream", True, "FullDuplexHttpStream", "(URL,String,String)", "", "Argument[0]", "open-url", "ai-generated"]
- ["hudson.cli", "FullDuplexHttpStream", True, "FullDuplexHttpStream", "(URL,String,String)", "", "Argument[1]", "open-url", "manual"]

View File

@@ -0,0 +1,6 @@
extensions:
- addsTo:
pack: codeql/java-all
extensible: sinkModel
data:
- ["hudson.lifecycle", "Lifecycle", True, "rewriteHudsonWar", "(File)", "", "Argument[0]", "create-file", "ai-generated"]

View File

@@ -1,14 +1,18 @@
extensions:
- addsTo:
pack: codeql/java-all
extensible: summaryModel
data:
- ["hudson.model", "DirectoryBrowserSupport$Path", False, "Path", "(String,String,boolean,long,boolean,long)", "", "Argument[0]", "Argument[this].SyntheticField[hudson.model.DirectoryBrowserSupport$Path.href]", "taint", "ai-generated"]
- addsTo:
pack: codeql/java-all
extensible: sinkModel
data:
- ["hudson.model", "DownloadService", True, "loadJSON", "(URL)", "", "Argument[0]", "open-url", "ai-generated"]
- ["hudson.model", "DownloadService", True, "loadJSONHTML", "(URL)", "", "Argument[0]", "open-url", "ai-generated"]
- ["hudson.model", "DirectoryBrowserSupport", False, "DirectoryBrowserSupport", "(ModelObject,FilePath,String,String,boolean)", "", "Argument[1]", "read-file", "ai-generated"]
- ["hudson.model", "Items", True, "load", "(ItemGroup,File)", "", "Argument[1]", "read-file", "ai-generated"]
- ["hudson.model", "UpdateCenter$UpdateCenterConfiguration", True, "download", "(DownloadJob,URL)", "", "Argument[1]", "open-url", "ai-generated"]
- ["hudson.model", "UpdateCenter$UpdateCenterConfiguration", True, "install", "(DownloadJob,File,File)", "", "Argument[1]", "create-file", "ai-generated"] # should be delete-file
- ["hudson.model", "UpdateCenter$UpdateCenterConfiguration", True, "install", "(DownloadJob,File,File)", "", "Argument[2]", "create-file", "ai-generated"]
- addsTo:
pack: codeql/java-all
extensible: summaryModel
data:
- ["hudson.model", "Node", True, "createPath", "(String)", "", "Argument[0]", "ReturnValue", "taint", "ai-generated"]
- ["hudson.model", "DirectoryBrowserSupport$Path", False, "Path", "(String,String,boolean,long,boolean,long)", "", "Argument[0]", "Argument[this].SyntheticField[hudson.model.DirectoryBrowserSupport$Path.href]", "taint", "ai-generated"]

View File

@@ -0,0 +1,26 @@
extensions:
- addsTo:
pack: codeql/java-all
extensible: sinkModel
data:
- ["hudson", "FilePath", False, "copyFrom", "(FilePath)", "", "Argument[0]", "read-file", "manual"]
- ["hudson", "FilePath", False, "copyFrom", "(URL)", "", "Argument[0]", "read-file", "manual"]
- ["hudson", "FilePath", False, "copyFrom", "(FileItem)", "", "Argument[0]", "read-file", "ai-generated"]
- ["hudson", "FilePath", False, "copyRecursiveTo", "(DirScanner,FilePath,String,TarCompression)", "", "Argument[1]", "create-file", "ai-generated"]
- ["hudson", "FilePath", False, "copyRecursiveTo", "(DirScanner,FilePath,String)", "", "Argument[1]", "write-file", "ai-generated"]
- ["hudson", "FilePath", False, "copyRecursiveTo", "(String,FilePath)", "", "Argument[1]", "create-file", "ai-generated"]
- ["hudson", "FilePath", False, "copyRecursiveTo", "(String,String,FilePath)", "", "Argument[0]", "read-file", "ai-generated"]
- ["hudson", "FilePath", False, "copyRecursiveTo", "(String,String,FilePath)", "", "Argument[2]", "create-file", "ai-generated"]
- ["hudson", "FilePath", False, "copyTo", "(FilePath)", "", "Argument[0]", "create-file", "ai-generated"]
- ["hudson", "FilePath", False, "installIfNecessaryFrom", "(URL,TaskListener,String)", "", "Argument[0]", "open-url", "ai-generated"]
- ["hudson", "FilePath", False, "newInputStreamDenyingSymlinkAsNeeded", "(File,String,boolean)", "", "Argument[0]", "read-file", "ai-generated"]
- addsTo:
pack: codeql/java-all
extensible: summaryModel
data:
- ["hudson", "FilePath", False, "child", "(String)", "", "Argument[0]", "ReturnValue", "taint", "ai-generated"]
- ["hudson", "FilePath", False, "list", "(String,String,boolean)", "", "Argument[this]", "ReturnValue", "taint", "ai-generated"]
- ["hudson", "FilePath", False, "list", "(String,String)", "", "Argument[this]", "ReturnValue", "taint", "ai-generated"]
- ["hudson", "FilePath", False, "list", "(String)", "", "Argument[this]", "ReturnValue", "taint", "ai-generated"]
- ["hudson", "FilePath", False, "normalize", "(String)", "", "Argument[0]", "ReturnValue", "taint", "ai-generated"]
- ["hudson", "FilePath", False, "sibling", "(String)", "", "Argument[0]", "ReturnValue", "taint", "ai-generated"]

View File

@@ -0,0 +1,18 @@
extensions:
- addsTo:
pack: codeql/java-all
extensible: sinkModel
data:
- ["hudson.scm", "ChangeLogParser", True, "parse", "(AbstractBuild,File)", "", "Argument[1]", "read-file", "ai-generated"]
- ["hudson.scm", "ChangeLogParser", True, "parse", "(Run,RepositoryBrowser,File)", "", "Argument[2]", "read-file", "ai-generated"]
- ["hudson.scm", "SCM", True, "checkout", "(AbstractBuild,Launcher,FilePath,BuildListener,File)", "", "Argument[2]", "create-file", "ai-generated"]
- ["hudson.scm", "SCM", True, "checkout", "(Run,Launcher,FilePath,TaskListener,File,SCMRevisionState)", "", "Argument[2]", "create-file", "ai-generated"]
- ["hudson.scm", "SCM", True, "compareRemoteRevisionWith", "(Job,Launcher,FilePath,TaskListener,SCMRevisionState)", "", "Argument[2]", "read-file", "ai-generated"]
- addsTo:
pack: codeql/java-all
extensible: summaryModel
data:
- ["hudson.scm", "SCM", True, "getModuleRoot", "(FilePath,AbstractBuild)", "", "Argument[0]", "ReturnValue", "taint", "ai-generated"]
- ["hudson.scm", "SCM", True, "getModuleRoot", "(FilePath)", "", "Argument[0]", "ReturnValue", "taint", "ai-generated"]
- ["hudson.scm", "SCM", True, "getModuleRoots", "(FilePath,AbstractBuild)", "", "Argument[0]", "ReturnValue", "taint", "ai-generated"]
- ["hudson.scm", "SCM", True, "getModuleRoots", "(FilePath)", "", "Argument[0]", "ReturnValue", "taint", "ai-generated"]

View File

@@ -0,0 +1,7 @@
extensions:
- addsTo:
pack: codeql/java-all
extensible: sinkModel
data:
- ["hudson.util.io", "ReopenableFileOutputStream", True, "ReopenableFileOutputStream", "(File)", "", "Argument[0]", "create-file", "ai-generated"]
- ["hudson.util.io", "RewindableFileOutputStream", True, "RewindableFileOutputStream", "(File)", "", "Argument[0]", "create-file", "ai-generated"]

View File

@@ -1,11 +1,25 @@
extensions:
- addsTo:
pack: codeql/java-all
extensible: sinkModel
data:
- ["hudson.util", "AtomicFileWriter", True, "AtomicFileWriter", "(File)", "", "Argument[0]", "create-file", "ai-generated"]
- ["hudson.util", "AtomicFileWriter", True, "AtomicFileWriter", "(Path,Charset,boolean,boolean)", "", "Argument[0]", "create-file", "ai-generated"]
- ["hudson.util", "AtomicFileWriter", True, "AtomicFileWriter", "(Path,Charset)", "", "Argument[0]", "create-file", "ai-generated"]
- ["hudson.util", "ClasspathBuilder", True, "add", "(FilePath)", "", "Argument[0]", "read-file", "ai-generated"]
- ["hudson.util", "IOUtils", True, "mkdirs", "(File)", "", "Argument[0]", "create-file", "ai-generated"]
- ["hudson.util", "StreamTaskListener", True, "StreamTaskListener", "(File,boolean,Charset)", "", "Argument[0]", "create-file", "ai-generated"]
- ["hudson.util", "TextFile", True, "delete", "()", "", "Argument[this]", "create-file", "manual"]
- ["hudson.util", "TextFile", True, "fastTail", "", "", "Argument[this]", "read-file", "manual"]
- ["hudson.util", "TextFile", True, "head", "", "", "Argument[this]", "read-file", "manual"]
- ["hudson.util", "TextFile", True, "lines", "()", "", "Argument[this]", "read-file", "manual"]
- ["hudson.util", "TextFile", True, "read", "()", "", "Argument[this]", "read-file", "manual"]
- ["hudson.util", "TextFile", True, "readTrim", "()", "", "Argument[this]", "read-file", "manual"]
- ["hudson.util", "TextFile", True, "write", "(String)", "", "Argument[0]", "write-file", "manual"]
- addsTo:
pack: codeql/java-all
extensible: summaryModel
data:
- ["hudson.util", "QuotedStringTokenizer", True, "tokenize", "(String)", "", "Argument[0]", "ReturnValue", "taint", "ai-generated"]
- addsTo:
pack: codeql/java-all
extensible: sinkModel
data:
- ["hudson.util", "StreamTaskListener", True, "StreamTaskListener", "(File,boolean,Charset)", "", "Argument[0]", "create-file", "ai-generated"]
- ["hudson.util", "TextFile", True, "TextFile", "(File)", "", "Argument[0]", "Argument[this]", "taint", "ai-generated"]

View File

@@ -0,0 +1,212 @@
extensions:
- addsTo:
pack: codeql/java-all
extensible: summaryModel
data:
- ["io.netty.buffer", "ByteBufConvertible", True, "asByteBuf", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "array", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "asReadOnly", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "capacity", "(int)", "", "Argument[this]", "ReturnValue", "value", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "copy", "", "", "Argument[this]", "ReturnValue", "taint", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "discardReadBytes", "()", "", "Argument[this]", "ReturnValue", "value", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "discardSomeReadBytes", "()", "", "Argument[this]", "ReturnValue", "value", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "duplicate", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "ensureWritable", "(int)", "", "Argument[this]", "ReturnValue", "value", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "getBytes", "(int,byte[])", "", "Argument[this]", "ReturnValue", "value", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "getBytes", "(int,byte[],int,int)", "", "Argument[this]", "ReturnValue", "value", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "getBytes", "(int,ByteBuf)", "", "Argument[this]", "ReturnValue", "value", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "getBytes", "(int,ByteBuffer)", "", "Argument[this]", "ReturnValue", "value", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "getBytes", "(int,ByteBuf,int)", "", "Argument[this]", "ReturnValue", "value", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "getBytes", "(int,ByteBuf,int,int)", "", "Argument[this]", "ReturnValue", "value", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "getBytes", "(int,OutputStream,int)", "", "Argument[this]", "ReturnValue", "value", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "markReaderIndex", "()", "", "Argument[this]", "ReturnValue", "value", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "markWriterIndex", "()", "", "Argument[this]", "ReturnValue", "value", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "nioBuffer", "", "", "Argument[this]", "ReturnValue", "taint", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "nioBuffers", "", "", "Argument[this]", "ReturnValue", "taint", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "order", "(ByteOrder)", "", "Argument[this]", "ReturnValue", "taint", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "readBytes", "(byte[])", "", "Argument[this]", "ReturnValue", "value", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "readBytes", "(byte[],int,int)", "", "Argument[this]", "ReturnValue", "value", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "readBytes", "(ByteBuf)", "", "Argument[this]", "ReturnValue", "value", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "readBytes", "(ByteBuffer)", "", "Argument[this]", "ReturnValue", "value", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "readBytes", "(ByteBuf,int)", "", "Argument[this]", "ReturnValue", "value", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "readBytes", "(ByteBuf,int,int)", "", "Argument[this]", "ReturnValue", "value", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "readBytes", "(OutputStream,int)", "", "Argument[this]", "ReturnValue", "value", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "readerIndex", "(int)", "", "Argument[this]", "ReturnValue", "value", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "resetReaderIndex", "()", "", "Argument[this]", "ReturnValue", "value", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "resetWriterIndex", "()", "", "Argument[this]", "ReturnValue", "value", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "retainedDuplicate", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "retainedSlice", "", "", "Argument[this]", "ReturnValue", "taint", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "setBoolean", "", "", "Argument[this]", "ReturnValue", "value", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "setByte", "", "", "Argument[this]", "ReturnValue", "value", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "setBytes", "(int,byte[])", "", "Argument[this]", "ReturnValue", "value", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "setBytes", "(int,byte[],int,int)", "", "Argument[this]", "ReturnValue", "value", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "setBytes", "(int,ByteBuf)", "", "Argument[this]", "ReturnValue", "value", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "setBytes", "(int,ByteBuffer)", "", "Argument[this]", "ReturnValue", "value", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "setBytes", "(int,ByteBuf,int)", "", "Argument[this]", "ReturnValue", "value", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "setBytes", "(int,ByteBuf,int,int)", "", "Argument[this]", "ReturnValue", "value", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "setChar", "", "", "Argument[this]", "ReturnValue", "value", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "setDouble", "", "", "Argument[this]", "ReturnValue", "value", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "setDoubleLE", "", "", "Argument[this]", "ReturnValue", "value", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "setFloat", "", "", "Argument[this]", "ReturnValue", "value", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "setFloatLE", "", "", "Argument[this]", "ReturnValue", "value", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "setIndex", "", "", "Argument[this]", "ReturnValue", "value", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "setInt", "", "", "Argument[this]", "ReturnValue", "value", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "setIntLE", "", "", "Argument[this]", "ReturnValue", "value", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "setLong", "", "", "Argument[this]", "ReturnValue", "value", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "setLongLE", "", "", "Argument[this]", "ReturnValue", "value", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "setMedium", "", "", "Argument[this]", "ReturnValue", "value", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "setMediumLE", "", "", "Argument[this]", "ReturnValue", "value", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "setShort", "", "", "Argument[this]", "ReturnValue", "value", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "setShortLE", "", "", "Argument[this]", "ReturnValue", "value", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "setZero", "", "", "Argument[this]", "ReturnValue", "value", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "skipBytes", "(int)", "", "Argument[this]", "ReturnValue", "value", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "slice", "", "", "Argument[this]", "ReturnValue", "taint", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "toString", "", "", "Argument[this]", "ReturnValue", "taint", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "unwrap", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "writeBoolean", "", "", "Argument[this]", "ReturnValue", "value", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "writeByte", "", "", "Argument[this]", "ReturnValue", "value", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "writeBytes", "(byte[])", "", "Argument[this]", "ReturnValue", "value", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "writeBytes", "(byte[],int,int)", "", "Argument[this]", "ReturnValue", "value", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "writeBytes", "(ByteBuf)", "", "Argument[this]", "ReturnValue", "value", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "writeBytes", "(ByteBuffer)", "", "Argument[this]", "ReturnValue", "value", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "writeBytes", "(ByteBuf,int)", "", "Argument[this]", "ReturnValue", "value", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "writeBytes", "(ByteBuf,int,int)", "", "Argument[this]", "ReturnValue", "value", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "writeChar", "", "", "Argument[this]", "ReturnValue", "value", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "writeDouble", "", "", "Argument[this]", "ReturnValue", "value", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "writeDoubleLE", "", "", "Argument[this]", "ReturnValue", "value", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "writeFloat", "", "", "Argument[this]", "ReturnValue", "value", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "writeFloatLE", "", "", "Argument[this]", "ReturnValue", "value", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "writeInt", "", "", "Argument[this]", "ReturnValue", "value", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "writeIntLE", "", "", "Argument[this]", "ReturnValue", "value", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "writeLong", "", "", "Argument[this]", "ReturnValue", "value", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "writeLongLE", "", "", "Argument[this]", "ReturnValue", "value", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "writeMedium", "", "", "Argument[this]", "ReturnValue", "value", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "writeMediumLE", "", "", "Argument[this]", "ReturnValue", "value", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "writeShort", "", "", "Argument[this]", "ReturnValue", "value", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "writeShortLE", "", "", "Argument[this]", "ReturnValue", "value", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "writeZero", "", "", "Argument[this]", "ReturnValue", "value", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "writerIndex", "(int)", "", "Argument[this]", "ReturnValue", "value", "manual"]
- ["io.netty.buffer", "ByteBufHolder", True, "copy", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"]
- ["io.netty.buffer", "ByteBufHolder", True, "content", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"]
- ["io.netty.buffer", "ByteBufHolder", True, "duplicate", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"]
- ["io.netty.buffer", "ByteBufHolder", True, "retainedDuplicate", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"]
- ["io.netty.buffer", "ByteBufHolder", True, "replace", "(ByteBuf)", "", "Argument[0]", "ReturnValue", "taint", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "getBytes", "(int,byte[])", "", "Argument[this]", "Argument[1]", "taint", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "getBytes", "(int,byte[],int,int)", "", "Argument[this]", "Argument[1]", "taint", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "getBytes", "(int,ByteBuf)", "", "Argument[this]", "Argument[1]", "taint", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "getBytes", "(int,ByteBuffer)", "", "Argument[this]", "Argument[1]", "taint", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "getBytes", "(int,ByteBuf,int)", "", "Argument[this]", "Argument[1]", "taint", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "getBytes", "(int,ByteBuf,int,int)", "", "Argument[this]", "Argument[1]", "taint", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "getBytes", "(int,FileChannel,long,int)", "", "Argument[this]", "Argument[1]", "taint", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "getBytes", "(int,GatheringByteChannel,int)", "", "Argument[this]", "Argument[1]", "taint", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "getBytes", "(int,OutputStream,int)", "", "Argument[this]", "Argument[1]", "taint", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "getChar", "", "", "Argument[this]", "ReturnValue", "taint", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "getCharSequence", "", "", "Argument[this]", "ReturnValue", "taint", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "readBytes", "(byte[])", "", "Argument[this]", "Argument[0]", "taint", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "readBytes", "(byte[],int,int)", "", "Argument[this]", "Argument[0]", "taint", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "readBytes", "(ByteBuf)", "", "Argument[this]", "Argument[0]", "taint", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "readBytes", "(ByteBuffer)", "", "Argument[this]", "Argument[0]", "taint", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "readBytes", "(ByteBuf,int)", "", "Argument[this]", "Argument[0]", "taint", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "readBytes", "(ByteBuf,int,int)", "", "Argument[this]", "Argument[0]", "taint", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "readBytes", "(FileChannel,long,int)", "", "Argument[this]", "Argument[0]", "taint", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "readBytes", "(GatheringByteChannel,int)", "", "Argument[this]", "Argument[0]", "taint", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "readBytes", "(OutputStream,int)", "", "Argument[this]", "Argument[0]", "taint", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "readBytes", "(int)", "", "Argument[this]", "ReturnValue", "taint", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "readChar", "", "", "Argument[this]", "ReturnValue", "taint", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "readCharSequence", "", "", "Argument[this]", "ReturnValue", "taint", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "readSlice", "(int)", "", "Argument[this]", "ReturnValue", "taint", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "readRetainedSlice", "(int)", "", "Argument[this]", "ReturnValue", "taint", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "setBytes", "(int,byte[])", "", "Argument[1]", "Argument[this]", "taint", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "setBytes", "(int,byte[],int,int)", "", "Argument[1]", "Argument[this]", "taint", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "setBytes", "(int,ByteBuf)", "", "Argument[1]", "Argument[this]", "taint", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "setBytes", "(int,ByteBuffer)", "", "Argument[1]", "Argument[this]", "taint", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "setBytes", "(int,ByteBuf,int)", "", "Argument[1]", "Argument[this]", "taint", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "setBytes", "(int,ByteBuf,int,int)", "", "Argument[1]", "Argument[this]", "taint", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "setBytes", "(int,FileChannel,long,int)", "", "Argument[1]", "Argument[this]", "taint", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "setBytes", "(int,ScatteringByteChannel,int)", "", "Argument[1]", "Argument[this]", "taint", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "setBytes", "(int,InputStream,int)", "", "Argument[1]", "Argument[this]", "taint", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "setChar", "", "", "Argument[1]", "Argument[this]", "taint", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "setCharSequence", "", "", "Argument[1]", "Argument[this]", "taint", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "writeByte", "", "", "Argument[0]", "Argument[this]", "taint", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "writeBytes", "(byte[])", "", "Argument[0]", "Argument[this]", "taint", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "writeBytes", "(byte[],int,int)", "", "Argument[0]", "Argument[this]", "taint", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "writeBytes", "(ByteBuf)", "", "Argument[0]", "Argument[this]", "taint", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "writeBytes", "(ByteBuffer)", "", "Argument[0]", "Argument[this]", "taint", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "writeBytes", "(ByteBuf,int)", "", "Argument[0]", "Argument[this]", "taint", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "writeBytes", "(ByteBuf,int,int)", "", "Argument[0]", "Argument[this]", "taint", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "writeBytes", "(FileChannel,long,int)", "", "Argument[0]", "Argument[this]", "taint", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "writeBytes", "(ScatteringByteChannel,int)", "", "Argument[0]", "Argument[this]", "taint", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "writeBytes", "(InputStream,int)", "", "Argument[0]", "Argument[this]", "taint", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "writeChar", "", "", "Argument[0]", "Argument[this]", "taint", "manual"]
- ["io.netty.buffer", "ByteBuf", True, "writeCharSequence", "", "", "Argument[0]", "Argument[this]", "taint", "manual"]
- ["io.netty.buffer", "CompositeByteBuf", False, "CompositeByteBuf", "(ByteBufAllocator,boolean,int,ByteBuf[])", "", "Argument[3].ArrayElement", "Argument[this]", "taint", "manual"]
- ["io.netty.buffer", "CompositeByteBuf", False, "CompositeByteBuf", "(ByteBufAllocator,boolean,int,Iterable)", "", "Argument[3].Element", "Argument[this]", "taint", "manual"]
- ["io.netty.buffer", "CompositeByteBuf", True, "addComponent", "(ByteBuf)", "", "Argument[0]", "Argument[this]", "taint", "manual"]
- ["io.netty.buffer", "CompositeByteBuf", True, "addComponent", "(int,ByteBuf)", "", "Argument[1]", "Argument[this]", "taint", "manual"]
- ["io.netty.buffer", "CompositeByteBuf", True, "addComponent", "(boolean,ByteBuf)", "", "Argument[1]", "Argument[this]", "taint", "manual"]
- ["io.netty.buffer", "CompositeByteBuf", True, "addComponent", "(boolean,int,ByteBuf)", "", "Argument[2]", "Argument[this]", "taint", "manual"]
- ["io.netty.buffer", "CompositeByteBuf", True, "addComponents", "(ByteBuf[])", "", "Argument[0].ArrayElement", "Argument[this]", "taint", "manual"]
- ["io.netty.buffer", "CompositeByteBuf", True, "addComponents", "(int,ByteBuf[])", "", "Argument[1].ArrayElement", "Argument[this]", "taint", "manual"]
- ["io.netty.buffer", "CompositeByteBuf", True, "addComponents", "(boolean,ByteBuf[])", "", "Argument[1].ArrayElement", "Argument[this]", "taint", "manual"]
- ["io.netty.buffer", "CompositeByteBuf", True, "addComponents", "(Iterable)", "", "Argument[0].Element", "Argument[this]", "taint", "manual"]
- ["io.netty.buffer", "CompositeByteBuf", True, "addComponents", "(int,Iterable)", "", "Argument[1].Element", "Argument[this]", "taint", "manual"]
- ["io.netty.buffer", "CompositeByteBuf", True, "addComponents", "(boolean,Iterable)", "", "Argument[1].Element", "Argument[this]", "taint", "manual"]
- ["io.netty.buffer", "CompositeByteBuf", True, "addFlattenedComponents", "(boolean,ByteBuf)", "", "Argument[1]", "Argument[this]", "taint", "manual"]
- ["io.netty.buffer", "CompositeByteBuf", True, "addComponent", "", "", "Argument[this]", "ReturnValue", "value", "manual"]
- ["io.netty.buffer", "CompositeByteBuf", True, "addComponents", "", "", "Argument[this]", "ReturnValue", "value", "manual"]
- ["io.netty.buffer", "CompositeByteBuf", True, "addFlattenedComponents", "", "", "Argument[this]", "ReturnValue", "value", "manual"]
- ["io.netty.buffer", "CompositeByteBuf", True, "component", "(int)", "", "Argument[this]", "ReturnValue", "taint", "manual"]
- ["io.netty.buffer", "CompositeByteBuf", True, "componentAtOffset", "(int)", "", "Argument[this]", "ReturnValue", "taint", "manual"]
- ["io.netty.buffer", "CompositeByteBuf", True, "consolidate", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"]
- ["io.netty.buffer", "CompositeByteBuf", True, "consolidate", "(int,int)", "", "Argument[this]", "ReturnValue", "taint", "manual"]
- ["io.netty.buffer", "CompositeByteBuf", True, "decompose", "(int,int)", "", "Argument[this]", "ReturnValue.Element", "taint", "manual"]
- ["io.netty.buffer", "Unpooled", False, "copiedBuffer", "(byte[])", "", "Argument[0]", "ReturnValue", "taint", "manual"]
- ["io.netty.buffer", "Unpooled", False, "copiedBuffer", "(byte[][])", "", "Argument[0].ArrayElement", "ReturnValue", "taint", "manual"]
- ["io.netty.buffer", "Unpooled", False, "copiedBuffer", "(byte[],int,int)", "", "Argument[0]", "ReturnValue", "taint", "manual"]
- ["io.netty.buffer", "Unpooled", False, "copiedBuffer", "(ByteBuf)", "", "Argument[0]", "ReturnValue", "taint", "manual"]
- ["io.netty.buffer", "Unpooled", False, "copiedBuffer", "(ByteBuf[])", "", "Argument[0].ArrayElement", "ReturnValue", "taint", "manual"]
- ["io.netty.buffer", "Unpooled", False, "copiedBuffer", "(ByteBuffer)", "", "Argument[0]", "ReturnValue", "taint", "manual"]
- ["io.netty.buffer", "Unpooled", False, "copiedBuffer", "(ByteBuffer[])", "", "Argument[0].ArrayElement", "ReturnValue", "taint", "manual"]
- ["io.netty.buffer", "Unpooled", False, "copiedBuffer", "(char[],Charset)", "", "Argument[0]", "ReturnValue", "taint", "manual"]
- ["io.netty.buffer", "Unpooled", False, "copiedBuffer", "(char[],int,int,Charset)", "", "Argument[0]", "ReturnValue", "taint", "manual"]
- ["io.netty.buffer", "Unpooled", False, "copiedBuffer", "(CharSequence,Charset)", "", "Argument[0]", "ReturnValue", "taint", "manual"]
- ["io.netty.buffer", "Unpooled", False, "copiedBuffer", "(CharSequence,int,int,Charset)", "", "Argument[0]", "ReturnValue", "taint", "manual"]
- ["io.netty.buffer", "Unpooled", False, "unmodifiableBuffer", "(ByteBuf)", "", "Argument[0]", "ReturnValue", "taint", "manual"]
- ["io.netty.buffer", "Unpooled", False, "unmodifiableBuffer", "(ByteBuf[])", "", "Argument[0].ArrayElement", "ReturnValue", "taint", "manual"]
- ["io.netty.buffer", "Unpooled", False, "unreleasableBuffer", "(ByteBuf)", "", "Argument[0]", "ReturnValue", "taint", "manual"]
- ["io.netty.buffer", "Unpooled", False, "wrappedBuffer", "(byte[])", "", "Argument[0]", "ReturnValue", "taint", "manual"]
- ["io.netty.buffer", "Unpooled", False, "wrappedBuffer", "(byte[][])", "", "Argument[0].ArrayElement", "ReturnValue", "taint", "manual"]
- ["io.netty.buffer", "Unpooled", False, "wrappedBuffer", "(byte[],int,int)", "", "Argument[0]", "ReturnValue", "taint", "manual"]
- ["io.netty.buffer", "Unpooled", False, "wrappedBuffer", "(ByteBuf)", "", "Argument[0]", "ReturnValue", "taint", "manual"]
- ["io.netty.buffer", "Unpooled", False, "wrappedBuffer", "(ByteBuf[])", "", "Argument[0].ArrayElement", "ReturnValue", "taint", "manual"]
- ["io.netty.buffer", "Unpooled", False, "wrappedBuffer", "(ByteBuffer)", "", "Argument[0]", "ReturnValue", "taint", "manual"]
- ["io.netty.buffer", "Unpooled", False, "wrappedBuffer", "(ByteBuffer[])", "", "Argument[0].ArrayElement", "ReturnValue", "taint", "manual"]
- ["io.netty.buffer", "Unpooled", False, "wrappedBuffer", "(int,byte[][])", "", "Argument[1].ArrayElement", "ReturnValue", "taint", "manual"]
- ["io.netty.buffer", "Unpooled", False, "wrappedBuffer", "(int,ByteBuf[])", "", "Argument[1].ArrayElement", "ReturnValue", "taint", "manual"]
- ["io.netty.buffer", "Unpooled", False, "wrappedBuffer", "(int,ByteBuffer[])", "", "Argument[1].ArrayElement", "ReturnValue", "taint", "manual"]
- ["io.netty.buffer", "Unpooled", False, "wrappedUnmodifiableBuffer", "(ByteBuf[])", "", "Argument[0].ArrayElement", "ReturnValue", "taint", "manual"]
- ["io.netty.buffer", "ByteBufUtil", False, "copy", "(AsciiString,ByteBuf)", "", "Argument[0]", "Argument[1]", "taint", "manual"]
- ["io.netty.buffer", "ByteBufUtil", False, "copy", "(AsciiString,int,ByteBuf,int)", "", "Argument[0]", "Argument[2]", "taint", "manual"]
- ["io.netty.buffer", "ByteBufUtil", False, "copy", "(AsciiString,int,ByteBuf,int,int)", "", "Argument[0]", "Argument[2]", "taint", "manual"]
- ["io.netty.buffer", "ByteBufUtil", False, "decodeHexDump", "(CharSequence)", "", "Argument[0]", "ReturnValue", "taint", "manual"]
- ["io.netty.buffer", "ByteBufUtil", False, "decodeHexDump", "(CharSequence,int,int)", "", "Argument[0]", "ReturnValue", "taint", "manual"]
- ["io.netty.buffer", "ByteBufUtil", False, "encodeString", "(ByteBufAllocator,CharBuffer,Charset)", "", "Argument[1]", "ReturnValue", "taint", "manual"]
- ["io.netty.buffer", "ByteBufUtil", False, "encodeString", "(ByteBufAllocator,CharBuffer,Charset,int)", "", "Argument[1]", "ReturnValue", "taint", "manual"]
- ["io.netty.buffer", "ByteBufUtil", False, "ensureAccessible", "(ByteBuf)", "", "Argument[0]", "ReturnValue", "value", "manual"]
- ["io.netty.buffer", "ByteBufUtil", False, "getBytes", "(ByteBuf)", "", "Argument[0]", "ReturnValue", "taint", "manual"]
- ["io.netty.buffer", "ByteBufUtil", False, "getBytes", "(ByteBuf,int,int)", "", "Argument[0]", "ReturnValue", "taint", "manual"]
- ["io.netty.buffer", "ByteBufUtil", False, "getBytes", "(ByteBuf,int,int,boolean)", "", "Argument[0]", "ReturnValue", "taint", "manual"]
- ["io.netty.buffer", "ByteBufUtil", False, "readBytes", "(ByteBufAllocator,ByteBuf,int)", "", "Argument[1]", "ReturnValue", "taint", "manual"]
- ["io.netty.buffer", "ByteBufUtil", False, "reserveAndWriteUtf8", "(ByteBuf,CharSequence,int)", "", "Argument[1]", "Argument[0]", "taint", "manual"]
- ["io.netty.buffer", "ByteBufUtil", False, "reserveAndWriteUtf8", "(ByteBuf,CharSequence,int,int,int)", "", "Argument[1]", "Argument[0]", "taint", "manual"]
- ["io.netty.buffer", "ByteBufUtil", False, "setShortBE", "(ByteBuf,int,int)", "", "Argument[0]", "ReturnValue", "value", "manual"]
- ["io.netty.buffer", "ByteBufUtil", False, "writeAscii", "(ByteBuf,CharSequence)", "", "Argument[1]", "Argument[0]", "taint", "manual"]
- ["io.netty.buffer", "ByteBufUtil", False, "writeAscii", "(ByteBufAllocator,CharSequence)", "", "Argument[1]", "ReturnValue", "taint", "manual"]
- ["io.netty.buffer", "ByteBufUtil", False, "writeShortBE", "(ByteBuf,int)", "", "Argument[0]", "ReturnValue", "value", "manual"]
- ["io.netty.buffer", "ByteBufUtil", False, "writeMediumBE", "(ByteBuf,int)", "", "Argument[0]", "ReturnValue", "value", "manual"]
- ["io.netty.buffer", "ByteBufUtil", False, "writeUtf8", "(ByteBuf,CharSequence)", "", "Argument[1]", "Argument[0]", "taint", "manual"]
- ["io.netty.buffer", "ByteBufUtil", False, "writeUtf8", "(ByteBuf,CharSequence,int,int)", "", "Argument[1]", "Argument[0]", "taint", "manual"]
- ["io.netty.buffer", "ByteBufUtil", False, "writeUtf8", "(ByteBufAllocator,CharSequence)", "", "Argument[1]", "ReturnValue", "taint", "manual"]
- ["io.netty.buffer", "ByteBufInputStream", True, "ByteBufInputStream", "", "", "Argument[0]", "Argument[this]", "taint", "manual"]
- ["io.netty.buffer", "ByteBufOutputStream", True, "ByteBufOutputStream", "", "", "Argument[0]", "Argument[this]", "taint", "manual"]
- ["io.netty.buffer", "ByteBufOutputStream", True, "buffer", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"]

View File

@@ -12,3 +12,9 @@ extensions:
- ["io.netty.channel", "DefaultChannelPipeline", False, "connect", "(SocketAddress,ChannelPromise)", "", "Argument[0]", "open-url", "ai-generated"]
- ["io.netty.channel", "DefaultChannelPipeline", False, "connect", "(SocketAddress,SocketAddress,ChannelPromise)", "", "Argument[0]", "open-url", "ai-generated"]
- ["io.netty.channel", "DefaultChannelPipeline", False, "connect", "(SocketAddress,SocketAddress)", "", "Argument[0]", "open-url", "ai-generated"]
- addsTo:
pack: codeql/java-all
extensible: sourceModel
data:
- ["io.netty.channel", "ChannelInboundHandler", True, "channelRead", "", "", "Parameter[1]", "remote", "manual"]
- ["io.netty.channel", "SimpleChannelInboundHandler", True, "channelRead0", "", "", "Parameter[1]", "remote", "manual"]

View File

@@ -0,0 +1,8 @@
extensions:
- addsTo:
pack: codeql/java-all
extensible: summaryModel
data:
- ["io.netty.handler.codec.base64", "Base64", True, "decode", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
- ["io.netty.handler.codec.base64", "Base64", True, "encode", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]

View File

@@ -0,0 +1,19 @@
extensions:
- addsTo:
pack: codeql/java-all
extensible: summaryModel
data:
- ["io.netty.handler.codec.http.cookie", "Cookie", True, "domain", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"]
- ["io.netty.handler.codec.http.cookie", "Cookie", True, "name", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"]
- ["io.netty.handler.codec.http.cookie", "Cookie", True, "path", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"]
- ["io.netty.handler.codec.http.cookie", "Cookie", True, "value", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"]
- ["io.netty.handler.codec.http.cookie", "Cookie", True, "setDomain", "(String)", "", "Argument[0]", "Argument[this]", "taint", "manual"]
- ["io.netty.handler.codec.http.cookie", "Cookie", True, "setPath", "(String)", "", "Argument[0]", "Argument[this]", "taint", "manual"]
- ["io.netty.handler.codec.http.cookie", "Cookie", True, "setValue", "(String)", "", "Argument[0]", "Argument[this]", "taint", "manual"]
- ["io.netty.handler.codec.http.cookie", "ServerCookieDecoder", True, "decode", "(String)", "", "Argument[0]", "ReturnValue.Element", "taint", "manual"]
- ["io.netty.handler.codec.http.cookie", "ServerCookieDecoder", True, "decodeAll", "(String)", "", "Argument[0]", "ReturnValue.Element", "taint", "manual"]
- ["io.netty.handler.codec.http.cookie", "ServerCookieEncoder", True, "encode", "(Cookie)", "", "Argument[0]", "ReturnValue", "taint", "manual"]
- ["io.netty.handler.codec.http.cookie", "ServerCookieEncoder", True, "encode", "(Cookie[])", "", "Argument[0].ArrayElement", "ReturnValue.Element", "taint", "manual"]
- ["io.netty.handler.codec.http.cookie", "ServerCookieEncoder", True, "encode", "(Collection)", "", "Argument[0].Element", "ReturnValue.Element", "taint", "manual"]
- ["io.netty.handler.codec.http.cookie", "ServerCookieEncoder", True, "encode", "(Iterable)", "", "Argument[0].Element", "ReturnValue.Element", "taint", "manual"]
- ["io.netty.handler.codec.http.cookie", "ServerCookieEncoder", True, "encode", "(String,String)", "", "Argument[1..2]", "ReturnValue", "taint", "manual"]

View File

@@ -1,12 +1,83 @@
extensions:
- addsTo:
pack: codeql/java-all
extensible: sinkModel
data:
- ["io.netty.handler.codec.http", "DefaultFullHttpRequest", True, "DefaultFullHttpRequest", "(HttpVersion,HttpMethod,String,ByteBuf)", "", "Argument[2]", "open-url", "ai-generated"]
- ["io.netty.handler.codec.http", "DefaultHttpRequest", True, "DefaultHttpRequest", "(HttpVersion,HttpMethod,String)", "", "Argument[2]", "open-url", "ai-generated"]
- addsTo:
pack: codeql/java-all
extensible: summaryModel
data:
- ["io.netty.handler.codec.http", "QueryStringEncoder", True, "QueryStringEncoder", "(String)", "", "Argument[0]", "Argument[this]", "taint", "ai-generated"]
- addsTo:
pack: codeql/java-all
extensible: sinkModel
data:
- ["io.netty.handler.codec.http", "DefaultFullHttpRequest", True, "DefaultFullHttpRequest", "(HttpVersion,HttpMethod,String,ByteBuf)", "", "Argument[2]", "open-url", "ai-generated"]
- ["io.netty.handler.codec.http", "DefaultHttpRequest", True, "DefaultHttpRequest", "(HttpVersion,HttpMethod,String)", "", "Argument[2]", "open-url", "ai-generated"]
- addsTo:
pack: codeql/java-all
extensible: summaryModel
data:
- ["io.netty.handler.codec.http", "QueryStringEncoder", True, "QueryStringEncoder", "(String)", "", "Argument[0]", "Argument[this]", "taint", "ai-generated"]
- ["io.netty.handler.codec.http", "HttpHeaders", True, "add", "", "", "Argument[this]", "ReturnValue", "value", "manual"]
- ["io.netty.handler.codec.http", "HttpHeaders", True, "add", "(CharSequence,Iterable)", "", "Argument[0]", "Argument[this].Element.MapKey", "taint", "manual"]
- ["io.netty.handler.codec.http", "HttpHeaders", True, "add", "(CharSequence,Iterable)", "", "Argument[1].Element", "Argument[this].Element.MapValue", "taint", "manual"]
- ["io.netty.handler.codec.http", "HttpHeaders", True, "add", "(CharSequence,Object)", "", "Argument[0]", "Argument[this].Element.MapKey", "taint", "manual"]
- ["io.netty.handler.codec.http", "HttpHeaders", True, "add", "(CharSequence,Object)", "", "Argument[1]", "Argument[this].Element.MapValue", "taint", "manual"]
- ["io.netty.handler.codec.http", "HttpHeaders", True, "add", "(String,Iterable)", "", "Argument[0]", "Argument[this].Element.MapKey", "value", "manual"]
- ["io.netty.handler.codec.http", "HttpHeaders", True, "add", "(String,Iterable)", "", "Argument[1].Element", "Argument[this].Element.MapValue", "taint", "manual"]
- ["io.netty.handler.codec.http", "HttpHeaders", True, "add", "(String,Object)", "", "Argument[0]", "Argument[this].Element.MapKey", "value", "manual"]
- ["io.netty.handler.codec.http", "HttpHeaders", True, "add", "(String,Object)", "", "Argument[1]", "Argument[this].Element.MapValue", "taint", "manual"]
- ["io.netty.handler.codec.http", "HttpHeaders", True, "add", "(HttpHeaders)", "", "Argument[0].Element.MapKey", "Argument[this].Element.MapKey", "value", "manual"]
- ["io.netty.handler.codec.http", "HttpHeaders", True, "add", "(HttpHeaders)", "", "Argument[0].Element.MapValue", "Argument[this].Element.MapValue", "taint", "manual"]
- ["io.netty.handler.codec.http", "HttpHeaders", True, "addInt", "(CharSequence,int)", "", "Argument[this]", "ReturnValue", "value", "manual"]
- ["io.netty.handler.codec.http", "HttpHeaders", True, "addInt", "(CharSequence,int)", "", "Argument[0]", "Argument[this].Element.MapKey", "value", "manual"]
- ["io.netty.handler.codec.http", "HttpHeaders", True, "addShort", "(CharSequence,short)", "", "Argument[this]", "ReturnValue", "value", "manual"]
- ["io.netty.handler.codec.http", "HttpHeaders", True, "addShort", "(CharSequence,short)", "", "Argument[0]", "Argument[this].Element.MapKey", "value", "manual"]
- ["io.netty.handler.codec.http", "HttpHeaders", True, "copy", "()", "", "Argument[this].Element.MapKey", "ReturnValue.Element.MapKey", "value", "manual"]
- ["io.netty.handler.codec.http", "HttpHeaders", True, "copy", "()", "", "Argument[this].Element.MapValue", "ReturnValue.Element.MapValue", "value", "manual"]
- ["io.netty.handler.codec.http", "HttpHeaders", True, "entries", "()", "", "Argument[this].Element.MapKey", "ReturnValue.Element.MapKey", "value", "manual"]
- ["io.netty.handler.codec.http", "HttpHeaders", True, "entries", "()", "", "Argument[this].Element.MapValue", "ReturnValue.Element.MapValue", "value", "manual"]
- ["io.netty.handler.codec.http", "HttpHeaders", True, "get", "", "", "Argument[this].Element.MapValue", "ReturnValue", "value", "manual"]
- ["io.netty.handler.codec.http", "HttpHeaders", True, "get", "", "", "Argument[1]", "ReturnValue", "value", "manual"]
- ["io.netty.handler.codec.http", "HttpHeaders", True, "getAll", "", "", "Argument[this].Element.MapValue", "ReturnValue.Element", "value", "manual"]
- ["io.netty.handler.codec.http", "HttpHeaders", True, "getAllAsString", "", "", "Argument[this].Element.MapValue", "ReturnValue.Element", "value", "manual"]
- ["io.netty.handler.codec.http", "HttpHeaders", True, "getAsString", "", "", "Argument[this].Element.MapValue", "ReturnValue", "value", "manual"]
- ["io.netty.handler.codec.http", "HttpHeaders", True, "getHeader", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
- ["io.netty.handler.codec.http", "HttpHeaders", True, "getHeader", "", "", "Argument[2]", "ReturnValue", "value", "manual"]
- ["io.netty.handler.codec.http", "HttpHeaders", True, "getHost", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
- ["io.netty.handler.codec.http", "HttpHeaders", True, "getHost", "", "", "Argument[1]", "ReturnValue", "value", "manual"]
- ["io.netty.handler.codec.http", "HttpHeaders", True, "iteratorAsString", "()", "", "Argument[this].Element.MapKey", "ReturnValue.Element.MapKey", "value", "manual"]
- ["io.netty.handler.codec.http", "HttpHeaders", True, "iteratorAsString", "()", "", "Argument[this].Element.MapValue", "ReturnValue.Element.MapValue", "value", "manual"]
- ["io.netty.handler.codec.http", "HttpHeaders", True, "iteratorCharSequence", "()", "", "Argument[this].Element.MapKey", "ReturnValue.Element.MapKey", "taint", "manual"]
- ["io.netty.handler.codec.http", "HttpHeaders", True, "iteratorCharSequence", "()", "", "Argument[this].Element.MapValue", "ReturnValue.Element.MapValue", "taint", "manual"]
- ["io.netty.handler.codec.http", "HttpHeaders", True, "names", "()", "", "Argument[this].Element.MapKey", "ReturnValue.Element", "value", "manual"]
- ["io.netty.handler.codec.http", "HttpHeaders", True, "newEntity", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
- ["io.netty.handler.codec.http", "HttpHeaders", True, "remove", "", "", "Argument[this]", "ReturnValue", "value", "manual"]
- ["io.netty.handler.codec.http", "HttpHeaders", True, "set", "", "", "Argument[this]", "ReturnValue", "value", "manual"]
- ["io.netty.handler.codec.http", "HttpHeaders", True, "set", "(CharSequence,Iterable)", "", "Argument[0]", "Argument[this].Element.MapKey", "taint", "manual"]
- ["io.netty.handler.codec.http", "HttpHeaders", True, "set", "(CharSequence,Iterable)", "", "Argument[1].Element", "Argument[this].Element.MapValue", "taint", "manual"]
- ["io.netty.handler.codec.http", "HttpHeaders", True, "set", "(CharSequence,Object)", "", "Argument[0]", "Argument[this].Element.MapKey", "taint", "manual"]
- ["io.netty.handler.codec.http", "HttpHeaders", True, "set", "(CharSequence,Object)", "", "Argument[1]", "Argument[this].Element.MapValue", "taint", "manual"]
- ["io.netty.handler.codec.http", "HttpHeaders", True, "set", "(String,Iterable)", "", "Argument[0]", "Argument[this].Element.MapKey", "value", "manual"]
- ["io.netty.handler.codec.http", "HttpHeaders", True, "set", "(String,Iterable)", "", "Argument[1].Element", "Argument[this].Element.MapValue", "taint", "manual"]
- ["io.netty.handler.codec.http", "HttpHeaders", True, "set", "(String,Object)", "", "Argument[0]", "Argument[this].Element.MapKey", "value", "manual"]
- ["io.netty.handler.codec.http", "HttpHeaders", True, "set", "(String,Object)", "", "Argument[1]", "Argument[this].Element.MapValue", "taint", "manual"]
- ["io.netty.handler.codec.http", "HttpHeaders", True, "set", "(HttpHeaders)", "", "Argument[0].Element.MapKey", "Argument[this].Element.MapKey", "value", "manual"]
- ["io.netty.handler.codec.http", "HttpHeaders", True, "set", "(HttpHeaders)", "", "Argument[0].Element.MapValue", "Argument[this].Element.MapValue", "taint", "manual"]
- ["io.netty.handler.codec.http", "HttpHeaders", True, "setAll", "(HttpHeaders)", "", "Argument[this]", "ReturnValue", "value", "manual"]
- ["io.netty.handler.codec.http", "HttpHeaders", True, "setAll", "(HttpHeaders)", "", "Argument[0].Element.MapKey", "Argument[this].Element.MapKey", "value", "manual"]
- ["io.netty.handler.codec.http", "HttpHeaders", True, "setAll", "(HttpHeaders)", "", "Argument[0].Element.MapValue", "Argument[this].Element.MapValue", "taint", "manual"]
- ["io.netty.handler.codec.http", "HttpHeaders", True, "setInt", "(CharSequence,int)", "", "Argument[this]", "ReturnValue", "value", "manual"]
- ["io.netty.handler.codec.http", "HttpHeaders", True, "setInt", "(CharSequence,int)", "", "Argument[0]", "Argument[this].Element.MapKey", "value", "manual"]
- ["io.netty.handler.codec.http", "HttpHeaders", True, "setShort", "(CharSequence,short)", "", "Argument[this]", "ReturnValue", "value", "manual"]
- ["io.netty.handler.codec.http", "HttpHeaders", True, "setShort", "(CharSequence,short)", "", "Argument[0]", "Argument[this].Element.MapKey", "value", "manual"]
- ["io.netty.handler.codec.http", "HttpHeaders", True, "valueStringIterator", "(CharSequence)", "", "Argument[this].Element.MapValue", "ReturnValue.Element", "value", "manual"]
- ["io.netty.handler.codec.http", "HttpHeaders", True, "valueCharSequenceIterator", "(CharSequence)", "", "Argument[this].Element.MapValue", "ReturnValue.Element", "taint", "manual"]
- ["io.netty.handler.codec.http", "HttpHeaders", True, "toString", "", "", "Argument[this].Element.MapKey", "ReturnValue", "taint", "manual"]
- ["io.netty.handler.codec.http", "HttpHeaders", True, "toString", "", "", "Argument[this].Element.MapValue", "ReturnValue", "taint", "manual"]
# Currently all write steps to http messages are taint flow. It may reduce FPs to use a synthetic field for headers instead.
- ["io.netty.handler.codec.http", "HttpMessage", True, "headers", "", "", "Argument[this]", "ReturnValue", "taint", "manual"]
- ["io.netty.handler.codec.http", "LastHttpContent", True, "trailingHeaders", "", "", "Argument[this]", "ReturnValue", "taint", "manual"]
- ["io.netty.handler.codec.http", "HttpRequest", True, "getUri", "", "", "Argument[this]", "ReturnValue", "taint", "manual"]
- ["io.netty.handler.codec.http", "HttpRequest", True, "uri", "", "", "Argument[this]", "ReturnValue", "taint", "manual"]
- ["io.netty.handler.codec.http", "HttpRequest", True, "setUri", "", "", "Argument[0]", "Argument[this]", "taint", "manual"]
- ["io.netty.handler.codec.http", "QueryStringDecoder", True, "QueryStringDecoder", "", "", "Argument[0]", "Argument[this]", "taint", "manual"]
- ["io.netty.handler.codec.http", "QueryStringDecoder", True, "decodeComponent", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
- ["io.netty.handler.codec.http", "QueryStringDecoder", True, "parameters", "", "", "Argument[this]", "ReturnValue", "taint", "manual"]
- ["io.netty.handler.codec.http", "QueryStringDecoder", True, "path", "", "", "Argument[this]", "ReturnValue", "taint", "manual"]
- ["io.netty.handler.codec.http", "QueryStringDecoder", True, "rawPath", "", "", "Argument[this]", "ReturnValue", "taint", "manual"]
- ["io.netty.handler.codec.http", "QueryStringDecoder", True, "rawQuery", "", "", "Argument[this]", "ReturnValue", "taint", "manual"]
- ["io.netty.handler.codec.http", "QueryStringDecoder", True, "toString", "", "", "Argument[this]", "ReturnValue", "taint", "manual"]
- ["io.netty.handler.codec.http", "QueryStringDecoder", True, "uri", "", "", "Argument[this]", "ReturnValue", "taint", "manual"]

View File

@@ -4,3 +4,40 @@ extensions:
extensible: sinkModel
data:
- ["io.netty.handler.codec.http.multipart", "HttpPostRequestEncoder", True, "addBodyFileUpload", "(String,File,String,boolean)", "", "Argument[1]", "read-file", "ai-generated"]
- addsTo:
pack: codeql/java-all
extensible: summaryModel
data:
- ["io.netty.handler.codec.http.multipart", "InterfaceHttpPostRequestDecoder", True, "currentPartialHttpData", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"]
- ["io.netty.handler.codec.http.multipart", "InterfaceHttpPostRequestDecoder", True, "getBodyHttpData", "(String)", "", "Argument[this]", "ReturnValue", "taint", "manual"]
- ["io.netty.handler.codec.http.multipart", "InterfaceHttpPostRequestDecoder", True, "getBodyHttpDatas", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"]
- ["io.netty.handler.codec.http.multipart", "InterfaceHttpPostRequestDecoder", True, "getBodyHttpDatas", "(String)", "", "Argument[this]", "ReturnValue", "taint", "manual"]
- ["io.netty.handler.codec.http.multipart", "InterfaceHttpPostRequestDecoder", True, "next", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"]
- ["io.netty.handler.codec.http.multipart", "InterfaceHttpPostRequestDecoder", True, "offer", "(HttpContent)", "", "Argument[0]", "Argument[this]", "taint", "manual"]
- ["io.netty.handler.codec.http.multipart", "InterfaceHttpPostRequestDecoder", True, "offer", "(HttpContent)", "", "Argument[this]", "ReturnValue", "value", "manual"]
- ["io.netty.handler.codec.http.multipart", "HttpPostRequestDecoder", True, "HttpPostRequestDecoder", "(HttpRequest)", "", "Argument[0]", "Argument[this]", "taint", "manual"]
- ["io.netty.handler.codec.http.multipart", "HttpPostRequestDecoder", True, "HttpPostRequestDecoder", "(HttpDataFactory,HttpRequest)", "", "Argument[1]", "Argument[this]", "taint", "manual"]
- ["io.netty.handler.codec.http.multipart", "HttpPostRequestDecoder", True, "HttpPostRequestDecoder", "(HttpDataFactory,HttpRequest,Charset)", "", "Argument[1]", "Argument[this]", "taint", "manual"]
- ["io.netty.handler.codec.http.multipart", "HttpPostStandardRequestDecoder", True, "HttpPostStandardRequestDecoder", "(HttpRequest)", "", "Argument[0]", "Argument[this]", "taint", "manual"]
- ["io.netty.handler.codec.http.multipart", "HttpPostStandardRequestDecoder", True, "HttpPostStandardRequestDecoder", "(HttpDataFactory,HttpRequest)", "", "Argument[1]", "Argument[this]", "taint", "manual"]
- ["io.netty.handler.codec.http.multipart", "HttpPostStandardRequestDecoder", True, "HttpPostStandardRequestDecoder", "(HttpDataFactory,HttpRequest,Charset)", "", "Argument[1]", "Argument[this]", "taint", "manual"]
- ["io.netty.handler.codec.http.multipart", "HttpPostMultipartRequestDecoder", True, "HttpPostMultipartRequestDecoder", "(HttpRequest)", "", "Argument[0]", "Argument[this]", "taint", "manual"]
- ["io.netty.handler.codec.http.multipart", "HttpPostMultipartRequestDecoder", True, "HttpPostMultipartRequestDecoder", "(HttpDataFactory,HttpRequest)", "", "Argument[1]", "Argument[this]", "taint", "manual"]
- ["io.netty.handler.codec.http.multipart", "HttpPostMultipartRequestDecoder", True, "HttpPostMultipartRequestDecoder", "(HttpDataFactory,HttpRequest,Charset)", "", "Argument[1]", "Argument[this]", "taint", "manual"]
- ["io.netty.handler.codec.http.multipart", "InterfaceHttpData", True, "getName", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"]
- ["io.netty.handler.codec.http.multipart", "HttpData", True, "addContent", "(ByteBuf,boolean)", "", "Argument[0]", "Argument[this]", "taint", "manual"]
- ["io.netty.handler.codec.http.multipart", "HttpData", True, "get", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"]
- ["io.netty.handler.codec.http.multipart", "HttpData", True, "getByteBuf", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"]
- ["io.netty.handler.codec.http.multipart", "HttpData", True, "getChunk", "(int)", "", "Argument[this]", "ReturnValue", "taint", "manual"]
- ["io.netty.handler.codec.http.multipart", "HttpData", True, "getString", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"]
- ["io.netty.handler.codec.http.multipart", "HttpData", True, "getString", "(Charset)", "", "Argument[this]", "ReturnValue", "taint", "manual"]
- ["io.netty.handler.codec.http.multipart", "Attribute", True, "getValue", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"]
- ["io.netty.handler.codec.http.multipart", "Attribute", True, "setValue", "(String)", "", "Argument[0]", "Argument[this]", "taint", "manual"]
- ["io.netty.handler.codec.http.multipart", "FileUpload", True, "getContentTransferEncoding", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"]
- ["io.netty.handler.codec.http.multipart", "FileUpload", True, "getContentType", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"]
- ["io.netty.handler.codec.http.multipart", "FileUpload", True, "getFilename", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"]
- ["io.netty.handler.codec.http.multipart", "FileUpload", True, "setContentTransferEncoding", "(String)", "", "Argument[0]", "Argument[this]", "taint", "manual"]
- ["io.netty.handler.codec.http.multipart", "FileUpload", True, "setContentType", "(String)", "", "Argument[0]", "Argument[this]", "taint", "manual"]
- ["io.netty.handler.codec.http.multipart", "FileUpload", True, "setFilename", "(String)", "", "Argument[0]", "Argument[this]", "taint", "manual"]
- ["io.netty.handler.codec.http.multipart", "HttpData", True, "setContent", "(ByteBuf)", "", "Argument[0]", "Argument[this]", "taint", "manual"]
- ["io.netty.handler.codec.http.multipart", "HttpData", True, "setContent", "(InputStream)", "", "Argument[0]", "Argument[this]", "taint", "manual"]

View File

@@ -0,0 +1,25 @@
extensions:
- addsTo:
pack: codeql/java-all
extensible: summaryModel
data:
- ["io.netty.handler.codec.http.websocketx", "CloseWebSocketFrame", True, "CloseWebSocketFrame", "(boolean,int,ByteBuf)", "", "Argument[2]", "Argument[this]", "taint", "manual"]
- ["io.netty.handler.codec.http.websocketx", "CloseWebSocketFrame", True, "CloseWebSocketFrame", "(boolean,int,int,String)", "", "Argument[3]", "Argument[this]", "taint", "manual"]
- ["io.netty.handler.codec.http.websocketx", "CloseWebSocketFrame", True, "CloseWebSocketFrame", "(int,String)", "", "Argument[1]", "Argument[this]", "taint", "manual"]
- ["io.netty.handler.codec.http.websocketx", "CloseWebSocketFrame", True, "CloseWebSocketFrame", "(WebSocketCloseStatus,String)", "", "Argument[1]", "Argument[this]", "taint", "manual"]
- ["io.netty.handler.codec.http.websocketx", "CloseWebSocketFrame", True, "reasonText", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"]
- ["io.netty.handler.codec.http.websocketx", "BinaryWebSocketFrame", True, "BinaryWebSocketFrame", "(boolean,int,ByteBuf)", "", "Argument[2]", "Argument[this]", "taint", "manual"]
- ["io.netty.handler.codec.http.websocketx", "BinaryWebSocketFrame", True, "BinaryWebSocketFrame", "(ByteBuf)", "", "Argument[0]", "Argument[this]", "taint", "manual"]
- ["io.netty.handler.codec.http.websocketx", "ContinuationWebSocketFrame", True, "ContinuationWebSocketFrame", "(boolean,int,ByteBuf)", "", "Argument[2]", "Argument[this]", "taint", "manual"]
- ["io.netty.handler.codec.http.websocketx", "ContinuationWebSocketFrame", True, "ContinuationWebSocketFrame", "(boolean,int,String)", "", "Argument[2]", "Argument[this]", "taint", "manual"]
- ["io.netty.handler.codec.http.websocketx", "ContinuationWebSocketFrame", True, "ContinuationWebSocketFrame", "(ByteBuf)", "", "Argument[0]", "Argument[this]", "taint", "manual"]
- ["io.netty.handler.codec.http.websocketx", "ContinuationWebSocketFrame", True, "text", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"]
- ["io.netty.handler.codec.http.websocketx", "PingWebSocketFrame", True, "PingWebSocketFrame", "(boolean,int,ByteBuf)", "", "Argument[2]", "Argument[this]", "taint", "manual"]
- ["io.netty.handler.codec.http.websocketx", "PingWebSocketFrame", True, "PingWebSocketFrame", "(ByteBuf)", "", "Argument[0]", "Argument[this]", "taint", "manual"]
- ["io.netty.handler.codec.http.websocketx", "PongWebSocketFrame", True, "PongWebSocketFrame", "(boolean,int,ByteBuf)", "", "Argument[2]", "Argument[this]", "taint", "manual"]
- ["io.netty.handler.codec.http.websocketx", "PongWebSocketFrame", True, "PongWebSocketFrame", "(ByteBuf)", "", "Argument[0]", "Argument[this]", "taint", "manual"]
- ["io.netty.handler.codec.http.websocketx", "TextWebSocketFrame", True, "TextWebSocketFrame", "(boolean,int,ByteBuf)", "", "Argument[2]", "Argument[this]", "taint", "manual"]
- ["io.netty.handler.codec.http.websocketx", "TextWebSocketFrame", True, "TextWebSocketFrame", "(boolean,int,String)", "", "Argument[2]", "Argument[this]", "taint", "manual"]
- ["io.netty.handler.codec.http.websocketx", "TextWebSocketFrame", True, "TextWebSocketFrame", "(String)", "", "Argument[0]", "Argument[this]", "taint", "manual"]
- ["io.netty.handler.codec.http.websocketx", "TextWebSocketFrame", True, "TextWebSocketFrame", "(ByteBuf)", "", "Argument[0]", "Argument[this]", "taint", "manual"]
- ["io.netty.handler.codec.http.websocketx", "TextWebSocketFrame", True, "text", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"]

View File

@@ -0,0 +1,49 @@
extensions:
- addsTo:
pack: codeql/java-all
extensible: sourceModel
data:
- ["io.netty.handler.codec.http2", "Http2FrameListener", True, "onDataRead", "", "", "Parameter[2]", "remote", "manual"]
- ["io.netty.handler.codec.http2", "Http2FrameListener", True, "onHeadersRead", "", "", "Parameter[2]", "remote", "manual"]
- ["io.netty.handler.codec.http2", "Http2FrameListener", True, "onPushPromiseRead", "", "", "Parameter[3]", "remote", "manual"]
- ["io.netty.handler.codec.http2", "Http2FrameListener", True, "onUnknownFrame", "", "", "Parameter[4]", "remote", "manual"]
- addsTo:
pack: codeql/java-all
extensible: summaryModel
data:
- ["io.netty.handler.codec.http2", "Http2Headers", True, "authority", "()", "", "Argument[this].Element.MapValue", "ReturnValue", "value", "manual"]
- ["io.netty.handler.codec.http2", "Http2Headers", True, "authority", "(CharSequence)", "", "Argument[0]", "Argument[this].Element.MapValue", "value", "manual"]
- ["io.netty.handler.codec.http2", "Http2Headers", True, "authority", "(CharSequence)", "", "Argument[this]", "ReturnValue", "value", "manual"]
- ["io.netty.handler.codec.http2", "Http2Headers", True, "method", "()", "", "Argument[this].Element.MapValue", "ReturnValue", "value", "manual"]
- ["io.netty.handler.codec.http2", "Http2Headers", True, "method", "(CharSequence)", "", "Argument[0]", "Argument[this].Element.MapValue", "value", "manual"]
- ["io.netty.handler.codec.http2", "Http2Headers", True, "method", "(CharSequence)", "", "Argument[this]", "ReturnValue", "value", "manual"]
- ["io.netty.handler.codec.http2", "Http2Headers", True, "path", "()", "", "Argument[this].Element.MapValue", "ReturnValue", "value", "manual"]
- ["io.netty.handler.codec.http2", "Http2Headers", True, "path", "(CharSequence)", "", "Argument[0]", "Argument[this].Element.MapValue", "value", "manual"]
- ["io.netty.handler.codec.http2", "Http2Headers", True, "path", "(CharSequence)", "", "Argument[this]", "ReturnValue", "value", "manual"]
- ["io.netty.handler.codec.http2", "Http2Headers", True, "scheme", "()", "", "Argument[this].Element.MapValue", "ReturnValue", "value", "manual"]
- ["io.netty.handler.codec.http2", "Http2Headers", True, "scheme", "(CharSequence)", "", "Argument[0]", "Argument[this].Element.MapValue", "value", "manual"]
- ["io.netty.handler.codec.http2", "Http2Headers", True, "scheme", "(CharSequence)", "", "Argument[this]", "ReturnValue", "value", "manual"]
- ["io.netty.handler.codec.http2", "Http2Headers", True, "status", "()", "", "Argument[this].Element.MapValue", "ReturnValue", "value", "manual"]
- ["io.netty.handler.codec.http2", "Http2Headers", True, "status", "(CharSequence)", "", "Argument[0]", "Argument[this].Element.MapValue", "value", "manual"]
- ["io.netty.handler.codec.http2", "Http2Headers", True, "status", "(CharSequence)", "", "Argument[this]", "ReturnValue", "value", "manual"]
- ["io.netty.handler.codec.http2", "Http2Headers", True, "valueIterator", "(CharSequence)", "", "Argument[this].Element.MapValue", "ReturnValue.Element", "value", "manual"]
- ["io.netty.handler.codec.http2", "Http2HeadersFrame", True, "headers", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"]
- ["io.netty.handler.codec.http2", "Http2PushPromiseFrame", True, "http2Headers", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"]
- ["io.netty.handler.codec.http2", "HttpConversionUtil", False, "addHttp2ToHttpHeaders", "(int,Http2Headers,FullHttpMessage,boolean)", "", "Argument[1].Element.MapKey", "Argument[2]", "taint", "manual"]
- ["io.netty.handler.codec.http2", "HttpConversionUtil", False, "addHttp2ToHttpHeaders", "(int,Http2Headers,FullHttpMessage,boolean)", "", "Argument[1].Element.MapValue", "Argument[2]", "taint", "manual"]
- ["io.netty.handler.codec.http2", "HttpConversionUtil", False, "addHttp2ToHttpHeaders", "(int,Http2Headers,HttpHeaders,HttpVersion,boolean,boolean)", "", "Argument[1].Element.MapKey", "Argument[2].Element.MapKey", "taint", "manual"]
- ["io.netty.handler.codec.http2", "HttpConversionUtil", False, "addHttp2ToHttpHeaders", "(int,Http2Headers,HttpHeaders,HttpVersion,boolean,boolean)", "", "Argument[1].Element.MapValue", "Argument[2].Element.MapValue", "taint", "manual"]
- ["io.netty.handler.codec.http2", "HttpConversionUtil", False, "toFullHttpRequest", "", "", "Argument[1].Element.MapKey", "ReturnValue", "taint", "manual"]
- ["io.netty.handler.codec.http2", "HttpConversionUtil", False, "toFullHttpRequest", "", "", "Argument[1].Element.MapValue", "ReturnValue", "taint", "manual"]
- ["io.netty.handler.codec.http2", "HttpConversionUtil", False, "toFullHttpRequest", "(int,Http2Headers,ByteBuf,boolean)", "", "Argument[2]", "ReturnValue", "taint", "manual"]
- ["io.netty.handler.codec.http2", "HttpConversionUtil", False, "toFullHttpResponse", "", "", "Argument[1].Element.MapKey", "ReturnValue", "taint", "manual"]
- ["io.netty.handler.codec.http2", "HttpConversionUtil", False, "toFullHttpResponse", "", "", "Argument[1].Element.MapValue", "ReturnValue", "taint", "manual"]
- ["io.netty.handler.codec.http2", "HttpConversionUtil", False, "toFullHttpResponse", "(int,Http2Headers,ByteBuf,boolean)", "", "Argument[2]", "ReturnValue", "taint", "manual"]
- ["io.netty.handler.codec.http2", "HttpConversionUtil", False, "toHttp2Headers", "(HttpHeaders,boolean)", "", "Argument[0].Element.MapKey", "ReturnValue.Element.MapKey", "taint", "manual"]
- ["io.netty.handler.codec.http2", "HttpConversionUtil", False, "toHttp2Headers", "(HttpHeaders,boolean)", "", "Argument[0].Element.MapValue", "ReturnValue.Element.MapValue", "taint", "manual"]
- ["io.netty.handler.codec.http2", "HttpConversionUtil", False, "toHttp2Headers", "(HttpHeaders,Http2Headers)", "", "Argument[0].Element.MapKey", "Argument[1].Element.MapKey", "taint", "manual"]
- ["io.netty.handler.codec.http2", "HttpConversionUtil", False, "toHttp2Headers", "(HttpHeaders,Http2Headers)", "", "Argument[0].Element.MapValue", "Argument[1].Element.MapValue", "taint", "manual"]
- ["io.netty.handler.codec.http2", "HttpConversionUtil", False, "toHttpRequest", "", "", "Argument[1].Element.MapKey", "ReturnValue", "taint", "manual"]
- ["io.netty.handler.codec.http2", "HttpConversionUtil", False, "toHttpRequest", "", "", "Argument[1].Element.MapValue", "ReturnValue", "taint", "manual"]
- ["io.netty.handler.codec.http2", "HttpConversionUtil", False, "toHttpResponse", "", "", "Argument[1].Element.MapKey", "ReturnValue", "taint", "manual"]
- ["io.netty.handler.codec.http2", "HttpConversionUtil", False, "toHttpResponse", "", "", "Argument[1].Element.MapValue", "ReturnValue", "taint", "manual"]

View File

@@ -0,0 +1,103 @@
extensions:
- addsTo:
pack: codeql/java-all
extensible: sourceModel
data:
- ["io.netty.handler.codec", "ByteToMessageDecoder", True, "callDecode", "", "", "Parameter[1]", "remote", "manual"]
- ["io.netty.handler.codec", "ByteToMessageDecoder", True, "decode", "", "", "Parameter[1]", "remote", "manual"]
- ["io.netty.handler.codec", "ByteToMessageDecoder", True, "decodeLast", "", "", "Parameter[1]", "remote", "manual"]
- ["io.netty.handler.codec", "ByteToMessageCodec", True, "decode", "", "", "Parameter[1]", "remote", "manual"]
- ["io.netty.handler.codec", "ByteToMessageCodec", True, "decodeLast", "", "", "Parameter[1]", "remote", "manual"]
- ["io.netty.handler.codec", "MessageToMessageDecoder", True, "acceptInboundMessage", "", "", "Parameter[0]", "remote", "manual"]
- ["io.netty.handler.codec", "MessageToMessageDecoder", True, "decode", "", "", "Parameter[1]", "remote", "manual"]
- ["io.netty.handler.codec", "MessageToMessageCodec", True, "acceptInboundMessage", "", "", "Parameter[0]", "remote", "manual"]
- ["io.netty.handler.codec", "MessageToMessageCodec", True, "decode", "", "", "Parameter[1]", "remote", "manual"]
- addsTo:
pack: codeql/java-all
extensible: summaryModel
data:
- ["io.netty.handler.codec", "ByteToMessageDecoder$Cumulator", True, "cumulate", "(ByteBufAllocator,ByteBuf,ByteBuf)", "", "Argument[1..2]", "ReturnValue", "taint", "manual"]
- ["io.netty.handler.codec", "HeadersUtils", False, "getAsString", "(Headers,Object)", "", "Argument[0].Element.MapValue", "ReturnValue", "taint", "manual"]
- ["io.netty.handler.codec", "HeadersUtils", False, "getAllAsString", "(Headers,Object)", "", "Argument[0].Element.MapValue", "ReturnValue", "taint", "manual"]
- ["io.netty.handler.codec", "HeadersUtils", False, "namesAsString", "(Headers)", "", "Argument[0].Element.MapKey", "ReturnValue.Element", "value", "manual"]
- ["io.netty.handler.codec", "HeadersUtils", False, "iteratorAsString", "(Iterable)", "", "Argument[0].Element.MapKey", "ReturnValue", "taint", "manual"]
- ["io.netty.handler.codec", "HeadersUtils", False, "iteratorAsString", "(Iterable)", "", "Argument[0].Element.MapValue", "ReturnValue", "taint", "manual"]
- ["io.netty.handler.codec", "HeadersUtils", False, "toString", "(Class,Iterator,int)", "", "Argument[1].Element.MapKey", "ReturnValue", "taint", "manual"]
- ["io.netty.handler.codec", "HeadersUtils", False, "toString", "(Class,Iterator,int)", "", "Argument[1].Element.MapValue", "ReturnValue", "taint", "manual"]
- ["io.netty.handler.codec", "Headers", True, "get", "(Object)", "", "Argument[this].Element.MapValue", "ReturnValue", "taint", "manual"]
- ["io.netty.handler.codec", "Headers", True, "get", "(Object,Object)", "", "Argument[this].Element.MapValue", "ReturnValue", "taint", "manual"]
- ["io.netty.handler.codec", "Headers", True, "get", "(Object,Object)", "", "Argument[1]", "ReturnValue", "value", "manual"]
- ["io.netty.handler.codec", "Headers", True, "getAll", "(Object)", "", "Argument[this].Element.MapValue", "ReturnValue.Element", "taint", "manual"]
- ["io.netty.handler.codec", "Headers", True, "getAllAndRemove", "(Object)", "", "Argument[this].Element.MapValue", "ReturnValue.Element", "taint", "manual"]
- ["io.netty.handler.codec", "Headers", True, "getAndRemove", "(Object)", "", "Argument[this].Element.MapValue", "ReturnValue", "taint", "manual"]
- ["io.netty.handler.codec", "Headers", True, "getAndRemove", "(Object)", "", "Argument[this].Element.MapValue", "ReturnValue", "taint", "manual"]
- ["io.netty.handler.codec", "Headers", True, "getAndRemove", "(Object,Object)", "", "Argument[1]", "ReturnValue", "value", "manual"]
- ["io.netty.handler.codec", "Headers", True, "names", "()", "", "Argument[this].Element.MapKey", "ReturnValue.Element", "taint", "manual"]
- ["io.netty.handler.codec", "Headers", True, "add", "", "", "Argument[this]", "ReturnValue", "value", "manual"]
- ["io.netty.handler.codec", "Headers", True, "add", "(Headers)", "", "Argument[0].Element.MapKey", "Argument[this].Element.MapKey", "value", "manual"]
- ["io.netty.handler.codec", "Headers", True, "add", "(Headers)", "", "Argument[0].Element.MapValue", "Argument[this].Element.MapValue", "value", "manual"]
- ["io.netty.handler.codec", "Headers", True, "add", "(Object,Iterable)", "", "Argument[0]", "Argument[this].Element.MapKey", "value", "manual"]
- ["io.netty.handler.codec", "Headers", True, "add", "(Object,Iterable)", "", "Argument[1].Element", "Argument[this].Element.MapValue", "value", "manual"]
- ["io.netty.handler.codec", "Headers", True, "add", "(Object,Object[])", "", "Argument[0]", "Argument[this].Element.MapKey", "value", "manual"]
- ["io.netty.handler.codec", "Headers", True, "add", "(Object,Object[])", "", "Argument[1].ArrayElement", "Argument[this].Element.MapValue", "value", "manual"]
- ["io.netty.handler.codec", "Headers", True, "add", "(Object,Object)", "", "Argument[0]", "Argument[this].Element.MapKey", "value", "manual"]
- ["io.netty.handler.codec", "Headers", True, "add", "(Object,Object)", "", "Argument[1]", "Argument[this].Element.MapValue", "value", "manual"]
- ["io.netty.handler.codec", "Headers", True, "addObject", "(Object,Iterable)", "", "Argument[0]", "Argument[this].Element.MapKey", "value", "manual"]
- ["io.netty.handler.codec", "Headers", True, "addObject", "(Object,Iterable)", "", "Argument[1].Element", "Argument[this].Element.MapValue", "taint", "manual"]
- ["io.netty.handler.codec", "Headers", True, "addObject", "(Object,Object[])", "", "Argument[0]", "Argument[this].Element.MapKey", "value", "manual"]
- ["io.netty.handler.codec", "Headers", True, "addObject", "(Object,Object[])", "", "Argument[1].ArrayElement", "Argument[this].Element.MapValue", "taint", "manual"]
- ["io.netty.handler.codec", "Headers", True, "addObject", "(Object,Object)", "", "Argument[0]", "Argument[this].Element.MapKey", "value", "manual"]
- ["io.netty.handler.codec", "Headers", True, "addObject", "(Object,Object)", "", "Argument[1]", "Argument[this].Element.MapValue", "taint", "manual"]
- ["io.netty.handler.codec", "Headers", True, "addBoolean", "", "", "Argument[this]", "ReturnValue", "value", "manual"]
- ["io.netty.handler.codec", "Headers", True, "addBoolean", "", "", "Argument[0]", "Argument[this].Element.MapKey", "value", "manual"]
- ["io.netty.handler.codec", "Headers", True, "addByte", "", "", "Argument[this]", "ReturnValue", "value", "manual"]
- ["io.netty.handler.codec", "Headers", True, "addByte", "", "", "Argument[0]", "Argument[this].Element.MapKey", "value", "manual"]
- ["io.netty.handler.codec", "Headers", True, "addChar", "", "", "Argument[this]", "ReturnValue", "value", "manual"]
- ["io.netty.handler.codec", "Headers", True, "addChar", "", "", "Argument[0]", "Argument[this].Element.MapKey", "value", "manual"]
- ["io.netty.handler.codec", "Headers", True, "addDouble", "", "", "Argument[this]", "ReturnValue", "value", "manual"]
- ["io.netty.handler.codec", "Headers", True, "addDouble", "", "", "Argument[0]", "Argument[this].Element.MapKey", "value", "manual"]
- ["io.netty.handler.codec", "Headers", True, "addFloat", "", "", "Argument[this]", "ReturnValue", "value", "manual"]
- ["io.netty.handler.codec", "Headers", True, "addFloat", "", "", "Argument[0]", "Argument[this].Element.MapKey", "value", "manual"]
- ["io.netty.handler.codec", "Headers", True, "addInt", "", "", "Argument[this]", "ReturnValue", "value", "manual"]
- ["io.netty.handler.codec", "Headers", True, "addInt", "", "", "Argument[0]", "Argument[this].Element.MapKey", "value", "manual"]
- ["io.netty.handler.codec", "Headers", True, "addLong", "", "", "Argument[this]", "ReturnValue", "value", "manual"]
- ["io.netty.handler.codec", "Headers", True, "addLong", "", "", "Argument[0]", "Argument[this].Element.MapKey", "value", "manual"]
- ["io.netty.handler.codec", "Headers", True, "addShort", "", "", "Argument[this]", "ReturnValue", "value", "manual"]
- ["io.netty.handler.codec", "Headers", True, "addShort", "", "", "Argument[0]", "Argument[this].Element.MapKey", "value", "manual"]
- ["io.netty.handler.codec", "Headers", True, "addTimeMillis", "", "", "Argument[this]", "ReturnValue", "value", "manual"]
- ["io.netty.handler.codec", "Headers", True, "addTimeMillis", "", "", "Argument[0]", "Argument[this].Element.MapKey", "value", "manual"]
- ["io.netty.handler.codec", "Headers", True, "set", "", "", "Argument[this]", "ReturnValue", "value", "manual"]
- ["io.netty.handler.codec", "Headers", True, "set", "(Headers)", "", "Argument[0].Element.MapKey", "Argument[this].Element.MapKey", "value", "manual"]
- ["io.netty.handler.codec", "Headers", True, "set", "(Headers)", "", "Argument[0].Element.MapValue", "Argument[this].Element.MapValue", "value", "manual"]
- ["io.netty.handler.codec", "Headers", True, "set", "(Object,Iterable)", "", "Argument[0]", "Argument[this].Element.MapKey", "value", "manual"]
- ["io.netty.handler.codec", "Headers", True, "set", "(Object,Iterable)", "", "Argument[1].Element", "Argument[this].Element.MapValue", "value", "manual"]
- ["io.netty.handler.codec", "Headers", True, "set", "(Object,Object[])", "", "Argument[0]", "Argument[this].Element.MapKey", "value", "manual"]
- ["io.netty.handler.codec", "Headers", True, "set", "(Object,Object[])", "", "Argument[1].ArrayElement", "Argument[this].Element.MapValue", "value", "manual"]
- ["io.netty.handler.codec", "Headers", True, "set", "(Object,Object)", "", "Argument[0]", "Argument[this].Element.MapKey", "value", "manual"]
- ["io.netty.handler.codec", "Headers", True, "set", "(Object,Object)", "", "Argument[1]", "Argument[this].Element.MapValue", "value", "manual"]
- ["io.netty.handler.codec", "Headers", True, "setAll", "(Headers)", "", "Argument[0].Element.MapKey", "Argument[this].Element.MapKey", "value", "manual"]
- ["io.netty.handler.codec", "Headers", True, "setAll", "(Headers)", "", "Argument[0].Element.MapValue", "Argument[this].Element.MapValue", "value", "manual"]
- ["io.netty.handler.codec", "Headers", True, "setObject", "(Object,Iterable)", "", "Argument[0]", "Argument[this].Element.MapKey", "value", "manual"]
- ["io.netty.handler.codec", "Headers", True, "setObject", "(Object,Iterable)", "", "Argument[1].Element", "Argument[this].Element.MapValue", "taint", "manual"]
- ["io.netty.handler.codec", "Headers", True, "setObject", "(Object,Object[])", "", "Argument[0]", "Argument[this].Element.MapKey", "value", "manual"]
- ["io.netty.handler.codec", "Headers", True, "setObject", "(Object,Object[])", "", "Argument[1].ArrayElement", "Argument[this].Element.MapValue", "taint", "manual"]
- ["io.netty.handler.codec", "Headers", True, "setObject", "(Object,Object)", "", "Argument[0]", "Argument[this].Element.MapKey", "value", "manual"]
- ["io.netty.handler.codec", "Headers", True, "setObject", "(Object,Object)", "", "Argument[1]", "Argument[this].Element.MapValue", "taint", "manual"]
- ["io.netty.handler.codec", "Headers", True, "setBoolean", "", "", "Argument[this]", "ReturnValue", "value", "manual"]
- ["io.netty.handler.codec", "Headers", True, "setBoolean", "", "", "Argument[0]", "Argument[this].Element.MapKey", "value", "manual"]
- ["io.netty.handler.codec", "Headers", True, "setByte", "", "", "Argument[this]", "ReturnValue", "value", "manual"]
- ["io.netty.handler.codec", "Headers", True, "setByte", "", "", "Argument[0]", "Argument[this].Element.MapKey", "value", "manual"]
- ["io.netty.handler.codec", "Headers", True, "setChar", "", "", "Argument[this]", "ReturnValue", "value", "manual"]
- ["io.netty.handler.codec", "Headers", True, "setChar", "", "", "Argument[0]", "Argument[this].Element.MapKey", "value", "manual"]
- ["io.netty.handler.codec", "Headers", True, "setDouble", "", "", "Argument[this]", "ReturnValue", "value", "manual"]
- ["io.netty.handler.codec", "Headers", True, "setDouble", "", "", "Argument[0]", "Argument[this].Element.MapKey", "value", "manual"]
- ["io.netty.handler.codec", "Headers", True, "setFloat", "", "", "Argument[this]", "ReturnValue", "value", "manual"]
- ["io.netty.handler.codec", "Headers", True, "setFloat", "", "", "Argument[0]", "Argument[this].Element.MapKey", "value", "manual"]
- ["io.netty.handler.codec", "Headers", True, "setInt", "", "", "Argument[this]", "ReturnValue", "value", "manual"]
- ["io.netty.handler.codec", "Headers", True, "setInt", "", "", "Argument[0]", "Argument[this].Element.MapKey", "value", "manual"]
- ["io.netty.handler.codec", "Headers", True, "setLong", "", "", "Argument[this]", "ReturnValue", "value", "manual"]
- ["io.netty.handler.codec", "Headers", True, "setLong", "", "", "Argument[0]", "Argument[this].Element.MapKey", "value", "manual"]
- ["io.netty.handler.codec", "Headers", True, "setShort", "", "", "Argument[this]", "ReturnValue", "value", "manual"]
- ["io.netty.handler.codec", "Headers", True, "setShort", "", "", "Argument[0]", "Argument[this].Element.MapKey", "value", "manual"]
- ["io.netty.handler.codec", "Headers", True, "setTimeMillis", "", "", "Argument[this]", "ReturnValue", "value", "manual"]
- ["io.netty.handler.codec", "Headers", True, "setTimeMillis", "", "", "Argument[0]", "Argument[this].Element.MapKey", "value", "manual"]

View File

@@ -0,0 +1,27 @@
extensions:
- addsTo:
pack: codeql/java-all
extensible: summaryModel
data:
- ["io.netty.util", "ReferenceCounted", True, "retain", "", "", "Argument[this]", "ReturnValue", "value", "manual"]
- ["io.netty.util", "ReferenceCounted", True, "touch", "", "", "Argument[this]", "ReturnValue", "value", "manual"]
- ["io.netty.util", "AsciiString", False, "AsciiString", "", "", "Argument[0]", "Argument[this]", "taint", "manual"]
- ["io.netty.util", "AsciiString", False, "array", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"]
- ["io.netty.util", "AsciiString", False, "cached", "(String)", "", "Argument[0]", "ReturnValue", "taint", "manual"]
- ["io.netty.util", "AsciiString", False, "concat", "(CharSequence)", "", "Argument[this]", "ReturnValue", "taint", "manual"]
- ["io.netty.util", "AsciiString", False, "concat", "(CharSequence)", "", "Argument[0]", "ReturnValue", "taint", "manual"]
- ["io.netty.util", "AsciiString", False, "copy", "(int,byte[],int,int)", "", "Argument[this]", "Argument[1]", "taint", "manual"]
- ["io.netty.util", "AsciiString", False, "copy", "(int,char[],int,int)", "", "Argument[this]", "Argument[1]", "taint", "manual"]
- ["io.netty.util", "AsciiString", False, "of", "(CharSequence)", "", "Argument[0]", "ReturnValue", "taint", "manual"]
- ["io.netty.util", "AsciiString", False, "replace", "(char,char)", "", "Argument[this]", "ReturnValue", "taint", "manual"]
- ["io.netty.util", "AsciiString", False, "split", "(char)", "", "Argument[this]", "ReturnValue", "taint", "manual"]
- ["io.netty.util", "AsciiString", False, "split", "(String,int)", "", "Argument[this]", "ReturnValue", "taint", "manual"]
- ["io.netty.util", "AsciiString", False, "split", "(char)", "", "Argument[this]", "ReturnValue", "taint", "manual"]
- ["io.netty.util", "AsciiString", False, "subSequence", "", "", "Argument[this]", "ReturnValue", "taint", "manual"]
- ["io.netty.util", "AsciiString", False, "toByteArray", "", "", "Argument[this]", "ReturnValue", "taint", "manual"]
- ["io.netty.util", "AsciiString", False, "toCharArray", "", "", "Argument[this]", "ReturnValue", "taint", "manual"]
- ["io.netty.util", "AsciiString", False, "toString", "", "", "Argument[this]", "ReturnValue", "taint", "manual"]
- ["io.netty.util", "AsciiString", False, "toLowerCase", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"]
- ["io.netty.util", "AsciiString", False, "toUpperCase", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"]
- ["io.netty.util", "AsciiString", False, "trim", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"]
- ["io.netty.util", "AsciiString", False, "trim", "(CharSequence)", "", "Argument[0]", "ReturnValue", "taint", "manual"]

View File

@@ -1,10 +1,3 @@
/** Provides the `Unit` class. */
/** The unit type. */
private newtype TUnit = TMkUnit()
/** The trivial type with a single element. */
class Unit extends TUnit {
/** Gets a textual representation of this element. */
string toString() { result = "unit" }
}
import codeql.util.Unit

View File

@@ -106,10 +106,8 @@ private class MissingPinningSink extends DataFlow::Node {
}
/** Configuration for finding uses of non trusted URLs. */
private class UntrustedUrlConfig extends TaintTracking::Configuration {
UntrustedUrlConfig() { this = "UntrustedUrlConfig" }
override predicate isSource(DataFlow::Node node) {
private module UntrustedUrlConfig implements DataFlow::ConfigSig {
predicate isSource(DataFlow::Node node) {
trustedDomain(_) and
exists(string lit | lit = node.asExpr().(CompileTimeConstantExpr).getStringValue() |
lit.matches("%://%") and // it's a URL
@@ -117,9 +115,11 @@ private class UntrustedUrlConfig extends TaintTracking::Configuration {
)
}
override predicate isSink(DataFlow::Node node) { node instanceof MissingPinningSink }
predicate isSink(DataFlow::Node node) { node instanceof MissingPinningSink }
}
private module UntrustedUrlFlow = TaintTracking::Global<UntrustedUrlConfig>;
/** Holds if `node` is a network communication call for which certificate pinning is not implemented. */
predicate missingPinning(DataFlow::Node node, string domain) {
isAndroid() and
@@ -127,8 +127,8 @@ predicate missingPinning(DataFlow::Node node, string domain) {
(
not trustedDomain(_) and domain = ""
or
exists(UntrustedUrlConfig conf, DataFlow::Node src |
conf.hasFlow(src, node) and
exists(DataFlow::Node src |
UntrustedUrlFlow::flow(src, node) and
domain = getDomain(src.asExpr())
)
)

View File

@@ -8,9 +8,11 @@ import semmle.code.java.dataflow.TaintTracking3
import semmle.code.java.security.AndroidIntentRedirection
/**
* DEPRECATED: Use `IntentRedirectionFlow` instead.
*
* A taint tracking configuration for tainted Intents being used to start Android components.
*/
class IntentRedirectionConfiguration extends TaintTracking::Configuration {
deprecated class IntentRedirectionConfiguration extends TaintTracking::Configuration {
IntentRedirectionConfiguration() { this = "IntentRedirectionConfiguration" }
override predicate isSource(DataFlow::Node source) { source instanceof RemoteFlowSource }
@@ -26,31 +28,45 @@ class IntentRedirectionConfiguration extends TaintTracking::Configuration {
}
}
/** A taint tracking configuration for tainted Intents being used to start Android components. */
module IntentRedirectionConfig implements DataFlow::ConfigSig {
predicate isSource(DataFlow::Node source) { source instanceof RemoteFlowSource }
predicate isSink(DataFlow::Node sink) { sink instanceof IntentRedirectionSink }
predicate isBarrier(DataFlow::Node sanitizer) { sanitizer instanceof IntentRedirectionSanitizer }
predicate isAdditionalFlowStep(DataFlow::Node node1, DataFlow::Node node2) {
any(IntentRedirectionAdditionalTaintStep c).step(node1, node2)
}
}
/** Tracks the flow of tainted Intents being used to start Android components. */
module IntentRedirectionFlow = TaintTracking::Global<IntentRedirectionConfig>;
/**
* A sanitizer for sinks that receive the original incoming Intent,
* since its component cannot be arbitrarily set.
*/
private class OriginalIntentSanitizer extends IntentRedirectionSanitizer {
OriginalIntentSanitizer() { any(SameIntentBeingRelaunchedConfiguration c).hasFlowTo(this) }
OriginalIntentSanitizer() { SameIntentBeingRelaunchedFlow::flowTo(this) }
}
/**
* Data flow configuration used to discard incoming Intents
* flowing directly to sinks that start Android components.
*/
private class SameIntentBeingRelaunchedConfiguration extends DataFlow2::Configuration {
SameIntentBeingRelaunchedConfiguration() { this = "SameIntentBeingRelaunchedConfiguration" }
private module SameIntentBeingRelaunchedConfig implements DataFlow::ConfigSig {
predicate isSource(DataFlow::Node source) { source instanceof RemoteFlowSource }
override predicate isSource(DataFlow::Node source) { source instanceof RemoteFlowSource }
predicate isSink(DataFlow::Node sink) { sink instanceof IntentRedirectionSink }
override predicate isSink(DataFlow::Node sink) { sink instanceof IntentRedirectionSink }
override predicate isBarrier(DataFlow::Node barrier) {
predicate isBarrier(DataFlow::Node barrier) {
// Don't discard the Intent if its original component is tainted
barrier instanceof IntentWithTaintedComponent
}
override predicate isAdditionalFlowStep(DataFlow::Node node1, DataFlow::Node node2) {
predicate isAdditionalFlowStep(DataFlow::Node node1, DataFlow::Node node2) {
// Intents being built with the copy constructor from the original Intent are discarded too
exists(ClassInstanceExpr cie |
cie.getConstructedType() instanceof TypeIntent and
@@ -61,12 +77,14 @@ private class SameIntentBeingRelaunchedConfiguration extends DataFlow2::Configur
}
}
private module SameIntentBeingRelaunchedFlow = DataFlow::Global<SameIntentBeingRelaunchedConfig>;
/** An `Intent` with a tainted component. */
private class IntentWithTaintedComponent extends DataFlow::Node {
IntentWithTaintedComponent() {
exists(IntentSetComponent setExpr, TaintedIntentComponentConf conf |
exists(IntentSetComponent setExpr |
setExpr.getQualifier() = this.asExpr() and
conf.hasFlowTo(DataFlow::exprNode(setExpr.getSink()))
TaintedIntentComponentFlow::flowTo(DataFlow::exprNode(setExpr.getSink()))
)
}
}
@@ -74,16 +92,16 @@ private class IntentWithTaintedComponent extends DataFlow::Node {
/**
* A taint tracking configuration for tainted data flowing to an `Intent`'s component.
*/
private class TaintedIntentComponentConf extends TaintTracking3::Configuration {
TaintedIntentComponentConf() { this = "TaintedIntentComponentConf" }
private module TaintedIntentComponentConfig implements DataFlow::ConfigSig {
predicate isSource(DataFlow::Node source) { source instanceof RemoteFlowSource }
override predicate isSource(DataFlow::Node source) { source instanceof RemoteFlowSource }
override predicate isSink(DataFlow::Node sink) {
predicate isSink(DataFlow::Node sink) {
any(IntentSetComponent setComponent).getSink() = sink.asExpr()
}
}
private module TaintedIntentComponentFlow = TaintTracking::Global<TaintedIntentComponentConfig>;
/** A call to a method that changes the component of an `Intent`. */
private class IntentSetComponent extends MethodAccess {
int sinkArg;

View File

@@ -14,14 +14,12 @@ private class OnReceiveMethod extends Method {
}
/** A configuration to detect whether the `action` of an `Intent` is checked. */
private class VerifiedIntentConfig extends DataFlow::Configuration {
VerifiedIntentConfig() { this = "VerifiedIntentConfig" }
override predicate isSource(DataFlow::Node src) {
private module VerifiedIntentConfig implements DataFlow::ConfigSig {
predicate isSource(DataFlow::Node src) {
src.asParameter() = any(OnReceiveMethod orm).getIntentParameter()
}
override predicate isSink(DataFlow::Node sink) {
predicate isSink(DataFlow::Node sink) {
exists(MethodAccess ma |
ma.getMethod().hasQualifiedName("android.content", "Intent", "getAction") and
sink.asExpr() = ma.getQualifier()
@@ -29,10 +27,12 @@ private class VerifiedIntentConfig extends DataFlow::Configuration {
}
}
private module VerifiedIntentFlow = DataFlow::Global<VerifiedIntentConfig>;
/** An `onReceive` method that doesn't verify the action of the intent it receives. */
private class UnverifiedOnReceiveMethod extends OnReceiveMethod {
UnverifiedOnReceiveMethod() {
not any(VerifiedIntentConfig c).hasFlow(DataFlow::parameterNode(this.getIntentParameter()), _)
not VerifiedIntentFlow::flow(DataFlow::parameterNode(this.getIntentParameter()), _)
}
}

View File

@@ -91,16 +91,14 @@ private predicate inputTypeFieldNotCached(Field f) {
}
/** Configuration that finds uses of `setInputType` for non cached fields. */
private class GoodInputTypeConf extends DataFlow::Configuration {
GoodInputTypeConf() { this = "GoodInputTypeConf" }
override predicate isSource(DataFlow::Node node) {
private module GoodInputTypeConfig implements DataFlow::ConfigSig {
predicate isSource(DataFlow::Node node) {
inputTypeFieldNotCached(node.asExpr().(FieldAccess).getField())
}
override predicate isSink(DataFlow::Node node) { node.asExpr() = setInputTypeForId(_) }
predicate isSink(DataFlow::Node node) { node.asExpr() = setInputTypeForId(_) }
override predicate isAdditionalFlowStep(DataFlow::Node node1, DataFlow::Node node2) {
predicate isAdditionalFlowStep(DataFlow::Node node1, DataFlow::Node node2) {
exists(OrBitwiseExpr bitOr |
node1.asExpr() = bitOr.getAChildExpr() and
node2.asExpr() = bitOr
@@ -108,6 +106,8 @@ private class GoodInputTypeConf extends DataFlow::Configuration {
}
}
private module GoodInputTypeFlow = DataFlow::Global<GoodInputTypeConfig>;
/** Gets a regex indicating that an input field may contain sensitive data. */
private string getInputSensitiveInfoRegex() {
result =
@@ -130,8 +130,8 @@ AndroidEditableXmlElement getASensitiveCachedInput() {
result.getId().regexpMatch(getInputSensitiveInfoRegex()) and
(
not inputTypeNotCached(result.getInputType()) and
not exists(GoodInputTypeConf conf, DataFlow::Node sink |
conf.hasFlowTo(sink) and
not exists(DataFlow::Node sink |
GoodInputTypeFlow::flowTo(sink) and
sink.asExpr() = setInputTypeForId(result.getId())
)
)

View File

@@ -7,9 +7,11 @@ import semmle.code.java.security.RequestForgery
import semmle.code.java.security.UnsafeAndroidAccess
/**
* DEPRECATED: Use `FetchUntrustedResourceFlow` instead.
*
* A taint configuration tracking flow from untrusted inputs to a resource fetching call.
*/
class FetchUntrustedResourceConfiguration extends TaintTracking::Configuration {
deprecated class FetchUntrustedResourceConfiguration extends TaintTracking::Configuration {
FetchUntrustedResourceConfiguration() { this = "FetchUntrustedResourceConfiguration" }
override predicate isSource(DataFlow::Node source) { source instanceof RemoteFlowSource }
@@ -20,3 +22,19 @@ class FetchUntrustedResourceConfiguration extends TaintTracking::Configuration {
sanitizer instanceof RequestForgerySanitizer
}
}
/**
* A taint configuration tracking flow from untrusted inputs to a resource fetching call.
*/
module FetchUntrustedResourceConfig implements DataFlow::ConfigSig {
predicate isSource(DataFlow::Node source) { source instanceof RemoteFlowSource }
predicate isSink(DataFlow::Node sink) { sink instanceof UrlResourceSink }
predicate isBarrier(DataFlow::Node sanitizer) { sanitizer instanceof RequestForgerySanitizer }
}
/**
* Detects taint flow from untrusted inputs to a resource fetching call.
*/
module FetchUntrustedResourceFlow = TaintTracking::Global<FetchUntrustedResourceConfig>;

View File

@@ -0,0 +1,70 @@
/** Definitions for the Android Webview Debugging Enabled query */
import java
import semmle.code.java.dataflow.DataFlow
import semmle.code.java.controlflow.Guards
import semmle.code.java.security.SecurityTests
/** Holds if `ex` looks like a check that this is a debug build. */
private predicate isDebugCheck(Expr ex) {
exists(Expr subex, string debug |
debug.toLowerCase().matches(["%debug%", "%test%"]) and
subex.getParent*() = ex
|
subex.(VarAccess).getVariable().getName() = debug
or
subex.(MethodAccess).getMethod().hasName("getProperty") and
subex.(MethodAccess).getAnArgument().(CompileTimeConstantExpr).getStringValue() = debug
)
}
/**
* DEPRECATED: Use `WebviewDebugEnabledFlow` instead.
*
* A configuration to find instances of `setWebContentDebuggingEnabled` called with `true` values.
*/
deprecated class WebviewDebugEnabledConfig extends DataFlow::Configuration {
WebviewDebugEnabledConfig() { this = "WebviewDebugEnabledConfig" }
override predicate isSource(DataFlow::Node node) {
node.asExpr().(BooleanLiteral).getBooleanValue() = true
}
override predicate isSink(DataFlow::Node node) {
exists(MethodAccess ma |
ma.getMethod().hasQualifiedName("android.webkit", "WebView", "setWebContentsDebuggingEnabled") and
node.asExpr() = ma.getArgument(0)
)
}
override predicate isBarrier(DataFlow::Node node) {
exists(Guard debug | isDebugCheck(debug) and debug.controls(node.asExpr().getBasicBlock(), _))
or
node.getEnclosingCallable().getDeclaringType() instanceof NonSecurityTestClass
}
}
/** A configuration to find instances of `setWebContentDebuggingEnabled` called with `true` values. */
module WebviewDebugEnabledConfig implements DataFlow::ConfigSig {
predicate isSource(DataFlow::Node node) {
node.asExpr().(BooleanLiteral).getBooleanValue() = true
}
predicate isSink(DataFlow::Node node) {
exists(MethodAccess ma |
ma.getMethod().hasQualifiedName("android.webkit", "WebView", "setWebContentsDebuggingEnabled") and
node.asExpr() = ma.getArgument(0)
)
}
predicate isBarrier(DataFlow::Node node) {
exists(Guard debug | isDebugCheck(debug) and debug.controls(node.asExpr().getBasicBlock(), _))
or
node.getEnclosingCallable().getDeclaringType() instanceof NonSecurityTestClass
}
}
/**
* Tracks instances of `setWebContentDebuggingEnabled` with `true` values.
*/
module WebviewDebugEnabledFlow = DataFlow::Global<WebviewDebugEnabledConfig>;

View File

@@ -1,41 +1,11 @@
/** Definitions for the Android Webview Debugging Enabled query */
/**
* DEPRECATED: Use `semmle.code.java.security.WebviewDebuggingEnabledQuery` instead.
*
* Definitions for the Android Webview Debugging Enabled query
*/
import java
import semmle.code.java.dataflow.DataFlow
import semmle.code.java.controlflow.Guards
import semmle.code.java.security.SecurityTests
private import semmle.code.java.security.WebviewDebuggingEnabledQuery as WebviewDebuggingEnabledQuery
/** Holds if `ex` looks like a check that this is a debug build. */
private predicate isDebugCheck(Expr ex) {
exists(Expr subex, string debug |
debug.toLowerCase().matches(["%debug%", "%test%"]) and
subex.getParent*() = ex
|
subex.(VarAccess).getVariable().getName() = debug
or
subex.(MethodAccess).getMethod().hasName("getProperty") and
subex.(MethodAccess).getAnArgument().(CompileTimeConstantExpr).getStringValue() = debug
)
}
/** A configuration to find instances of `setWebContentDebuggingEnabled` called with `true` values. */
class WebviewDebugEnabledConfig extends DataFlow::Configuration {
WebviewDebugEnabledConfig() { this = "WebviewDebugEnabledConfig" }
override predicate isSource(DataFlow::Node node) {
node.asExpr().(BooleanLiteral).getBooleanValue() = true
}
override predicate isSink(DataFlow::Node node) {
exists(MethodAccess ma |
ma.getMethod().hasQualifiedName("android.webkit", "WebView", "setWebContentsDebuggingEnabled") and
node.asExpr() = ma.getArgument(0)
)
}
override predicate isBarrier(DataFlow::Node node) {
exists(Guard debug | isDebugCheck(debug) and debug.controls(node.asExpr().getBasicBlock(), _))
or
node.getEnclosingCallable().getDeclaringType() instanceof NonSecurityTestClass
}
}
deprecated class WebviewDebugEnabledConfig =
WebviewDebuggingEnabledQuery::WebviewDebugEnabledConfig;

View File

@@ -11,9 +11,9 @@
*/
import java
import semmle.code.java.security.WebviewDubuggingEnabledQuery
import DataFlow::PathGraph
import semmle.code.java.security.WebviewDebuggingEnabledQuery
import WebviewDebugEnabledFlow::PathGraph
from WebviewDebugEnabledConfig conf, DataFlow::PathNode source, DataFlow::PathNode sink
where conf.hasFlowPath(source, sink)
from WebviewDebugEnabledFlow::PathNode source, WebviewDebugEnabledFlow::PathNode sink
where WebviewDebugEnabledFlow::flowPath(source, sink)
select sink, source, sink, "Webview debugging is enabled."

View File

@@ -14,9 +14,9 @@
import java
import semmle.code.java.security.UnsafeAndroidAccessQuery
import DataFlow::PathGraph
import FetchUntrustedResourceFlow::PathGraph
from DataFlow::PathNode source, DataFlow::PathNode sink, FetchUntrustedResourceConfiguration conf
where conf.hasFlowPath(source, sink)
from FetchUntrustedResourceFlow::PathNode source, FetchUntrustedResourceFlow::PathNode sink
where FetchUntrustedResourceFlow::flowPath(source, sink)
select sink.getNode(), source, sink, "Unsafe resource fetching in Android WebView due to $@.",
source.getNode(), sink.getNode().(UrlResourceSink).getSinkType()

View File

@@ -15,10 +15,10 @@
import java
import semmle.code.java.security.AndroidIntentRedirectionQuery
import DataFlow::PathGraph
import IntentRedirectionFlow::PathGraph
from DataFlow::PathNode source, DataFlow::PathNode sink, IntentRedirectionConfiguration conf
where conf.hasFlowPath(source, sink)
from IntentRedirectionFlow::PathNode source, IntentRedirectionFlow::PathNode sink
where IntentRedirectionFlow::flowPath(source, sink)
select sink.getNode(), source, sink,
"Arbitrary Android activities or services can be started from a $@.", source.getNode(),
"user-provided value"

File diff suppressed because it is too large Load Diff

View File

@@ -4,7 +4,7 @@ import io.netty.resolver.SimpleNameResolver;
import io.netty.util.concurrent.Future;
// Test case generated by GenerateFlowTestCase.ql
public class Test {
public class TestA {
Object source() {
return null;

View File

@@ -1 +1 @@
//semmle-extractor-options: --javac-args -cp ${testdir}/../../../stubs/netty-4.1.x
//semmle-extractor-options: --javac-args -cp ${testdir}/../../../../stubs/netty-4.1.x

View File

@@ -0,0 +1,11 @@
extensions:
- addsTo:
pack: codeql/java-tests
extensible: summaryModel
data:
- ["generatedtest", "Test", False, "newWithMapValueDefault", "(Object)", "", "Argument[0]", "ReturnValue.MapValue", "value", "manual"]
- ["generatedtest", "Test", False, "newWithMapKeyDefault", "(Object)", "", "Argument[0]", "ReturnValue.MapKey", "value", "manual"]
- ["generatedtest", "Test", False, "newWithElementDefault", "(Object)", "", "Argument[0]", "ReturnValue.Element", "value", "manual"]
- ["generatedtest", "Test", False, "getMapValueDefault", "(Object)", "", "Argument[0].MapValue", "ReturnValue", "value", "manual"]
- ["generatedtest", "Test", False, "getMapKeyDefault", "(Object)", "", "Argument[0].MapKey", "ReturnValue", "value", "manual"]
- ["generatedtest", "Test", False, "getElementDefault", "(Object)", "", "Argument[0].Element", "ReturnValue", "value", "manual"]

View File

@@ -0,0 +1,76 @@
import io.netty.channel.*;
import io.netty.buffer.ByteBuf;
import io.netty.handler.codec.*;
import io.netty.handler.codec.http.*;
import io.netty.handler.codec.http2.*;
import java.util.List;
class Test {
static <T> T source() { return null; }
static void sink(Object s) {}
class A extends ChannelInboundHandlerAdapter {
public void channelRead(ChannelHandlerContext ctx, Object msg) {
sink(msg); // $hasTaintFlow
}
}
class B extends ChannelInboundHandlerAdapter {
public void channelRead(ChannelHandlerContext ctx, Object msg) {
ByteBuf bb = (ByteBuf) msg;
byte[] data = new byte[1024];
bb.readBytes(data);
sink(data); // $hasTaintFlow
}
}
void test(ByteBuf bb, byte[] x) {
byte[] src = source();
bb.readBytes(x).setLong(3, 4).readerIndex(2).writeBytes(src).skipBytes(2);
sink(bb); // $ hasTaintFlow
sink(x);
}
class C extends ByteToMessageDecoder {
public void callDecode(ChannelHandlerContext ctx, ByteBuf msg, List<Object> out) {
sink(msg); // $ hasTaintFlow
}
public void decode(ChannelHandlerContext ctx, ByteBuf msg, List<Object> out) {
sink(msg); // $ hasTaintFlow
}
public void decodeLast(ChannelHandlerContext ctx, ByteBuf msg, List<Object> out) {
sink(msg); // $ hasTaintFlow
}
}
class D extends SimpleChannelInboundHandler<FullHttpRequest> {
public void channelRead0(ChannelHandlerContext ctx, FullHttpRequest msg) {
sink(msg.uri()); // $ hasTaintFlow
sink(msg.headers().get("X-blah")); // $ hasTaintFlow
sink(msg.content()); // $ hasTaintFlow
}
}
class E extends Http2FrameAdapter {
public int onDataRead(ChannelHandlerContext ctx, int streamId, ByteBuf data, int padding, boolean endOfStream) {
sink(data); // $ hasTaintFlow
return 0;
}
public void onHeadersRead(ChannelHandlerContext ctx, int streamId, Http2Headers headers, int padding, boolean endStream) {
sink(headers.get("X-blah")); // $ hasTaintFlow
sink(headers.path()); // $ hasTaintFlow
}
public void onPushPromiseRead(ChannelHandlerContext ctx, int streamId, int promisedStreamId, Http2Headers headers, int padding) {
sink(headers); // $ hasTaintFlow
}
public void onUnknownFrame(ChannelHandlerContext ctx, byte frameType, int streamId, Http2Flags flags, ByteBuf payload) {
sink(payload); // $ hasTaintFlow
}
}
}

View File

@@ -0,0 +1 @@
//semmle-extractor-options: --javac-args -cp ${testdir}/../../../../stubs/netty-4.1.x

View File

@@ -0,0 +1,15 @@
import java
import semmle.code.java.dataflow.FlowSources
import TestUtilities.InlineFlowTest
class Conf extends DefaultTaintFlowConf {
override predicate isSource(DataFlow::Node node) {
super.isSource(node)
or
node instanceof RemoteFlowSource
}
}
class LegacyConfig extends EnableLegacyConfiguration {
LegacyConfig() { this instanceof Unit }
}

View File

@@ -1,15 +1,11 @@
import java
import TestUtilities.InlineFlowTest
import semmle.code.java.security.WebviewDubuggingEnabledQuery
class EnableLegacy extends EnableLegacyConfiguration {
EnableLegacy() { exists(this) }
}
import semmle.code.java.security.WebviewDebuggingEnabledQuery
class HasFlowTest extends InlineFlowTest {
override DataFlow::Configuration getTaintFlowConfig() { none() }
override predicate hasTaintFlow(DataFlow::Node src, DataFlow::Node sink) { none() }
override DataFlow::Configuration getValueFlowConfig() {
result = any(WebviewDebugEnabledConfig c)
override predicate hasValueFlow(DataFlow::Node src, DataFlow::Node sink) {
WebviewDebugEnabledFlow::flow(src, sink)
}
}

View File

@@ -9,7 +9,7 @@ class UnsafeAndroidAccessTest extends InlineExpectationsTest {
override predicate hasActualResult(Location location, string element, string tag, string value) {
tag = "hasUnsafeAndroidAccess" and
exists(DataFlow::Node sink, FetchUntrustedResourceConfiguration conf | conf.hasFlowTo(sink) |
exists(DataFlow::Node sink | FetchUntrustedResourceFlow::flowTo(sink) |
sink.getLocation() = location and
element = sink.toString() and
value = ""

View File

@@ -9,7 +9,7 @@ class HasAndroidIntentRedirectionTest extends InlineExpectationsTest {
override predicate hasActualResult(Location location, string element, string tag, string value) {
tag = "hasAndroidIntentRedirection" and
exists(DataFlow::Node sink, IntentRedirectionConfiguration conf | conf.hasFlowTo(sink) |
exists(DataFlow::Node sink | IntentRedirectionFlow::flowTo(sink) |
sink.getLocation() = location and
element = sink.toString() and
value = ""

View File

@@ -0,0 +1,199 @@
// Generated automatically from io.netty.buffer.AbstractByteBuf for testing purposes
package io.netty.buffer;
import io.netty.buffer.ByteBuf;
import io.netty.buffer.SwappedByteBuf;
import io.netty.util.ByteProcessor;
import java.io.InputStream;
import java.io.OutputStream;
import java.nio.ByteBuffer;
import java.nio.ByteOrder;
import java.nio.channels.FileChannel;
import java.nio.channels.GatheringByteChannel;
import java.nio.channels.ScatteringByteChannel;
import java.nio.charset.Charset;
abstract public class AbstractByteBuf extends ByteBuf
{
protected AbstractByteBuf() {}
protected AbstractByteBuf(int p0){}
protected SwappedByteBuf newSwappedByteBuf(){ return null; }
protected abstract byte _getByte(int p0);
protected abstract int _getInt(int p0);
protected abstract int _getIntLE(int p0);
protected abstract int _getUnsignedMedium(int p0);
protected abstract int _getUnsignedMediumLE(int p0);
protected abstract long _getLong(int p0);
protected abstract long _getLongLE(int p0);
protected abstract short _getShort(int p0);
protected abstract short _getShortLE(int p0);
protected abstract void _setByte(int p0, int p1);
protected abstract void _setInt(int p0, int p1);
protected abstract void _setIntLE(int p0, int p1);
protected abstract void _setLong(int p0, long p1);
protected abstract void _setLongLE(int p0, long p1);
protected abstract void _setMedium(int p0, int p1);
protected abstract void _setMediumLE(int p0, int p1);
protected abstract void _setShort(int p0, int p1);
protected abstract void _setShortLE(int p0, int p1);
protected final void adjustMarkers(int p0){}
protected final void checkDstIndex(int p0, int p1, int p2){}
protected final void checkDstIndex(int p0, int p1, int p2, int p3){}
protected final void checkIndex(int p0){}
protected final void checkIndex(int p0, int p1){}
protected final void checkNewCapacity(int p0){}
protected final void checkReadableBytes(int p0){}
protected final void checkSrcIndex(int p0, int p1, int p2, int p3){}
protected final void ensureAccessible(){}
protected final void maxCapacity(int p0){}
protected final void trimIndicesToCapacity(int p0){}
public ByteBuf asReadOnly(){ return null; }
public ByteBuf clear(){ return null; }
public ByteBuf copy(){ return null; }
public ByteBuf discardReadBytes(){ return null; }
public ByteBuf discardSomeReadBytes(){ return null; }
public ByteBuf duplicate(){ return null; }
public ByteBuf ensureWritable(int p0){ return null; }
public ByteBuf getBytes(int p0, ByteBuf p1){ return null; }
public ByteBuf getBytes(int p0, ByteBuf p1, int p2){ return null; }
public ByteBuf getBytes(int p0, byte[] p1){ return null; }
public ByteBuf markReaderIndex(){ return null; }
public ByteBuf markWriterIndex(){ return null; }
public ByteBuf order(ByteOrder p0){ return null; }
public ByteBuf readBytes(ByteBuf p0){ return null; }
public ByteBuf readBytes(ByteBuf p0, int p1){ return null; }
public ByteBuf readBytes(ByteBuf p0, int p1, int p2){ return null; }
public ByteBuf readBytes(ByteBuffer p0){ return null; }
public ByteBuf readBytes(OutputStream p0, int p1){ return null; }
public ByteBuf readBytes(byte[] p0){ return null; }
public ByteBuf readBytes(byte[] p0, int p1, int p2){ return null; }
public ByteBuf readBytes(int p0){ return null; }
public ByteBuf readRetainedSlice(int p0){ return null; }
public ByteBuf readSlice(int p0){ return null; }
public ByteBuf readerIndex(int p0){ return null; }
public ByteBuf resetReaderIndex(){ return null; }
public ByteBuf resetWriterIndex(){ return null; }
public ByteBuf retainedDuplicate(){ return null; }
public ByteBuf retainedSlice(){ return null; }
public ByteBuf retainedSlice(int p0, int p1){ return null; }
public ByteBuf setBoolean(int p0, boolean p1){ return null; }
public ByteBuf setByte(int p0, int p1){ return null; }
public ByteBuf setBytes(int p0, ByteBuf p1){ return null; }
public ByteBuf setBytes(int p0, ByteBuf p1, int p2){ return null; }
public ByteBuf setBytes(int p0, byte[] p1){ return null; }
public ByteBuf setChar(int p0, int p1){ return null; }
public ByteBuf setDouble(int p0, double p1){ return null; }
public ByteBuf setFloat(int p0, float p1){ return null; }
public ByteBuf setIndex(int p0, int p1){ return null; }
public ByteBuf setInt(int p0, int p1){ return null; }
public ByteBuf setIntLE(int p0, int p1){ return null; }
public ByteBuf setLong(int p0, long p1){ return null; }
public ByteBuf setLongLE(int p0, long p1){ return null; }
public ByteBuf setMedium(int p0, int p1){ return null; }
public ByteBuf setMediumLE(int p0, int p1){ return null; }
public ByteBuf setShort(int p0, int p1){ return null; }
public ByteBuf setShortLE(int p0, int p1){ return null; }
public ByteBuf setZero(int p0, int p1){ return null; }
public ByteBuf skipBytes(int p0){ return null; }
public ByteBuf slice(){ return null; }
public ByteBuf slice(int p0, int p1){ return null; }
public ByteBuf writeBoolean(boolean p0){ return null; }
public ByteBuf writeByte(int p0){ return null; }
public ByteBuf writeBytes(ByteBuf p0){ return null; }
public ByteBuf writeBytes(ByteBuf p0, int p1){ return null; }
public ByteBuf writeBytes(ByteBuf p0, int p1, int p2){ return null; }
public ByteBuf writeBytes(ByteBuffer p0){ return null; }
public ByteBuf writeBytes(byte[] p0){ return null; }
public ByteBuf writeBytes(byte[] p0, int p1, int p2){ return null; }
public ByteBuf writeChar(int p0){ return null; }
public ByteBuf writeDouble(double p0){ return null; }
public ByteBuf writeFloat(float p0){ return null; }
public ByteBuf writeInt(int p0){ return null; }
public ByteBuf writeIntLE(int p0){ return null; }
public ByteBuf writeLong(long p0){ return null; }
public ByteBuf writeLongLE(long p0){ return null; }
public ByteBuf writeMedium(int p0){ return null; }
public ByteBuf writeMediumLE(int p0){ return null; }
public ByteBuf writeShort(int p0){ return null; }
public ByteBuf writeShortLE(int p0){ return null; }
public ByteBuf writeZero(int p0){ return null; }
public ByteBuf writerIndex(int p0){ return null; }
public ByteBuffer nioBuffer(){ return null; }
public ByteBuffer[] nioBuffers(){ return null; }
public CharSequence getCharSequence(int p0, int p1, Charset p2){ return null; }
public CharSequence readCharSequence(int p0, Charset p1){ return null; }
public String toString(){ return null; }
public String toString(Charset p0){ return null; }
public String toString(int p0, int p1, Charset p2){ return null; }
public boolean equals(Object p0){ return false; }
public boolean getBoolean(int p0){ return false; }
public boolean isReadOnly(){ return false; }
public boolean isReadable(){ return false; }
public boolean isReadable(int p0){ return false; }
public boolean isWritable(){ return false; }
public boolean isWritable(int p0){ return false; }
public boolean readBoolean(){ return false; }
public byte getByte(int p0){ return 0; }
public byte readByte(){ return 0; }
public char getChar(int p0){ return '0'; }
public char readChar(){ return '0'; }
public double getDouble(int p0){ return 0; }
public double readDouble(){ return 0; }
public float getFloat(int p0){ return 0; }
public float readFloat(){ return 0; }
public int bytesBefore(byte p0){ return 0; }
public int bytesBefore(int p0, byte p1){ return 0; }
public int bytesBefore(int p0, int p1, byte p2){ return 0; }
public int compareTo(ByteBuf p0){ return 0; }
public int ensureWritable(int p0, boolean p1){ return 0; }
public int forEachByte(ByteProcessor p0){ return 0; }
public int forEachByte(int p0, int p1, ByteProcessor p2){ return 0; }
public int forEachByteDesc(ByteProcessor p0){ return 0; }
public int forEachByteDesc(int p0, int p1, ByteProcessor p2){ return 0; }
public int getInt(int p0){ return 0; }
public int getIntLE(int p0){ return 0; }
public int getMedium(int p0){ return 0; }
public int getMediumLE(int p0){ return 0; }
public int getUnsignedMedium(int p0){ return 0; }
public int getUnsignedMediumLE(int p0){ return 0; }
public int getUnsignedShort(int p0){ return 0; }
public int getUnsignedShortLE(int p0){ return 0; }
public int hashCode(){ return 0; }
public int indexOf(int p0, int p1, byte p2){ return 0; }
public int maxCapacity(){ return 0; }
public int maxWritableBytes(){ return 0; }
public int readBytes(FileChannel p0, long p1, int p2){ return 0; }
public int readBytes(GatheringByteChannel p0, int p1){ return 0; }
public int readInt(){ return 0; }
public int readIntLE(){ return 0; }
public int readMedium(){ return 0; }
public int readMediumLE(){ return 0; }
public int readUnsignedMedium(){ return 0; }
public int readUnsignedMediumLE(){ return 0; }
public int readUnsignedShort(){ return 0; }
public int readUnsignedShortLE(){ return 0; }
public int readableBytes(){ return 0; }
public int readerIndex(){ return 0; }
public int setCharSequence(int p0, CharSequence p1, Charset p2){ return 0; }
public int writableBytes(){ return 0; }
public int writeBytes(FileChannel p0, long p1, int p2){ return 0; }
public int writeBytes(InputStream p0, int p1){ return 0; }
public int writeBytes(ScatteringByteChannel p0, int p1){ return 0; }
public int writeCharSequence(CharSequence p0, Charset p1){ return 0; }
public int writerIndex(){ return 0; }
public long getLong(int p0){ return 0; }
public long getLongLE(int p0){ return 0; }
public long getUnsignedInt(int p0){ return 0; }
public long getUnsignedIntLE(int p0){ return 0; }
public long readLong(){ return 0; }
public long readLongLE(){ return 0; }
public long readUnsignedInt(){ return 0; }
public long readUnsignedIntLE(){ return 0; }
public short getShort(int p0){ return 0; }
public short getShortLE(int p0){ return 0; }
public short getUnsignedByte(int p0){ return 0; }
public short readShort(){ return 0; }
public short readShortLE(){ return 0; }
public short readUnsignedByte(){ return 0; }
}

View File

@@ -0,0 +1,22 @@
// Generated automatically from io.netty.buffer.AbstractReferenceCountedByteBuf for testing purposes
package io.netty.buffer;
import io.netty.buffer.AbstractByteBuf;
import io.netty.buffer.ByteBuf;
abstract public class AbstractReferenceCountedByteBuf extends AbstractByteBuf
{
protected AbstractReferenceCountedByteBuf() {}
protected AbstractReferenceCountedByteBuf(int p0){}
protected abstract void deallocate();
protected final void resetRefCnt(){}
protected final void setRefCnt(int p0){}
public ByteBuf retain(){ return null; }
public ByteBuf retain(int p0){ return null; }
public ByteBuf touch(){ return null; }
public ByteBuf touch(Object p0){ return null; }
public boolean release(){ return false; }
public boolean release(int p0){ return false; }
public int refCnt(){ return 0; }
}

View File

@@ -1,19 +1,212 @@
/*
* Copyright 2012 The Netty Project
*
* The Netty Project licenses this file to you under the Apache License,
* version 2.0 (the "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at:
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
*/
// Generated automatically from io.netty.buffer.ByteBuf for testing purposes
package io.netty.buffer;
public abstract class ByteBuf implements Comparable<ByteBuf> {
}
import io.netty.buffer.ByteBufAllocator;
import io.netty.buffer.ByteBufConvertible;
import io.netty.util.ByteProcessor;
import io.netty.util.ReferenceCounted;
import java.io.InputStream;
import java.io.OutputStream;
import java.nio.ByteBuffer;
import java.nio.ByteOrder;
import java.nio.channels.FileChannel;
import java.nio.channels.GatheringByteChannel;
import java.nio.channels.ScatteringByteChannel;
import java.nio.charset.Charset;
abstract public class ByteBuf implements ByteBufConvertible, Comparable<ByteBuf>, ReferenceCounted
{
public ByteBuf asByteBuf(){ return null; }
public ByteBuf setDoubleLE(int p0, double p1){ return null; }
public ByteBuf setFloatLE(int p0, float p1){ return null; }
public ByteBuf writeDoubleLE(double p0){ return null; }
public ByteBuf writeFloatLE(float p0){ return null; }
public ByteBuf(){}
public abstract ByteBuf asReadOnly();
public abstract ByteBuf capacity(int p0);
public abstract ByteBuf clear();
public abstract ByteBuf copy();
public abstract ByteBuf copy(int p0, int p1);
public abstract ByteBuf discardReadBytes();
public abstract ByteBuf discardSomeReadBytes();
public abstract ByteBuf duplicate();
public abstract ByteBuf ensureWritable(int p0);
public abstract ByteBuf getBytes(int p0, ByteBuf p1);
public abstract ByteBuf getBytes(int p0, ByteBuf p1, int p2);
public abstract ByteBuf getBytes(int p0, ByteBuf p1, int p2, int p3);
public abstract ByteBuf getBytes(int p0, ByteBuffer p1);
public abstract ByteBuf getBytes(int p0, OutputStream p1, int p2);
public abstract ByteBuf getBytes(int p0, byte[] p1);
public abstract ByteBuf getBytes(int p0, byte[] p1, int p2, int p3);
public abstract ByteBuf markReaderIndex();
public abstract ByteBuf markWriterIndex();
public abstract ByteBuf order(ByteOrder p0);
public abstract ByteBuf readBytes(ByteBuf p0);
public abstract ByteBuf readBytes(ByteBuf p0, int p1);
public abstract ByteBuf readBytes(ByteBuf p0, int p1, int p2);
public abstract ByteBuf readBytes(ByteBuffer p0);
public abstract ByteBuf readBytes(OutputStream p0, int p1);
public abstract ByteBuf readBytes(byte[] p0);
public abstract ByteBuf readBytes(byte[] p0, int p1, int p2);
public abstract ByteBuf readBytes(int p0);
public abstract ByteBuf readRetainedSlice(int p0);
public abstract ByteBuf readSlice(int p0);
public abstract ByteBuf readerIndex(int p0);
public abstract ByteBuf resetReaderIndex();
public abstract ByteBuf resetWriterIndex();
public abstract ByteBuf retain();
public abstract ByteBuf retain(int p0);
public abstract ByteBuf retainedDuplicate();
public abstract ByteBuf retainedSlice();
public abstract ByteBuf retainedSlice(int p0, int p1);
public abstract ByteBuf setBoolean(int p0, boolean p1);
public abstract ByteBuf setByte(int p0, int p1);
public abstract ByteBuf setBytes(int p0, ByteBuf p1);
public abstract ByteBuf setBytes(int p0, ByteBuf p1, int p2);
public abstract ByteBuf setBytes(int p0, ByteBuf p1, int p2, int p3);
public abstract ByteBuf setBytes(int p0, ByteBuffer p1);
public abstract ByteBuf setBytes(int p0, byte[] p1);
public abstract ByteBuf setBytes(int p0, byte[] p1, int p2, int p3);
public abstract ByteBuf setChar(int p0, int p1);
public abstract ByteBuf setDouble(int p0, double p1);
public abstract ByteBuf setFloat(int p0, float p1);
public abstract ByteBuf setIndex(int p0, int p1);
public abstract ByteBuf setInt(int p0, int p1);
public abstract ByteBuf setIntLE(int p0, int p1);
public abstract ByteBuf setLong(int p0, long p1);
public abstract ByteBuf setLongLE(int p0, long p1);
public abstract ByteBuf setMedium(int p0, int p1);
public abstract ByteBuf setMediumLE(int p0, int p1);
public abstract ByteBuf setShort(int p0, int p1);
public abstract ByteBuf setShortLE(int p0, int p1);
public abstract ByteBuf setZero(int p0, int p1);
public abstract ByteBuf skipBytes(int p0);
public abstract ByteBuf slice();
public abstract ByteBuf slice(int p0, int p1);
public abstract ByteBuf touch();
public abstract ByteBuf touch(Object p0);
public abstract ByteBuf unwrap();
public abstract ByteBuf writeBoolean(boolean p0);
public abstract ByteBuf writeByte(int p0);
public abstract ByteBuf writeBytes(ByteBuf p0);
public abstract ByteBuf writeBytes(ByteBuf p0, int p1);
public abstract ByteBuf writeBytes(ByteBuf p0, int p1, int p2);
public abstract ByteBuf writeBytes(ByteBuffer p0);
public abstract ByteBuf writeBytes(byte[] p0);
public abstract ByteBuf writeBytes(byte[] p0, int p1, int p2);
public abstract ByteBuf writeChar(int p0);
public abstract ByteBuf writeDouble(double p0);
public abstract ByteBuf writeFloat(float p0);
public abstract ByteBuf writeInt(int p0);
public abstract ByteBuf writeIntLE(int p0);
public abstract ByteBuf writeLong(long p0);
public abstract ByteBuf writeLongLE(long p0);
public abstract ByteBuf writeMedium(int p0);
public abstract ByteBuf writeMediumLE(int p0);
public abstract ByteBuf writeShort(int p0);
public abstract ByteBuf writeShortLE(int p0);
public abstract ByteBuf writeZero(int p0);
public abstract ByteBuf writerIndex(int p0);
public abstract ByteBufAllocator alloc();
public abstract ByteBuffer internalNioBuffer(int p0, int p1);
public abstract ByteBuffer nioBuffer();
public abstract ByteBuffer nioBuffer(int p0, int p1);
public abstract ByteBuffer[] nioBuffers();
public abstract ByteBuffer[] nioBuffers(int p0, int p1);
public abstract ByteOrder order();
public abstract CharSequence getCharSequence(int p0, int p1, Charset p2);
public abstract CharSequence readCharSequence(int p0, Charset p1);
public abstract String toString();
public abstract String toString(Charset p0);
public abstract String toString(int p0, int p1, Charset p2);
public abstract boolean equals(Object p0);
public abstract boolean getBoolean(int p0);
public abstract boolean hasArray();
public abstract boolean hasMemoryAddress();
public abstract boolean isDirect();
public abstract boolean isReadOnly();
public abstract boolean isReadable();
public abstract boolean isReadable(int p0);
public abstract boolean isWritable();
public abstract boolean isWritable(int p0);
public abstract boolean readBoolean();
public abstract byte getByte(int p0);
public abstract byte readByte();
public abstract byte[] array();
public abstract char getChar(int p0);
public abstract char readChar();
public abstract double getDouble(int p0);
public abstract double readDouble();
public abstract float getFloat(int p0);
public abstract float readFloat();
public abstract int arrayOffset();
public abstract int bytesBefore(byte p0);
public abstract int bytesBefore(int p0, byte p1);
public abstract int bytesBefore(int p0, int p1, byte p2);
public abstract int capacity();
public abstract int compareTo(ByteBuf p0);
public abstract int ensureWritable(int p0, boolean p1);
public abstract int forEachByte(ByteProcessor p0);
public abstract int forEachByte(int p0, int p1, ByteProcessor p2);
public abstract int forEachByteDesc(ByteProcessor p0);
public abstract int forEachByteDesc(int p0, int p1, ByteProcessor p2);
public abstract int getBytes(int p0, FileChannel p1, long p2, int p3);
public abstract int getBytes(int p0, GatheringByteChannel p1, int p2);
public abstract int getInt(int p0);
public abstract int getIntLE(int p0);
public abstract int getMedium(int p0);
public abstract int getMediumLE(int p0);
public abstract int getUnsignedMedium(int p0);
public abstract int getUnsignedMediumLE(int p0);
public abstract int getUnsignedShort(int p0);
public abstract int getUnsignedShortLE(int p0);
public abstract int hashCode();
public abstract int indexOf(int p0, int p1, byte p2);
public abstract int maxCapacity();
public abstract int maxWritableBytes();
public abstract int nioBufferCount();
public abstract int readBytes(FileChannel p0, long p1, int p2);
public abstract int readBytes(GatheringByteChannel p0, int p1);
public abstract int readInt();
public abstract int readIntLE();
public abstract int readMedium();
public abstract int readMediumLE();
public abstract int readUnsignedMedium();
public abstract int readUnsignedMediumLE();
public abstract int readUnsignedShort();
public abstract int readUnsignedShortLE();
public abstract int readableBytes();
public abstract int readerIndex();
public abstract int setBytes(int p0, FileChannel p1, long p2, int p3);
public abstract int setBytes(int p0, InputStream p1, int p2);
public abstract int setBytes(int p0, ScatteringByteChannel p1, int p2);
public abstract int setCharSequence(int p0, CharSequence p1, Charset p2);
public abstract int writableBytes();
public abstract int writeBytes(FileChannel p0, long p1, int p2);
public abstract int writeBytes(InputStream p0, int p1);
public abstract int writeBytes(ScatteringByteChannel p0, int p1);
public abstract int writeCharSequence(CharSequence p0, Charset p1);
public abstract int writerIndex();
public abstract long getLong(int p0);
public abstract long getLongLE(int p0);
public abstract long getUnsignedInt(int p0);
public abstract long getUnsignedIntLE(int p0);
public abstract long memoryAddress();
public abstract long readLong();
public abstract long readLongLE();
public abstract long readUnsignedInt();
public abstract long readUnsignedIntLE();
public abstract short getShort(int p0);
public abstract short getShortLE(int p0);
public abstract short getUnsignedByte(int p0);
public abstract short readShort();
public abstract short readShortLE();
public abstract short readUnsignedByte();
public boolean isContiguous(){ return false; }
public double getDoubleLE(int p0){ return 0; }
public double readDoubleLE(){ return 0; }
public float getFloatLE(int p0){ return 0; }
public float readFloatLE(){ return 0; }
public int maxFastWritableBytes(){ return 0; }
}

View File

@@ -0,0 +1,31 @@
// Generated automatically from io.netty.buffer.ByteBufAllocator for testing purposes
package io.netty.buffer;
import io.netty.buffer.ByteBuf;
import io.netty.buffer.CompositeByteBuf;
public interface ByteBufAllocator
{
ByteBuf buffer();
ByteBuf buffer(int p0);
ByteBuf buffer(int p0, int p1);
ByteBuf directBuffer();
ByteBuf directBuffer(int p0);
ByteBuf directBuffer(int p0, int p1);
ByteBuf heapBuffer();
ByteBuf heapBuffer(int p0);
ByteBuf heapBuffer(int p0, int p1);
ByteBuf ioBuffer();
ByteBuf ioBuffer(int p0);
ByteBuf ioBuffer(int p0, int p1);
CompositeByteBuf compositeBuffer();
CompositeByteBuf compositeBuffer(int p0);
CompositeByteBuf compositeDirectBuffer();
CompositeByteBuf compositeDirectBuffer(int p0);
CompositeByteBuf compositeHeapBuffer();
CompositeByteBuf compositeHeapBuffer(int p0);
boolean isDirectBufferPooled();
int calculateNewCapacity(int p0, int p1);
static ByteBufAllocator DEFAULT = null;
}

View File

@@ -0,0 +1,10 @@
// Generated automatically from io.netty.buffer.ByteBufConvertible for testing purposes
package io.netty.buffer;
import io.netty.buffer.ByteBuf;
public interface ByteBufConvertible
{
ByteBuf asByteBuf();
}

View File

@@ -0,0 +1,19 @@
// Generated automatically from io.netty.buffer.ByteBufHolder for testing purposes
package io.netty.buffer;
import io.netty.buffer.ByteBuf;
import io.netty.util.ReferenceCounted;
public interface ByteBufHolder extends ReferenceCounted
{
ByteBuf content();
ByteBufHolder copy();
ByteBufHolder duplicate();
ByteBufHolder replace(ByteBuf p0);
ByteBufHolder retain();
ByteBufHolder retain(int p0);
ByteBufHolder retainedDuplicate();
ByteBufHolder touch();
ByteBufHolder touch(Object p0);
}

View File

@@ -0,0 +1,40 @@
// Generated automatically from io.netty.buffer.ByteBufInputStream for testing purposes
package io.netty.buffer;
import io.netty.buffer.ByteBuf;
import java.io.DataInput;
import java.io.InputStream;
public class ByteBufInputStream extends InputStream implements DataInput
{
protected ByteBufInputStream() {}
public ByteBufInputStream(ByteBuf p0){}
public ByteBufInputStream(ByteBuf p0, boolean p1){}
public ByteBufInputStream(ByteBuf p0, int p1){}
public ByteBufInputStream(ByteBuf p0, int p1, boolean p2){}
public String readLine(){ return null; }
public String readUTF(){ return null; }
public boolean markSupported(){ return false; }
public boolean readBoolean(){ return false; }
public byte readByte(){ return 0; }
public char readChar(){ return '0'; }
public double readDouble(){ return 0; }
public float readFloat(){ return 0; }
public int available(){ return 0; }
public int read(){ return 0; }
public int read(byte[] p0, int p1, int p2){ return 0; }
public int readBytes(){ return 0; }
public int readInt(){ return 0; }
public int readUnsignedByte(){ return 0; }
public int readUnsignedShort(){ return 0; }
public int skipBytes(int p0){ return 0; }
public long readLong(){ return 0; }
public long skip(long p0){ return 0; }
public short readShort(){ return 0; }
public void close(){}
public void mark(int p0){}
public void readFully(byte[] p0){}
public void readFully(byte[] p0, int p1, int p2){}
public void reset(){}
}

View File

@@ -0,0 +1,30 @@
// Generated automatically from io.netty.buffer.ByteBufOutputStream for testing purposes
package io.netty.buffer;
import io.netty.buffer.ByteBuf;
import java.io.DataOutput;
import java.io.OutputStream;
public class ByteBufOutputStream extends OutputStream implements DataOutput
{
protected ByteBufOutputStream() {}
public ByteBuf buffer(){ return null; }
public ByteBufOutputStream(ByteBuf p0){}
public int writtenBytes(){ return 0; }
public void close(){}
public void write(byte[] p0){}
public void write(byte[] p0, int p1, int p2){}
public void write(int p0){}
public void writeBoolean(boolean p0){}
public void writeByte(int p0){}
public void writeBytes(String p0){}
public void writeChar(int p0){}
public void writeChars(String p0){}
public void writeDouble(double p0){}
public void writeFloat(float p0){}
public void writeInt(int p0){}
public void writeLong(long p0){}
public void writeShort(int p0){}
public void writeUTF(String p0){}
}

View File

@@ -0,0 +1,64 @@
// Generated automatically from io.netty.buffer.ByteBufUtil for testing purposes
package io.netty.buffer;
import io.netty.buffer.ByteBuf;
import io.netty.buffer.ByteBufAllocator;
import io.netty.util.AsciiString;
import java.nio.CharBuffer;
import java.nio.charset.Charset;
public class ByteBufUtil
{
protected ByteBufUtil() {}
public static ByteBuf encodeString(ByteBufAllocator p0, CharBuffer p1, Charset p2){ return null; }
public static ByteBuf encodeString(ByteBufAllocator p0, CharBuffer p1, Charset p2, int p3){ return null; }
public static ByteBuf ensureAccessible(ByteBuf p0){ return null; }
public static ByteBuf readBytes(ByteBufAllocator p0, ByteBuf p1, int p2){ return null; }
public static ByteBuf setShortBE(ByteBuf p0, int p1, int p2){ return null; }
public static ByteBuf threadLocalDirectBuffer(){ return null; }
public static ByteBuf writeAscii(ByteBufAllocator p0, CharSequence p1){ return null; }
public static ByteBuf writeMediumBE(ByteBuf p0, int p1){ return null; }
public static ByteBuf writeShortBE(ByteBuf p0, int p1){ return null; }
public static ByteBuf writeUtf8(ByteBufAllocator p0, CharSequence p1){ return null; }
public static String hexDump(ByteBuf p0){ return null; }
public static String hexDump(ByteBuf p0, int p1, int p2){ return null; }
public static String hexDump(byte[] p0){ return null; }
public static String hexDump(byte[] p0, int p1, int p2){ return null; }
public static String prettyHexDump(ByteBuf p0){ return null; }
public static String prettyHexDump(ByteBuf p0, int p1, int p2){ return null; }
public static boolean ensureWritableSuccess(int p0){ return false; }
public static boolean equals(ByteBuf p0, ByteBuf p1){ return false; }
public static boolean equals(ByteBuf p0, int p1, ByteBuf p2, int p3, int p4){ return false; }
public static boolean isAccessible(ByteBuf p0){ return false; }
public static boolean isText(ByteBuf p0, Charset p1){ return false; }
public static boolean isText(ByteBuf p0, int p1, int p2, Charset p3){ return false; }
public static byte decodeHexByte(CharSequence p0, int p1){ return 0; }
public static byte[] decodeHexDump(CharSequence p0){ return null; }
public static byte[] decodeHexDump(CharSequence p0, int p1, int p2){ return null; }
public static byte[] getBytes(ByteBuf p0){ return null; }
public static byte[] getBytes(ByteBuf p0, int p1, int p2){ return null; }
public static byte[] getBytes(ByteBuf p0, int p1, int p2, boolean p3){ return null; }
public static int compare(ByteBuf p0, ByteBuf p1){ return 0; }
public static int hashCode(ByteBuf p0){ return 0; }
public static int indexOf(ByteBuf p0, ByteBuf p1){ return 0; }
public static int indexOf(ByteBuf p0, int p1, int p2, byte p3){ return 0; }
public static int reserveAndWriteUtf8(ByteBuf p0, CharSequence p1, int p2){ return 0; }
public static int reserveAndWriteUtf8(ByteBuf p0, CharSequence p1, int p2, int p3, int p4){ return 0; }
public static int swapInt(int p0){ return 0; }
public static int swapMedium(int p0){ return 0; }
public static int utf8Bytes(CharSequence p0){ return 0; }
public static int utf8Bytes(CharSequence p0, int p1, int p2){ return 0; }
public static int utf8MaxBytes(CharSequence p0){ return 0; }
public static int utf8MaxBytes(int p0){ return 0; }
public static int writeAscii(ByteBuf p0, CharSequence p1){ return 0; }
public static int writeUtf8(ByteBuf p0, CharSequence p1){ return 0; }
public static int writeUtf8(ByteBuf p0, CharSequence p1, int p2, int p3){ return 0; }
public static long swapLong(long p0){ return 0; }
public static short swapShort(short p0){ return 0; }
public static void appendPrettyHexDump(StringBuilder p0, ByteBuf p1){}
public static void appendPrettyHexDump(StringBuilder p0, ByteBuf p1, int p2, int p3){}
public static void copy(AsciiString p0, ByteBuf p1){}
public static void copy(AsciiString p0, int p1, ByteBuf p2, int p3){}
public static void copy(AsciiString p0, int p1, ByteBuf p2, int p3, int p4){}
}

View File

@@ -0,0 +1,158 @@
// Generated automatically from io.netty.buffer.CompositeByteBuf for testing purposes
package io.netty.buffer;
import io.netty.buffer.AbstractReferenceCountedByteBuf;
import io.netty.buffer.ByteBuf;
import io.netty.buffer.ByteBufAllocator;
import io.netty.util.ByteProcessor;
import java.io.InputStream;
import java.io.OutputStream;
import java.nio.ByteBuffer;
import java.nio.ByteOrder;
import java.nio.channels.FileChannel;
import java.nio.channels.GatheringByteChannel;
import java.nio.channels.ScatteringByteChannel;
import java.util.Iterator;
import java.util.List;
public class CompositeByteBuf extends AbstractReferenceCountedByteBuf implements Iterable<ByteBuf>
{
protected CompositeByteBuf() {}
protected byte _getByte(int p0){ return 0; }
protected int _getInt(int p0){ return 0; }
protected int _getIntLE(int p0){ return 0; }
protected int _getUnsignedMedium(int p0){ return 0; }
protected int _getUnsignedMediumLE(int p0){ return 0; }
protected int forEachByteAsc0(int p0, int p1, ByteProcessor p2){ return 0; }
protected int forEachByteDesc0(int p0, int p1, ByteProcessor p2){ return 0; }
protected long _getLong(int p0){ return 0; }
protected long _getLongLE(int p0){ return 0; }
protected short _getShort(int p0){ return 0; }
protected short _getShortLE(int p0){ return 0; }
protected void _setByte(int p0, int p1){}
protected void _setInt(int p0, int p1){}
protected void _setIntLE(int p0, int p1){}
protected void _setLong(int p0, long p1){}
protected void _setLongLE(int p0, long p1){}
protected void _setMedium(int p0, int p1){}
protected void _setMediumLE(int p0, int p1){}
protected void _setShort(int p0, int p1){}
protected void _setShortLE(int p0, int p1){}
protected void deallocate(){}
public ByteBuf component(int p0){ return null; }
public ByteBuf componentAtOffset(int p0){ return null; }
public ByteBuf copy(int p0, int p1){ return null; }
public ByteBuf internalComponent(int p0){ return null; }
public ByteBuf internalComponentAtOffset(int p0){ return null; }
public ByteBuf unwrap(){ return null; }
public ByteBufAllocator alloc(){ return null; }
public ByteBuffer internalNioBuffer(int p0, int p1){ return null; }
public ByteBuffer nioBuffer(int p0, int p1){ return null; }
public ByteBuffer[] nioBuffers(){ return null; }
public ByteBuffer[] nioBuffers(int p0, int p1){ return null; }
public ByteOrder order(){ return null; }
public CompositeByteBuf addComponent(ByteBuf p0){ return null; }
public CompositeByteBuf addComponent(boolean p0, ByteBuf p1){ return null; }
public CompositeByteBuf addComponent(boolean p0, int p1, ByteBuf p2){ return null; }
public CompositeByteBuf addComponent(int p0, ByteBuf p1){ return null; }
public CompositeByteBuf addComponents(ByteBuf... p0){ return null; }
public CompositeByteBuf addComponents(Iterable<ByteBuf> p0){ return null; }
public CompositeByteBuf addComponents(boolean p0, ByteBuf... p1){ return null; }
public CompositeByteBuf addComponents(boolean p0, Iterable<ByteBuf> p1){ return null; }
public CompositeByteBuf addComponents(int p0, ByteBuf... p1){ return null; }
public CompositeByteBuf addComponents(int p0, Iterable<ByteBuf> p1){ return null; }
public CompositeByteBuf addFlattenedComponents(boolean p0, ByteBuf p1){ return null; }
public CompositeByteBuf capacity(int p0){ return null; }
public CompositeByteBuf clear(){ return null; }
public CompositeByteBuf consolidate(){ return null; }
public CompositeByteBuf consolidate(int p0, int p1){ return null; }
public CompositeByteBuf discardReadBytes(){ return null; }
public CompositeByteBuf discardReadComponents(){ return null; }
public CompositeByteBuf discardSomeReadBytes(){ return null; }
public CompositeByteBuf ensureWritable(int p0){ return null; }
public CompositeByteBuf getBytes(int p0, ByteBuf p1){ return null; }
public CompositeByteBuf getBytes(int p0, ByteBuf p1, int p2){ return null; }
public CompositeByteBuf getBytes(int p0, ByteBuf p1, int p2, int p3){ return null; }
public CompositeByteBuf getBytes(int p0, ByteBuffer p1){ return null; }
public CompositeByteBuf getBytes(int p0, OutputStream p1, int p2){ return null; }
public CompositeByteBuf getBytes(int p0, byte[] p1){ return null; }
public CompositeByteBuf getBytes(int p0, byte[] p1, int p2, int p3){ return null; }
public CompositeByteBuf markReaderIndex(){ return null; }
public CompositeByteBuf markWriterIndex(){ return null; }
public CompositeByteBuf readBytes(ByteBuf p0){ return null; }
public CompositeByteBuf readBytes(ByteBuf p0, int p1){ return null; }
public CompositeByteBuf readBytes(ByteBuf p0, int p1, int p2){ return null; }
public CompositeByteBuf readBytes(ByteBuffer p0){ return null; }
public CompositeByteBuf readBytes(OutputStream p0, int p1){ return null; }
public CompositeByteBuf readBytes(byte[] p0){ return null; }
public CompositeByteBuf readBytes(byte[] p0, int p1, int p2){ return null; }
public CompositeByteBuf readerIndex(int p0){ return null; }
public CompositeByteBuf removeComponent(int p0){ return null; }
public CompositeByteBuf removeComponents(int p0, int p1){ return null; }
public CompositeByteBuf resetReaderIndex(){ return null; }
public CompositeByteBuf resetWriterIndex(){ return null; }
public CompositeByteBuf retain(){ return null; }
public CompositeByteBuf retain(int p0){ return null; }
public CompositeByteBuf setBoolean(int p0, boolean p1){ return null; }
public CompositeByteBuf setByte(int p0, int p1){ return null; }
public CompositeByteBuf setBytes(int p0, ByteBuf p1){ return null; }
public CompositeByteBuf setBytes(int p0, ByteBuf p1, int p2){ return null; }
public CompositeByteBuf setBytes(int p0, ByteBuf p1, int p2, int p3){ return null; }
public CompositeByteBuf setBytes(int p0, ByteBuffer p1){ return null; }
public CompositeByteBuf setBytes(int p0, byte[] p1){ return null; }
public CompositeByteBuf setBytes(int p0, byte[] p1, int p2, int p3){ return null; }
public CompositeByteBuf setChar(int p0, int p1){ return null; }
public CompositeByteBuf setDouble(int p0, double p1){ return null; }
public CompositeByteBuf setFloat(int p0, float p1){ return null; }
public CompositeByteBuf setIndex(int p0, int p1){ return null; }
public CompositeByteBuf setInt(int p0, int p1){ return null; }
public CompositeByteBuf setLong(int p0, long p1){ return null; }
public CompositeByteBuf setMedium(int p0, int p1){ return null; }
public CompositeByteBuf setShort(int p0, int p1){ return null; }
public CompositeByteBuf setZero(int p0, int p1){ return null; }
public CompositeByteBuf skipBytes(int p0){ return null; }
public CompositeByteBuf touch(){ return null; }
public CompositeByteBuf touch(Object p0){ return null; }
public CompositeByteBuf writeBoolean(boolean p0){ return null; }
public CompositeByteBuf writeByte(int p0){ return null; }
public CompositeByteBuf writeBytes(ByteBuf p0){ return null; }
public CompositeByteBuf writeBytes(ByteBuf p0, int p1){ return null; }
public CompositeByteBuf writeBytes(ByteBuf p0, int p1, int p2){ return null; }
public CompositeByteBuf writeBytes(ByteBuffer p0){ return null; }
public CompositeByteBuf writeBytes(byte[] p0){ return null; }
public CompositeByteBuf writeBytes(byte[] p0, int p1, int p2){ return null; }
public CompositeByteBuf writeChar(int p0){ return null; }
public CompositeByteBuf writeDouble(double p0){ return null; }
public CompositeByteBuf writeFloat(float p0){ return null; }
public CompositeByteBuf writeInt(int p0){ return null; }
public CompositeByteBuf writeLong(long p0){ return null; }
public CompositeByteBuf writeMedium(int p0){ return null; }
public CompositeByteBuf writeShort(int p0){ return null; }
public CompositeByteBuf writeZero(int p0){ return null; }
public CompositeByteBuf writerIndex(int p0){ return null; }
public CompositeByteBuf(ByteBufAllocator p0, boolean p1, int p2){}
public CompositeByteBuf(ByteBufAllocator p0, boolean p1, int p2, ByteBuf... p3){}
public CompositeByteBuf(ByteBufAllocator p0, boolean p1, int p2, Iterable<ByteBuf> p3){}
public Iterator<ByteBuf> iterator(){ return null; }
public List<ByteBuf> decompose(int p0, int p1){ return null; }
public String toString(){ return null; }
public boolean hasArray(){ return false; }
public boolean hasMemoryAddress(){ return false; }
public boolean isDirect(){ return false; }
public byte getByte(int p0){ return 0; }
public byte[] array(){ return null; }
public int arrayOffset(){ return 0; }
public int capacity(){ return 0; }
public int getBytes(int p0, FileChannel p1, long p2, int p3){ return 0; }
public int getBytes(int p0, GatheringByteChannel p1, int p2){ return 0; }
public int maxNumComponents(){ return 0; }
public int nioBufferCount(){ return 0; }
public int numComponents(){ return 0; }
public int setBytes(int p0, FileChannel p1, long p2, int p3){ return 0; }
public int setBytes(int p0, InputStream p1, int p2){ return 0; }
public int setBytes(int p0, ScatteringByteChannel p1, int p2){ return 0; }
public int toByteIndex(int p0){ return 0; }
public int toComponentIndex(int p0){ return 0; }
public long memoryAddress(){ return 0; }
}

View File

@@ -0,0 +1,28 @@
// Generated automatically from io.netty.buffer.DefaultByteBufHolder for testing purposes
package io.netty.buffer;
import io.netty.buffer.ByteBuf;
import io.netty.buffer.ByteBufHolder;
public class DefaultByteBufHolder implements ByteBufHolder
{
protected DefaultByteBufHolder() {}
protected final String contentToString(){ return null; }
public ByteBuf content(){ return null; }
public ByteBufHolder copy(){ return null; }
public ByteBufHolder duplicate(){ return null; }
public ByteBufHolder replace(ByteBuf p0){ return null; }
public ByteBufHolder retain(){ return null; }
public ByteBufHolder retain(int p0){ return null; }
public ByteBufHolder retainedDuplicate(){ return null; }
public ByteBufHolder touch(){ return null; }
public ByteBufHolder touch(Object p0){ return null; }
public DefaultByteBufHolder(ByteBuf p0){}
public String toString(){ return null; }
public boolean equals(Object p0){ return false; }
public boolean release(){ return false; }
public boolean release(int p0){ return false; }
public int hashCode(){ return 0; }
public int refCnt(){ return 0; }
}

View File

@@ -0,0 +1,206 @@
// Generated automatically from io.netty.buffer.SwappedByteBuf for testing purposes
package io.netty.buffer;
import io.netty.buffer.ByteBuf;
import io.netty.buffer.ByteBufAllocator;
import io.netty.util.ByteProcessor;
import java.io.InputStream;
import java.io.OutputStream;
import java.nio.ByteBuffer;
import java.nio.ByteOrder;
import java.nio.channels.FileChannel;
import java.nio.channels.GatheringByteChannel;
import java.nio.channels.ScatteringByteChannel;
import java.nio.charset.Charset;
public class SwappedByteBuf extends ByteBuf
{
protected SwappedByteBuf() {}
public ByteBuf asReadOnly(){ return null; }
public ByteBuf capacity(int p0){ return null; }
public ByteBuf clear(){ return null; }
public ByteBuf copy(){ return null; }
public ByteBuf copy(int p0, int p1){ return null; }
public ByteBuf discardReadBytes(){ return null; }
public ByteBuf discardSomeReadBytes(){ return null; }
public ByteBuf duplicate(){ return null; }
public ByteBuf ensureWritable(int p0){ return null; }
public ByteBuf getBytes(int p0, ByteBuf p1){ return null; }
public ByteBuf getBytes(int p0, ByteBuf p1, int p2){ return null; }
public ByteBuf getBytes(int p0, ByteBuf p1, int p2, int p3){ return null; }
public ByteBuf getBytes(int p0, ByteBuffer p1){ return null; }
public ByteBuf getBytes(int p0, OutputStream p1, int p2){ return null; }
public ByteBuf getBytes(int p0, byte[] p1){ return null; }
public ByteBuf getBytes(int p0, byte[] p1, int p2, int p3){ return null; }
public ByteBuf markReaderIndex(){ return null; }
public ByteBuf markWriterIndex(){ return null; }
public ByteBuf order(ByteOrder p0){ return null; }
public ByteBuf readBytes(ByteBuf p0){ return null; }
public ByteBuf readBytes(ByteBuf p0, int p1){ return null; }
public ByteBuf readBytes(ByteBuf p0, int p1, int p2){ return null; }
public ByteBuf readBytes(ByteBuffer p0){ return null; }
public ByteBuf readBytes(OutputStream p0, int p1){ return null; }
public ByteBuf readBytes(byte[] p0){ return null; }
public ByteBuf readBytes(byte[] p0, int p1, int p2){ return null; }
public ByteBuf readBytes(int p0){ return null; }
public ByteBuf readRetainedSlice(int p0){ return null; }
public ByteBuf readSlice(int p0){ return null; }
public ByteBuf readerIndex(int p0){ return null; }
public ByteBuf resetReaderIndex(){ return null; }
public ByteBuf resetWriterIndex(){ return null; }
public ByteBuf retain(){ return null; }
public ByteBuf retain(int p0){ return null; }
public ByteBuf retainedDuplicate(){ return null; }
public ByteBuf retainedSlice(){ return null; }
public ByteBuf retainedSlice(int p0, int p1){ return null; }
public ByteBuf setBoolean(int p0, boolean p1){ return null; }
public ByteBuf setByte(int p0, int p1){ return null; }
public ByteBuf setBytes(int p0, ByteBuf p1){ return null; }
public ByteBuf setBytes(int p0, ByteBuf p1, int p2){ return null; }
public ByteBuf setBytes(int p0, ByteBuf p1, int p2, int p3){ return null; }
public ByteBuf setBytes(int p0, ByteBuffer p1){ return null; }
public ByteBuf setBytes(int p0, byte[] p1){ return null; }
public ByteBuf setBytes(int p0, byte[] p1, int p2, int p3){ return null; }
public ByteBuf setChar(int p0, int p1){ return null; }
public ByteBuf setDouble(int p0, double p1){ return null; }
public ByteBuf setFloat(int p0, float p1){ return null; }
public ByteBuf setIndex(int p0, int p1){ return null; }
public ByteBuf setInt(int p0, int p1){ return null; }
public ByteBuf setIntLE(int p0, int p1){ return null; }
public ByteBuf setLong(int p0, long p1){ return null; }
public ByteBuf setLongLE(int p0, long p1){ return null; }
public ByteBuf setMedium(int p0, int p1){ return null; }
public ByteBuf setMediumLE(int p0, int p1){ return null; }
public ByteBuf setShort(int p0, int p1){ return null; }
public ByteBuf setShortLE(int p0, int p1){ return null; }
public ByteBuf setZero(int p0, int p1){ return null; }
public ByteBuf skipBytes(int p0){ return null; }
public ByteBuf slice(){ return null; }
public ByteBuf slice(int p0, int p1){ return null; }
public ByteBuf touch(){ return null; }
public ByteBuf touch(Object p0){ return null; }
public ByteBuf unwrap(){ return null; }
public ByteBuf writeBoolean(boolean p0){ return null; }
public ByteBuf writeByte(int p0){ return null; }
public ByteBuf writeBytes(ByteBuf p0){ return null; }
public ByteBuf writeBytes(ByteBuf p0, int p1){ return null; }
public ByteBuf writeBytes(ByteBuf p0, int p1, int p2){ return null; }
public ByteBuf writeBytes(ByteBuffer p0){ return null; }
public ByteBuf writeBytes(byte[] p0){ return null; }
public ByteBuf writeBytes(byte[] p0, int p1, int p2){ return null; }
public ByteBuf writeChar(int p0){ return null; }
public ByteBuf writeDouble(double p0){ return null; }
public ByteBuf writeFloat(float p0){ return null; }
public ByteBuf writeInt(int p0){ return null; }
public ByteBuf writeIntLE(int p0){ return null; }
public ByteBuf writeLong(long p0){ return null; }
public ByteBuf writeLongLE(long p0){ return null; }
public ByteBuf writeMedium(int p0){ return null; }
public ByteBuf writeMediumLE(int p0){ return null; }
public ByteBuf writeShort(int p0){ return null; }
public ByteBuf writeShortLE(int p0){ return null; }
public ByteBuf writeZero(int p0){ return null; }
public ByteBuf writerIndex(int p0){ return null; }
public ByteBufAllocator alloc(){ return null; }
public ByteBuffer internalNioBuffer(int p0, int p1){ return null; }
public ByteBuffer nioBuffer(){ return null; }
public ByteBuffer nioBuffer(int p0, int p1){ return null; }
public ByteBuffer[] nioBuffers(){ return null; }
public ByteBuffer[] nioBuffers(int p0, int p1){ return null; }
public ByteOrder order(){ return null; }
public CharSequence getCharSequence(int p0, int p1, Charset p2){ return null; }
public CharSequence readCharSequence(int p0, Charset p1){ return null; }
public String toString(){ return null; }
public String toString(Charset p0){ return null; }
public String toString(int p0, int p1, Charset p2){ return null; }
public SwappedByteBuf(ByteBuf p0){}
public boolean equals(Object p0){ return false; }
public boolean getBoolean(int p0){ return false; }
public boolean hasArray(){ return false; }
public boolean hasMemoryAddress(){ return false; }
public boolean isContiguous(){ return false; }
public boolean isDirect(){ return false; }
public boolean isReadOnly(){ return false; }
public boolean isReadable(){ return false; }
public boolean isReadable(int p0){ return false; }
public boolean isWritable(){ return false; }
public boolean isWritable(int p0){ return false; }
public boolean readBoolean(){ return false; }
public boolean release(){ return false; }
public boolean release(int p0){ return false; }
public byte getByte(int p0){ return 0; }
public byte readByte(){ return 0; }
public byte[] array(){ return null; }
public char getChar(int p0){ return '0'; }
public char readChar(){ return '0'; }
public double getDouble(int p0){ return 0; }
public double readDouble(){ return 0; }
public float getFloat(int p0){ return 0; }
public float readFloat(){ return 0; }
public int arrayOffset(){ return 0; }
public int bytesBefore(byte p0){ return 0; }
public int bytesBefore(int p0, byte p1){ return 0; }
public int bytesBefore(int p0, int p1, byte p2){ return 0; }
public int capacity(){ return 0; }
public int compareTo(ByteBuf p0){ return 0; }
public int ensureWritable(int p0, boolean p1){ return 0; }
public int forEachByte(ByteProcessor p0){ return 0; }
public int forEachByte(int p0, int p1, ByteProcessor p2){ return 0; }
public int forEachByteDesc(ByteProcessor p0){ return 0; }
public int forEachByteDesc(int p0, int p1, ByteProcessor p2){ return 0; }
public int getBytes(int p0, FileChannel p1, long p2, int p3){ return 0; }
public int getBytes(int p0, GatheringByteChannel p1, int p2){ return 0; }
public int getInt(int p0){ return 0; }
public int getIntLE(int p0){ return 0; }
public int getMedium(int p0){ return 0; }
public int getMediumLE(int p0){ return 0; }
public int getUnsignedMedium(int p0){ return 0; }
public int getUnsignedMediumLE(int p0){ return 0; }
public int getUnsignedShort(int p0){ return 0; }
public int getUnsignedShortLE(int p0){ return 0; }
public int hashCode(){ return 0; }
public int indexOf(int p0, int p1, byte p2){ return 0; }
public int maxCapacity(){ return 0; }
public int maxFastWritableBytes(){ return 0; }
public int maxWritableBytes(){ return 0; }
public int nioBufferCount(){ return 0; }
public int readBytes(FileChannel p0, long p1, int p2){ return 0; }
public int readBytes(GatheringByteChannel p0, int p1){ return 0; }
public int readInt(){ return 0; }
public int readIntLE(){ return 0; }
public int readMedium(){ return 0; }
public int readMediumLE(){ return 0; }
public int readUnsignedMedium(){ return 0; }
public int readUnsignedMediumLE(){ return 0; }
public int readUnsignedShort(){ return 0; }
public int readUnsignedShortLE(){ return 0; }
public int readableBytes(){ return 0; }
public int readerIndex(){ return 0; }
public int refCnt(){ return 0; }
public int setBytes(int p0, FileChannel p1, long p2, int p3){ return 0; }
public int setBytes(int p0, InputStream p1, int p2){ return 0; }
public int setBytes(int p0, ScatteringByteChannel p1, int p2){ return 0; }
public int setCharSequence(int p0, CharSequence p1, Charset p2){ return 0; }
public int writableBytes(){ return 0; }
public int writeBytes(FileChannel p0, long p1, int p2){ return 0; }
public int writeBytes(InputStream p0, int p1){ return 0; }
public int writeBytes(ScatteringByteChannel p0, int p1){ return 0; }
public int writeCharSequence(CharSequence p0, Charset p1){ return 0; }
public int writerIndex(){ return 0; }
public long getLong(int p0){ return 0; }
public long getLongLE(int p0){ return 0; }
public long getUnsignedInt(int p0){ return 0; }
public long getUnsignedIntLE(int p0){ return 0; }
public long memoryAddress(){ return 0; }
public long readLong(){ return 0; }
public long readLongLE(){ return 0; }
public long readUnsignedInt(){ return 0; }
public long readUnsignedIntLE(){ return 0; }
public short getShort(int p0){ return 0; }
public short getShortLE(int p0){ return 0; }
public short getUnsignedByte(int p0){ return 0; }
public short readShort(){ return 0; }
public short readShortLE(){ return 0; }
public short readUnsignedByte(){ return 0; }
}

View File

@@ -0,0 +1,66 @@
// Generated automatically from io.netty.buffer.Unpooled for testing purposes
package io.netty.buffer;
import io.netty.buffer.ByteBuf;
import io.netty.buffer.CompositeByteBuf;
import java.nio.ByteBuffer;
import java.nio.ByteOrder;
import java.nio.charset.Charset;
public class Unpooled
{
protected Unpooled() {}
public static ByteBuf EMPTY_BUFFER = null;
public static ByteBuf buffer(){ return null; }
public static ByteBuf buffer(int p0){ return null; }
public static ByteBuf buffer(int p0, int p1){ return null; }
public static ByteBuf copiedBuffer(ByteBuf p0){ return null; }
public static ByteBuf copiedBuffer(ByteBuf... p0){ return null; }
public static ByteBuf copiedBuffer(ByteBuffer p0){ return null; }
public static ByteBuf copiedBuffer(ByteBuffer... p0){ return null; }
public static ByteBuf copiedBuffer(CharSequence p0, Charset p1){ return null; }
public static ByteBuf copiedBuffer(CharSequence p0, int p1, int p2, Charset p3){ return null; }
public static ByteBuf copiedBuffer(byte[] p0){ return null; }
public static ByteBuf copiedBuffer(byte[] p0, int p1, int p2){ return null; }
public static ByteBuf copiedBuffer(byte[]... p0){ return null; }
public static ByteBuf copiedBuffer(char[] p0, Charset p1){ return null; }
public static ByteBuf copiedBuffer(char[] p0, int p1, int p2, Charset p3){ return null; }
public static ByteBuf copyBoolean(boolean p0){ return null; }
public static ByteBuf copyBoolean(boolean... p0){ return null; }
public static ByteBuf copyDouble(double p0){ return null; }
public static ByteBuf copyDouble(double... p0){ return null; }
public static ByteBuf copyFloat(float p0){ return null; }
public static ByteBuf copyFloat(float... p0){ return null; }
public static ByteBuf copyInt(int p0){ return null; }
public static ByteBuf copyInt(int... p0){ return null; }
public static ByteBuf copyLong(long p0){ return null; }
public static ByteBuf copyLong(long... p0){ return null; }
public static ByteBuf copyMedium(int p0){ return null; }
public static ByteBuf copyMedium(int... p0){ return null; }
public static ByteBuf copyShort(int p0){ return null; }
public static ByteBuf copyShort(int... p0){ return null; }
public static ByteBuf copyShort(short... p0){ return null; }
public static ByteBuf directBuffer(){ return null; }
public static ByteBuf directBuffer(int p0){ return null; }
public static ByteBuf directBuffer(int p0, int p1){ return null; }
public static ByteBuf unmodifiableBuffer(ByteBuf p0){ return null; }
public static ByteBuf unmodifiableBuffer(ByteBuf... p0){ return null; }
public static ByteBuf unreleasableBuffer(ByteBuf p0){ return null; }
public static ByteBuf wrappedBuffer(ByteBuf p0){ return null; }
public static ByteBuf wrappedBuffer(ByteBuf... p0){ return null; }
public static ByteBuf wrappedBuffer(ByteBuffer p0){ return null; }
public static ByteBuf wrappedBuffer(ByteBuffer... p0){ return null; }
public static ByteBuf wrappedBuffer(byte[] p0){ return null; }
public static ByteBuf wrappedBuffer(byte[] p0, int p1, int p2){ return null; }
public static ByteBuf wrappedBuffer(byte[]... p0){ return null; }
public static ByteBuf wrappedBuffer(int p0, ByteBuf... p1){ return null; }
public static ByteBuf wrappedBuffer(int p0, ByteBuffer... p1){ return null; }
public static ByteBuf wrappedBuffer(int p0, byte[]... p1){ return null; }
public static ByteBuf wrappedBuffer(long p0, int p1, boolean p2){ return null; }
public static ByteBuf wrappedUnmodifiableBuffer(ByteBuf... p0){ return null; }
public static ByteOrder BIG_ENDIAN = null;
public static ByteOrder LITTLE_ENDIAN = null;
public static CompositeByteBuf compositeBuffer(){ return null; }
public static CompositeByteBuf compositeBuffer(int p0){ return null; }
}

View File

@@ -0,0 +1,58 @@
// Generated automatically from io.netty.channel.Channel for testing purposes
package io.netty.channel;
import io.netty.buffer.ByteBufAllocator;
import io.netty.channel.ChannelConfig;
import io.netty.channel.ChannelFuture;
import io.netty.channel.ChannelId;
import io.netty.channel.ChannelMetadata;
import io.netty.channel.ChannelOutboundBuffer;
import io.netty.channel.ChannelOutboundInvoker;
import io.netty.channel.ChannelPipeline;
import io.netty.channel.ChannelPromise;
import io.netty.channel.EventLoop;
import io.netty.channel.RecvByteBufAllocator;
import io.netty.util.AttributeMap;
import java.net.SocketAddress;
public interface Channel extends AttributeMap, ChannelOutboundInvoker, Comparable<Channel>
{
ByteBufAllocator alloc();
Channel flush();
Channel parent();
Channel read();
Channel.Unsafe unsafe();
ChannelConfig config();
ChannelFuture closeFuture();
ChannelId id();
ChannelMetadata metadata();
ChannelPipeline pipeline();
EventLoop eventLoop();
SocketAddress localAddress();
SocketAddress remoteAddress();
boolean isActive();
boolean isOpen();
boolean isRegistered();
boolean isWritable();
long bytesBeforeUnwritable();
long bytesBeforeWritable();
static public interface Unsafe
{
ChannelOutboundBuffer outboundBuffer();
ChannelPromise voidPromise();
RecvByteBufAllocator.Handle recvBufAllocHandle();
SocketAddress localAddress();
SocketAddress remoteAddress();
void beginRead();
void bind(SocketAddress p0, ChannelPromise p1);
void close(ChannelPromise p0);
void closeForcibly();
void connect(SocketAddress p0, SocketAddress p1, ChannelPromise p2);
void deregister(ChannelPromise p0);
void disconnect(ChannelPromise p0);
void flush();
void register(EventLoop p0, ChannelPromise p1);
void write(Object p0, ChannelPromise p1);
}
}

View File

@@ -0,0 +1,40 @@
// Generated automatically from io.netty.channel.ChannelConfig for testing purposes
package io.netty.channel;
import io.netty.buffer.ByteBufAllocator;
import io.netty.channel.ChannelOption;
import io.netty.channel.MessageSizeEstimator;
import io.netty.channel.RecvByteBufAllocator;
import io.netty.channel.WriteBufferWaterMark;
import java.util.Map;
public interface ChannelConfig
{
<T extends RecvByteBufAllocator> T getRecvByteBufAllocator();
<T> T getOption(io.netty.channel.ChannelOption<T> p0);
<T> boolean setOption(io.netty.channel.ChannelOption<T> p0, T p1);
ByteBufAllocator getAllocator();
ChannelConfig setAllocator(ByteBufAllocator p0);
ChannelConfig setAutoClose(boolean p0);
ChannelConfig setAutoRead(boolean p0);
ChannelConfig setConnectTimeoutMillis(int p0);
ChannelConfig setMaxMessagesPerRead(int p0);
ChannelConfig setMessageSizeEstimator(MessageSizeEstimator p0);
ChannelConfig setRecvByteBufAllocator(RecvByteBufAllocator p0);
ChannelConfig setWriteBufferHighWaterMark(int p0);
ChannelConfig setWriteBufferLowWaterMark(int p0);
ChannelConfig setWriteBufferWaterMark(WriteBufferWaterMark p0);
ChannelConfig setWriteSpinCount(int p0);
Map<ChannelOption<? extends Object>, Object> getOptions();
MessageSizeEstimator getMessageSizeEstimator();
WriteBufferWaterMark getWriteBufferWaterMark();
boolean isAutoClose();
boolean isAutoRead();
boolean setOptions(Map<ChannelOption<? extends Object>, ? extends Object> p0);
int getConnectTimeoutMillis();
int getMaxMessagesPerRead();
int getWriteBufferHighWaterMark();
int getWriteBufferLowWaterMark();
int getWriteSpinCount();
}

View File

@@ -0,0 +1,20 @@
// Generated automatically from io.netty.channel.ChannelFuture for testing purposes
package io.netty.channel;
import io.netty.channel.Channel;
import io.netty.util.concurrent.GenericFutureListener;
public interface ChannelFuture extends io.netty.util.concurrent.Future<Void>
{
Channel channel();
ChannelFuture addListener(GenericFutureListener<? extends io.netty.util.concurrent.Future<? super Void>> p0);
ChannelFuture addListeners(GenericFutureListener<? extends io.netty.util.concurrent.Future<? super Void>>... p0);
ChannelFuture await();
ChannelFuture awaitUninterruptibly();
ChannelFuture removeListener(GenericFutureListener<? extends io.netty.util.concurrent.Future<? super Void>> p0);
ChannelFuture removeListeners(GenericFutureListener<? extends io.netty.util.concurrent.Future<? super Void>>... p0);
ChannelFuture sync();
ChannelFuture syncUninterruptibly();
boolean isVoid();
}

View File

@@ -0,0 +1,12 @@
// Generated automatically from io.netty.channel.ChannelHandler for testing purposes
package io.netty.channel;
import io.netty.channel.ChannelHandlerContext;
public interface ChannelHandler
{
void exceptionCaught(ChannelHandlerContext p0, Throwable p1);
void handlerAdded(ChannelHandlerContext p0);
void handlerRemoved(ChannelHandlerContext p0);
}

View File

@@ -0,0 +1,16 @@
// Generated automatically from io.netty.channel.ChannelHandlerAdapter for testing purposes
package io.netty.channel;
import io.netty.channel.ChannelHandler;
import io.netty.channel.ChannelHandlerContext;
abstract public class ChannelHandlerAdapter implements ChannelHandler
{
protected void ensureNotSharable(){}
public ChannelHandlerAdapter(){}
public boolean isSharable(){ return false; }
public void exceptionCaught(ChannelHandlerContext p0, Throwable p1){}
public void handlerAdded(ChannelHandlerContext p0){}
public void handlerRemoved(ChannelHandlerContext p0){}
}

View File

@@ -0,0 +1,38 @@
// Generated automatically from io.netty.channel.ChannelHandlerContext for testing purposes
package io.netty.channel;
import io.netty.buffer.ByteBufAllocator;
import io.netty.channel.Channel;
import io.netty.channel.ChannelHandler;
import io.netty.channel.ChannelInboundInvoker;
import io.netty.channel.ChannelOutboundInvoker;
import io.netty.channel.ChannelPipeline;
import io.netty.util.Attribute;
import io.netty.util.AttributeKey;
import io.netty.util.AttributeMap;
import io.netty.util.concurrent.EventExecutor;
public interface ChannelHandlerContext extends AttributeMap, ChannelInboundInvoker, ChannelOutboundInvoker
{
<T> boolean hasAttr(io.netty.util.AttributeKey<T> p0);
<T> io.netty.util.Attribute<T> attr(io.netty.util.AttributeKey<T> p0);
ByteBufAllocator alloc();
Channel channel();
ChannelHandler handler();
ChannelHandlerContext fireChannelActive();
ChannelHandlerContext fireChannelInactive();
ChannelHandlerContext fireChannelRead(Object p0);
ChannelHandlerContext fireChannelReadComplete();
ChannelHandlerContext fireChannelRegistered();
ChannelHandlerContext fireChannelUnregistered();
ChannelHandlerContext fireChannelWritabilityChanged();
ChannelHandlerContext fireExceptionCaught(Throwable p0);
ChannelHandlerContext fireUserEventTriggered(Object p0);
ChannelHandlerContext flush();
ChannelHandlerContext read();
ChannelPipeline pipeline();
EventExecutor executor();
String name();
boolean isRemoved();
}

View File

@@ -0,0 +1,11 @@
// Generated automatically from io.netty.channel.ChannelId for testing purposes
package io.netty.channel;
import java.io.Serializable;
public interface ChannelId extends Comparable<ChannelId>, Serializable
{
String asLongText();
String asShortText();
}

View File

@@ -0,0 +1,19 @@
// Generated automatically from io.netty.channel.ChannelInboundHandler for testing purposes
package io.netty.channel;
import io.netty.channel.ChannelHandler;
import io.netty.channel.ChannelHandlerContext;
public interface ChannelInboundHandler extends ChannelHandler
{
void channelActive(ChannelHandlerContext p0);
void channelInactive(ChannelHandlerContext p0);
void channelRead(ChannelHandlerContext p0, Object p1);
void channelReadComplete(ChannelHandlerContext p0);
void channelRegistered(ChannelHandlerContext p0);
void channelUnregistered(ChannelHandlerContext p0);
void channelWritabilityChanged(ChannelHandlerContext p0);
void exceptionCaught(ChannelHandlerContext p0, Throwable p1);
void userEventTriggered(ChannelHandlerContext p0, Object p1);
}

View File

@@ -0,0 +1,21 @@
// Generated automatically from io.netty.channel.ChannelInboundHandlerAdapter for testing purposes
package io.netty.channel;
import io.netty.channel.ChannelHandlerAdapter;
import io.netty.channel.ChannelHandlerContext;
import io.netty.channel.ChannelInboundHandler;
public class ChannelInboundHandlerAdapter extends ChannelHandlerAdapter implements ChannelInboundHandler
{
public ChannelInboundHandlerAdapter(){}
public void channelActive(ChannelHandlerContext p0){}
public void channelInactive(ChannelHandlerContext p0){}
public void channelRead(ChannelHandlerContext p0, Object p1){}
public void channelReadComplete(ChannelHandlerContext p0){}
public void channelRegistered(ChannelHandlerContext p0){}
public void channelUnregistered(ChannelHandlerContext p0){}
public void channelWritabilityChanged(ChannelHandlerContext p0){}
public void exceptionCaught(ChannelHandlerContext p0, Throwable p1){}
public void userEventTriggered(ChannelHandlerContext p0, Object p1){}
}

View File

@@ -0,0 +1,17 @@
// Generated automatically from io.netty.channel.ChannelInboundInvoker for testing purposes
package io.netty.channel;
public interface ChannelInboundInvoker
{
ChannelInboundInvoker fireChannelActive();
ChannelInboundInvoker fireChannelInactive();
ChannelInboundInvoker fireChannelRead(Object p0);
ChannelInboundInvoker fireChannelReadComplete();
ChannelInboundInvoker fireChannelRegistered();
ChannelInboundInvoker fireChannelUnregistered();
ChannelInboundInvoker fireChannelWritabilityChanged();
ChannelInboundInvoker fireExceptionCaught(Throwable p0);
ChannelInboundInvoker fireUserEventTriggered(Object p0);
}

View File

@@ -0,0 +1,13 @@
// Generated automatically from io.netty.channel.ChannelMetadata for testing purposes
package io.netty.channel;
public class ChannelMetadata
{
protected ChannelMetadata() {}
public ChannelMetadata(boolean p0){}
public ChannelMetadata(boolean p0, int p1){}
public boolean hasDisconnect(){ return false; }
public int defaultMaxMessagesPerRead(){ return 0; }
}

View File

@@ -0,0 +1,53 @@
// Generated automatically from io.netty.channel.ChannelOption for testing purposes
package io.netty.channel;
import io.netty.buffer.ByteBufAllocator;
import io.netty.channel.MessageSizeEstimator;
import io.netty.channel.RecvByteBufAllocator;
import io.netty.channel.WriteBufferWaterMark;
import io.netty.util.AbstractConstant;
import java.net.InetAddress;
import java.net.NetworkInterface;
public class ChannelOption<T> extends AbstractConstant<ChannelOption<T>>
{
protected ChannelOption() {}
protected ChannelOption(String p0){}
public static <T> io.netty.channel.ChannelOption<T> newInstance(String p0){ return null; }
public static <T> io.netty.channel.ChannelOption<T> valueOf(Class<? extends Object> p0, String p1){ return null; }
public static <T> io.netty.channel.ChannelOption<T> valueOf(String p0){ return null; }
public static ChannelOption<Boolean> ALLOW_HALF_CLOSURE = null;
public static ChannelOption<Boolean> AUTO_CLOSE = null;
public static ChannelOption<Boolean> AUTO_READ = null;
public static ChannelOption<Boolean> DATAGRAM_CHANNEL_ACTIVE_ON_REGISTRATION = null;
public static ChannelOption<Boolean> IP_MULTICAST_LOOP_DISABLED = null;
public static ChannelOption<Boolean> SINGLE_EVENTEXECUTOR_PER_GROUP = null;
public static ChannelOption<Boolean> SO_BROADCAST = null;
public static ChannelOption<Boolean> SO_KEEPALIVE = null;
public static ChannelOption<Boolean> SO_REUSEADDR = null;
public static ChannelOption<Boolean> TCP_FASTOPEN_CONNECT = null;
public static ChannelOption<Boolean> TCP_NODELAY = null;
public static ChannelOption<ByteBufAllocator> ALLOCATOR = null;
public static ChannelOption<InetAddress> IP_MULTICAST_ADDR = null;
public static ChannelOption<Integer> CONNECT_TIMEOUT_MILLIS = null;
public static ChannelOption<Integer> IP_MULTICAST_TTL = null;
public static ChannelOption<Integer> IP_TOS = null;
public static ChannelOption<Integer> MAX_MESSAGES_PER_READ = null;
public static ChannelOption<Integer> MAX_MESSAGES_PER_WRITE = null;
public static ChannelOption<Integer> SO_BACKLOG = null;
public static ChannelOption<Integer> SO_LINGER = null;
public static ChannelOption<Integer> SO_RCVBUF = null;
public static ChannelOption<Integer> SO_SNDBUF = null;
public static ChannelOption<Integer> SO_TIMEOUT = null;
public static ChannelOption<Integer> TCP_FASTOPEN = null;
public static ChannelOption<Integer> WRITE_BUFFER_HIGH_WATER_MARK = null;
public static ChannelOption<Integer> WRITE_BUFFER_LOW_WATER_MARK = null;
public static ChannelOption<Integer> WRITE_SPIN_COUNT = null;
public static ChannelOption<MessageSizeEstimator> MESSAGE_SIZE_ESTIMATOR = null;
public static ChannelOption<NetworkInterface> IP_MULTICAST_IF = null;
public static ChannelOption<RecvByteBufAllocator> RCVBUF_ALLOCATOR = null;
public static ChannelOption<WriteBufferWaterMark> WRITE_BUFFER_WATER_MARK = null;
public static boolean exists(String p0){ return false; }
public void validate(T p0){}
}

View File

@@ -0,0 +1,37 @@
// Generated automatically from io.netty.channel.ChannelOutboundBuffer for testing purposes
package io.netty.channel;
import io.netty.channel.ChannelPromise;
import java.nio.ByteBuffer;
public class ChannelOutboundBuffer
{
protected ChannelOutboundBuffer() {}
public ByteBuffer[] nioBuffers(){ return null; }
public ByteBuffer[] nioBuffers(int p0, long p1){ return null; }
public Object current(){ return null; }
public boolean getUserDefinedWritability(int p0){ return false; }
public boolean isEmpty(){ return false; }
public boolean isWritable(){ return false; }
public boolean remove(){ return false; }
public boolean remove(Throwable p0){ return false; }
public int nioBufferCount(){ return 0; }
public int size(){ return 0; }
public long bytesBeforeUnwritable(){ return 0; }
public long bytesBeforeWritable(){ return 0; }
public long currentProgress(){ return 0; }
public long nioBufferSize(){ return 0; }
public long totalPendingWriteBytes(){ return 0; }
public void addFlush(){}
public void addMessage(Object p0, int p1, ChannelPromise p2){}
public void forEachFlushedMessage(ChannelOutboundBuffer.MessageProcessor p0){}
public void progress(long p0){}
public void recycle(){}
public void removeBytes(long p0){}
public void setUserDefinedWritability(int p0, boolean p1){}
static public interface MessageProcessor
{
boolean processMessage(Object p0);
}
}

View File

@@ -0,0 +1,35 @@
// Generated automatically from io.netty.channel.ChannelOutboundInvoker for testing purposes
package io.netty.channel;
import io.netty.channel.ChannelFuture;
import io.netty.channel.ChannelProgressivePromise;
import io.netty.channel.ChannelPromise;
import java.net.SocketAddress;
public interface ChannelOutboundInvoker
{
ChannelFuture bind(SocketAddress p0);
ChannelFuture bind(SocketAddress p0, ChannelPromise p1);
ChannelFuture close();
ChannelFuture close(ChannelPromise p0);
ChannelFuture connect(SocketAddress p0);
ChannelFuture connect(SocketAddress p0, ChannelPromise p1);
ChannelFuture connect(SocketAddress p0, SocketAddress p1);
ChannelFuture connect(SocketAddress p0, SocketAddress p1, ChannelPromise p2);
ChannelFuture deregister();
ChannelFuture deregister(ChannelPromise p0);
ChannelFuture disconnect();
ChannelFuture disconnect(ChannelPromise p0);
ChannelFuture newFailedFuture(Throwable p0);
ChannelFuture newSucceededFuture();
ChannelFuture write(Object p0);
ChannelFuture write(Object p0, ChannelPromise p1);
ChannelFuture writeAndFlush(Object p0);
ChannelFuture writeAndFlush(Object p0, ChannelPromise p1);
ChannelOutboundInvoker flush();
ChannelOutboundInvoker read();
ChannelProgressivePromise newProgressivePromise();
ChannelPromise newPromise();
ChannelPromise voidPromise();
}

View File

@@ -0,0 +1,58 @@
// Generated automatically from io.netty.channel.ChannelPipeline for testing purposes
package io.netty.channel;
import io.netty.channel.Channel;
import io.netty.channel.ChannelHandler;
import io.netty.channel.ChannelHandlerContext;
import io.netty.channel.ChannelInboundInvoker;
import io.netty.channel.ChannelOutboundInvoker;
import io.netty.util.concurrent.EventExecutorGroup;
import java.util.List;
import java.util.Map;
public interface ChannelPipeline extends ChannelInboundInvoker, ChannelOutboundInvoker, Iterable<Map.Entry<String, ChannelHandler>>
{
<T extends ChannelHandler> T get(java.lang.Class<T> p0);
<T extends ChannelHandler> T remove(java.lang.Class<T> p0);
<T extends ChannelHandler> T replace(java.lang.Class<T> p0, String p1, ChannelHandler p2);
Channel channel();
ChannelHandler first();
ChannelHandler get(String p0);
ChannelHandler last();
ChannelHandler remove(String p0);
ChannelHandler removeFirst();
ChannelHandler removeLast();
ChannelHandler replace(String p0, String p1, ChannelHandler p2);
ChannelHandlerContext context(ChannelHandler p0);
ChannelHandlerContext context(Class<? extends ChannelHandler> p0);
ChannelHandlerContext context(String p0);
ChannelHandlerContext firstContext();
ChannelHandlerContext lastContext();
ChannelPipeline addAfter(EventExecutorGroup p0, String p1, String p2, ChannelHandler p3);
ChannelPipeline addAfter(String p0, String p1, ChannelHandler p2);
ChannelPipeline addBefore(EventExecutorGroup p0, String p1, String p2, ChannelHandler p3);
ChannelPipeline addBefore(String p0, String p1, ChannelHandler p2);
ChannelPipeline addFirst(ChannelHandler... p0);
ChannelPipeline addFirst(EventExecutorGroup p0, ChannelHandler... p1);
ChannelPipeline addFirst(EventExecutorGroup p0, String p1, ChannelHandler p2);
ChannelPipeline addFirst(String p0, ChannelHandler p1);
ChannelPipeline addLast(ChannelHandler... p0);
ChannelPipeline addLast(EventExecutorGroup p0, ChannelHandler... p1);
ChannelPipeline addLast(EventExecutorGroup p0, String p1, ChannelHandler p2);
ChannelPipeline addLast(String p0, ChannelHandler p1);
ChannelPipeline fireChannelActive();
ChannelPipeline fireChannelInactive();
ChannelPipeline fireChannelRead(Object p0);
ChannelPipeline fireChannelReadComplete();
ChannelPipeline fireChannelRegistered();
ChannelPipeline fireChannelUnregistered();
ChannelPipeline fireChannelWritabilityChanged();
ChannelPipeline fireExceptionCaught(Throwable p0);
ChannelPipeline fireUserEventTriggered(Object p0);
ChannelPipeline flush();
ChannelPipeline remove(ChannelHandler p0);
ChannelPipeline replace(ChannelHandler p0, String p1, ChannelHandler p2);
List<String> names();
Map<String, ChannelHandler> toMap();
}

View File

@@ -0,0 +1,19 @@
// Generated automatically from io.netty.channel.ChannelProgressiveFuture for testing purposes
package io.netty.channel;
import io.netty.channel.ChannelFuture;
import io.netty.util.concurrent.GenericFutureListener;
import io.netty.util.concurrent.ProgressiveFuture;
public interface ChannelProgressiveFuture extends ChannelFuture, ProgressiveFuture<Void>
{
ChannelProgressiveFuture addListener(GenericFutureListener<? extends io.netty.util.concurrent.Future<? super Void>> p0);
ChannelProgressiveFuture addListeners(GenericFutureListener<? extends io.netty.util.concurrent.Future<? super Void>>... p0);
ChannelProgressiveFuture await();
ChannelProgressiveFuture awaitUninterruptibly();
ChannelProgressiveFuture removeListener(GenericFutureListener<? extends io.netty.util.concurrent.Future<? super Void>> p0);
ChannelProgressiveFuture removeListeners(GenericFutureListener<? extends io.netty.util.concurrent.Future<? super Void>>... p0);
ChannelProgressiveFuture sync();
ChannelProgressiveFuture syncUninterruptibly();
}

View File

@@ -0,0 +1,25 @@
// Generated automatically from io.netty.channel.ChannelProgressivePromise for testing purposes
package io.netty.channel;
import io.netty.channel.ChannelProgressiveFuture;
import io.netty.channel.ChannelPromise;
import io.netty.util.concurrent.GenericFutureListener;
import io.netty.util.concurrent.ProgressivePromise;
public interface ChannelProgressivePromise extends ChannelProgressiveFuture, ChannelPromise, ProgressivePromise<Void>
{
ChannelProgressivePromise addListener(GenericFutureListener<? extends io.netty.util.concurrent.Future<? super Void>> p0);
ChannelProgressivePromise addListeners(GenericFutureListener<? extends io.netty.util.concurrent.Future<? super Void>>... p0);
ChannelProgressivePromise await();
ChannelProgressivePromise awaitUninterruptibly();
ChannelProgressivePromise removeListener(GenericFutureListener<? extends io.netty.util.concurrent.Future<? super Void>> p0);
ChannelProgressivePromise removeListeners(GenericFutureListener<? extends io.netty.util.concurrent.Future<? super Void>>... p0);
ChannelProgressivePromise setFailure(Throwable p0);
ChannelProgressivePromise setProgress(long p0, long p1);
ChannelProgressivePromise setSuccess();
ChannelProgressivePromise setSuccess(Void p0);
ChannelProgressivePromise sync();
ChannelProgressivePromise syncUninterruptibly();
ChannelProgressivePromise unvoid();
}

View File

@@ -0,0 +1,26 @@
// Generated automatically from io.netty.channel.ChannelPromise for testing purposes
package io.netty.channel;
import io.netty.channel.Channel;
import io.netty.channel.ChannelFuture;
import io.netty.util.concurrent.GenericFutureListener;
import io.netty.util.concurrent.Promise;
public interface ChannelPromise extends ChannelFuture, Promise<Void>
{
Channel channel();
ChannelPromise addListener(GenericFutureListener<? extends io.netty.util.concurrent.Future<? super Void>> p0);
ChannelPromise addListeners(GenericFutureListener<? extends io.netty.util.concurrent.Future<? super Void>>... p0);
ChannelPromise await();
ChannelPromise awaitUninterruptibly();
ChannelPromise removeListener(GenericFutureListener<? extends io.netty.util.concurrent.Future<? super Void>> p0);
ChannelPromise removeListeners(GenericFutureListener<? extends io.netty.util.concurrent.Future<? super Void>>... p0);
ChannelPromise setFailure(Throwable p0);
ChannelPromise setSuccess();
ChannelPromise setSuccess(Void p0);
ChannelPromise sync();
ChannelPromise syncUninterruptibly();
ChannelPromise unvoid();
boolean trySuccess();
}

View File

@@ -0,0 +1,28 @@
// Generated automatically from io.netty.channel.DefaultFileRegion for testing purposes
package io.netty.channel;
import io.netty.channel.FileRegion;
import io.netty.util.AbstractReferenceCounted;
import java.io.File;
import java.nio.channels.FileChannel;
import java.nio.channels.WritableByteChannel;
public class DefaultFileRegion extends AbstractReferenceCounted implements FileRegion
{
protected DefaultFileRegion() {}
protected void deallocate(){}
public DefaultFileRegion(File p0, long p1, long p2){}
public DefaultFileRegion(FileChannel p0, long p1, long p2){}
public FileRegion retain(){ return null; }
public FileRegion retain(int p0){ return null; }
public FileRegion touch(){ return null; }
public FileRegion touch(Object p0){ return null; }
public boolean isOpen(){ return false; }
public long count(){ return 0; }
public long position(){ return 0; }
public long transferTo(WritableByteChannel p0, long p1){ return 0; }
public long transfered(){ return 0; }
public long transferred(){ return 0; }
public void open(){}
}

Some files were not shown because too many files have changed in this diff Show More