mirror of
https://github.com/github/codeql.git
synced 2026-05-16 04:09:27 +02:00
Compare commits
9 Commits
codeql-cli
...
java/stres
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d227a018e6 | ||
|
|
606b836af4 | ||
|
|
709d0c0c8d | ||
|
|
83e2cbee82 | ||
|
|
777feccaea | ||
|
|
927d017f3d | ||
|
|
11636862f6 | ||
|
|
3b77a1d24f | ||
|
|
798f4efcfb |
108005
java/ql/lib/ext/package0.model.yml
Normal file
108005
java/ql/lib/ext/package0.model.yml
Normal file
File diff suppressed because it is too large
Load Diff
108005
java/ql/lib/ext/package1.model.yml
Normal file
108005
java/ql/lib/ext/package1.model.yml
Normal file
File diff suppressed because it is too large
Load Diff
108005
java/ql/lib/ext/package2.model.yml
Normal file
108005
java/ql/lib/ext/package2.model.yml
Normal file
File diff suppressed because it is too large
Load Diff
33
java/ql/lotsofmodels.py
Normal file
33
java/ql/lotsofmodels.py
Normal file
@@ -0,0 +1,33 @@
|
||||
# Tool to run queries from different packs each containing lots of data extensions.
|
||||
# Usage:
|
||||
# python3 lotsofmodels.py <path to codeql repo>
|
||||
|
||||
import os
|
||||
import subprocess
|
||||
import sys
|
||||
import tempfile
|
||||
|
||||
# Add Models as Data script directory to sys.path.
|
||||
gitroot = subprocess.check_output(["git", "rev-parse", "--show-toplevel"]).decode("utf-8").strip()
|
||||
madpath = os.path.join(gitroot, "misc/scripts/models-as-data/")
|
||||
sys.path.append(madpath)
|
||||
|
||||
import helpers
|
||||
import convert_extensions as extensions
|
||||
|
||||
print('Executing script to run dummy queries that loads lots of extensions files.')
|
||||
print('Making a dummy database.')
|
||||
|
||||
# Configuration
|
||||
workDir = tempfile.mkdtemp()
|
||||
projectDir = os.path.join(workDir, "project")
|
||||
emptyFile = os.path.join(workDir, "Empty.java")
|
||||
dbDir = os.path.join(workDir, "db")
|
||||
|
||||
# Make dummy project
|
||||
with open(emptyFile, "w") as f:
|
||||
f.write("class Empty {}")
|
||||
helpers.run_cmd(['codeql', 'database', 'create', f'--language=java', '-c', f'javac {emptyFile}', dbDir], "Failed to create dummy database.")
|
||||
|
||||
# Run dummy queries
|
||||
helpers.run_cmd (['codeql', 'database', 'analyze', '--format=csv', '--output=myoutput', '-vvvv', '--additional-packs', sys.argv[1], '--', dbDir, 'p1/p1.ql', 'p2/p2.ql', 'p3/p3.ql', 'p4/p4.ql', 'p5/p5.ql'])
|
||||
108005
java/ql/p1/ext/package30.model.yml
Normal file
108005
java/ql/p1/ext/package30.model.yml
Normal file
File diff suppressed because it is too large
Load Diff
108005
java/ql/p1/ext/package31.model.yml
Normal file
108005
java/ql/p1/ext/package31.model.yml
Normal file
File diff suppressed because it is too large
Load Diff
108005
java/ql/p1/ext/package32.model.yml
Normal file
108005
java/ql/p1/ext/package32.model.yml
Normal file
File diff suppressed because it is too large
Load Diff
108005
java/ql/p1/ext/package33.model.yml
Normal file
108005
java/ql/p1/ext/package33.model.yml
Normal file
File diff suppressed because it is too large
Load Diff
108005
java/ql/p1/ext/package34.model.yml
Normal file
108005
java/ql/p1/ext/package34.model.yml
Normal file
File diff suppressed because it is too large
Load Diff
108005
java/ql/p1/ext/package35.model.yml
Normal file
108005
java/ql/p1/ext/package35.model.yml
Normal file
File diff suppressed because it is too large
Load Diff
108005
java/ql/p1/ext/package36.model.yml
Normal file
108005
java/ql/p1/ext/package36.model.yml
Normal file
File diff suppressed because it is too large
Load Diff
10
java/ql/p1/p1.ql
Normal file
10
java/ql/p1/p1.ql
Normal file
@@ -0,0 +1,10 @@
|
||||
/**
|
||||
* @name p1
|
||||
* @description p1
|
||||
* @kind diagnostic
|
||||
* @id java/p1
|
||||
*/
|
||||
|
||||
import java
|
||||
|
||||
select "p1"
|
||||
7
java/ql/p1/qlpack.yml
Normal file
7
java/ql/p1/qlpack.yml
Normal file
@@ -0,0 +1,7 @@
|
||||
name: codeql/java-queries-p1
|
||||
version: 0.0.0
|
||||
extractor: java
|
||||
dependencies:
|
||||
codeql/java-all: '*'
|
||||
dataExtensions:
|
||||
- ext/*.model.yml
|
||||
108005
java/ql/p2/ext/package40.model.yml
Normal file
108005
java/ql/p2/ext/package40.model.yml
Normal file
File diff suppressed because it is too large
Load Diff
10
java/ql/p2/p2.ql
Normal file
10
java/ql/p2/p2.ql
Normal file
@@ -0,0 +1,10 @@
|
||||
/**
|
||||
* @name p2
|
||||
* @description p2
|
||||
* @kind diagnostic
|
||||
* @id java/p2
|
||||
*/
|
||||
|
||||
import java
|
||||
|
||||
select "p2"
|
||||
7
java/ql/p2/qlpack.yml
Normal file
7
java/ql/p2/qlpack.yml
Normal file
@@ -0,0 +1,7 @@
|
||||
name: codeql/java-queries-p2
|
||||
version: 0.0.0
|
||||
extractor: java
|
||||
dependencies:
|
||||
codeql/java-all: '*'
|
||||
dataExtensions:
|
||||
- ext/*.model.yml
|
||||
108005
java/ql/p3/ext/package50.model.yml
Normal file
108005
java/ql/p3/ext/package50.model.yml
Normal file
File diff suppressed because it is too large
Load Diff
10
java/ql/p3/p3.ql
Normal file
10
java/ql/p3/p3.ql
Normal file
@@ -0,0 +1,10 @@
|
||||
/**
|
||||
* @name p3
|
||||
* @description p3
|
||||
* @kind diagnostic
|
||||
* @id java/p3
|
||||
*/
|
||||
|
||||
import java
|
||||
|
||||
select "p3"
|
||||
7
java/ql/p3/qlpack.yml
Normal file
7
java/ql/p3/qlpack.yml
Normal file
@@ -0,0 +1,7 @@
|
||||
name: codeql/java-queries-p3
|
||||
version: 0.0.0
|
||||
extractor: java
|
||||
dependencies:
|
||||
codeql/java-all: '*'
|
||||
dataExtensions:
|
||||
- ext/*.model.yml
|
||||
108005
java/ql/p4/ext/package60.model.yml
Normal file
108005
java/ql/p4/ext/package60.model.yml
Normal file
File diff suppressed because it is too large
Load Diff
108005
java/ql/p4/ext/package61.model.yml
Normal file
108005
java/ql/p4/ext/package61.model.yml
Normal file
File diff suppressed because it is too large
Load Diff
108005
java/ql/p4/ext/package62.model.yml
Normal file
108005
java/ql/p4/ext/package62.model.yml
Normal file
File diff suppressed because it is too large
Load Diff
108005
java/ql/p4/ext/package63.model.yml
Normal file
108005
java/ql/p4/ext/package63.model.yml
Normal file
File diff suppressed because it is too large
Load Diff
108005
java/ql/p4/ext/package64.model.yml
Normal file
108005
java/ql/p4/ext/package64.model.yml
Normal file
File diff suppressed because it is too large
Load Diff
10
java/ql/p4/p4.ql
Normal file
10
java/ql/p4/p4.ql
Normal file
@@ -0,0 +1,10 @@
|
||||
/**
|
||||
* @name p4
|
||||
* @description p4
|
||||
* @kind diagnostic
|
||||
* @id java/p4
|
||||
*/
|
||||
|
||||
import java
|
||||
|
||||
select "p4"
|
||||
7
java/ql/p4/qlpack.yml
Normal file
7
java/ql/p4/qlpack.yml
Normal file
@@ -0,0 +1,7 @@
|
||||
name: codeql/java-queries-p4
|
||||
version: 0.0.0
|
||||
extractor: java
|
||||
dependencies:
|
||||
codeql/java-all: '*'
|
||||
dataExtensions:
|
||||
- ext/*.model.yml
|
||||
108005
java/ql/p5/ext/package70.model.yml
Normal file
108005
java/ql/p5/ext/package70.model.yml
Normal file
File diff suppressed because it is too large
Load Diff
108005
java/ql/p5/ext/package71.model.yml
Normal file
108005
java/ql/p5/ext/package71.model.yml
Normal file
File diff suppressed because it is too large
Load Diff
108005
java/ql/p5/ext/package72.model.yml
Normal file
108005
java/ql/p5/ext/package72.model.yml
Normal file
File diff suppressed because it is too large
Load Diff
108005
java/ql/p5/ext/package73.model.yml
Normal file
108005
java/ql/p5/ext/package73.model.yml
Normal file
File diff suppressed because it is too large
Load Diff
108005
java/ql/p5/ext/package74.model.yml
Normal file
108005
java/ql/p5/ext/package74.model.yml
Normal file
File diff suppressed because it is too large
Load Diff
10
java/ql/p5/p5.ql
Normal file
10
java/ql/p5/p5.ql
Normal file
@@ -0,0 +1,10 @@
|
||||
/**
|
||||
* @name p5
|
||||
* @description p5
|
||||
* @kind diagnostic
|
||||
* @id java/p5
|
||||
*/
|
||||
|
||||
import java
|
||||
|
||||
select "p5"
|
||||
7
java/ql/p5/qlpack.yml
Normal file
7
java/ql/p5/qlpack.yml
Normal file
@@ -0,0 +1,7 @@
|
||||
name: codeql/java-queries-p5
|
||||
version: 0.0.0
|
||||
extractor: java
|
||||
dependencies:
|
||||
codeql/java-all: '*'
|
||||
dataExtensions:
|
||||
- ext/*.model.yml
|
||||
73
java/ql/src/utils/lotsofmodels/LotsOfModels.py
Normal file
73
java/ql/src/utils/lotsofmodels/LotsOfModels.py
Normal file
@@ -0,0 +1,73 @@
|
||||
#!/usr/bin/python3
|
||||
|
||||
import json
|
||||
import os
|
||||
import os.path
|
||||
import shlex
|
||||
import subprocess
|
||||
import sys
|
||||
import tempfile
|
||||
|
||||
# Add Model as Data script directory to sys.path.
|
||||
gitroot = subprocess.check_output(["git", "rev-parse", "--show-toplevel"]).decode("utf-8").strip()
|
||||
madpath = os.path.join(gitroot, "misc/scripts/models-as-data/")
|
||||
sys.path.append(madpath)
|
||||
|
||||
import helpers
|
||||
|
||||
def quote_if_needed(v):
|
||||
# string columns
|
||||
if type(v) is str:
|
||||
return "\"" + v + "\""
|
||||
# bool column
|
||||
return str(v)
|
||||
|
||||
def insert_update(rows, key, value):
|
||||
if key in rows:
|
||||
rows[key] += value
|
||||
else:
|
||||
rows[key] = value
|
||||
|
||||
def parseData(data):
|
||||
rows = { }
|
||||
for row in data:
|
||||
d = map(quote_if_needed, row)
|
||||
insert_update(rows, row[0], " - [" + ', '.join(d) + ']\n')
|
||||
|
||||
return rows
|
||||
|
||||
class Generator:
|
||||
def __init__(self, language, n):
|
||||
self.language = language
|
||||
self.codeQlRoot = subprocess.check_output(["git", "rev-parse", "--show-toplevel"]).decode("utf-8").strip()
|
||||
self.extDir = os.path.join(self.codeQlRoot, f"{self.language}/ql/lib/ext/")
|
||||
self.modelFileExtension = ".model.yml"
|
||||
self.packagecount = n
|
||||
|
||||
|
||||
def makeData(self, f, package):
|
||||
n = 30
|
||||
for a in range(n):
|
||||
for b in range(n):
|
||||
for c in range(n):
|
||||
for k in ["value", "taint"]:
|
||||
for p in ["manual", "generated"]:
|
||||
f.write(f""" - ["{package}", "myClass{str(a)}", False, "myName{str(b)}", "(Object)", "", "Argument[{str(c)}]", "ReturnValue", "{k}", "{p}"]""")
|
||||
f.write("\n")
|
||||
|
||||
|
||||
def run(self):
|
||||
for i in range(self.packagecount):
|
||||
package = f"package{i}"
|
||||
with open(self.extDir + "/" + package + self.modelFileExtension, "w") as f:
|
||||
f.write("extensions:\n")
|
||||
f.write(" - addsTo:\n")
|
||||
f.write(" pack: codeql/java-all\n")
|
||||
f.write(" extensible: summaryModel\n")
|
||||
f.write(" data:\n")
|
||||
self.makeData(f, package)
|
||||
|
||||
|
||||
## Make Lots of Models
|
||||
language = "java"
|
||||
Generator(language, int(sys.argv[1])).run()
|
||||
@@ -0,0 +1,155 @@
|
||||
| |
|
||||
| android.app |
|
||||
| android.content |
|
||||
| android.database |
|
||||
| android.database.sqlite |
|
||||
| android.net |
|
||||
| android.os |
|
||||
| android.widget |
|
||||
| androidx.core.app |
|
||||
| androidx.slice.builders |
|
||||
| cn.hutool.core.codec |
|
||||
| com.esotericsoftware.kryo5.io |
|
||||
| com.esotericsoftware.kryo.io |
|
||||
| com.fasterxml.jackson.core |
|
||||
| com.fasterxml.jackson.databind |
|
||||
| com.google.common.base |
|
||||
| com.google.common.cache |
|
||||
| com.google.common.collect |
|
||||
| com.google.common.io |
|
||||
| com.rabbitmq.client |
|
||||
| com.rabbitmq.client.impl |
|
||||
| flexjson |
|
||||
| generatedtest |
|
||||
| jakarta.json |
|
||||
| jakarta.json.stream |
|
||||
| jakarta.ws.rs.core |
|
||||
| java.beans |
|
||||
| java.io |
|
||||
| java.lang |
|
||||
| java.net |
|
||||
| java.nio |
|
||||
| java.nio.channels |
|
||||
| java.nio.file |
|
||||
| java.util |
|
||||
| java.util.concurrent |
|
||||
| java.util.logging |
|
||||
| java.util.regex |
|
||||
| java.util.stream |
|
||||
| java.util.zip |
|
||||
| javax.jms |
|
||||
| javax.json |
|
||||
| javax.json.stream |
|
||||
| javax.servlet.http |
|
||||
| javax.ws.rs.core |
|
||||
| javax.xml.transform.sax |
|
||||
| javax.xml.transform.stream |
|
||||
| jodd.json |
|
||||
| kotlin |
|
||||
| kotlin.collections |
|
||||
| kotlin.comparisons |
|
||||
| kotlin.coroutines |
|
||||
| kotlin.coroutines.intrinsics |
|
||||
| kotlin.coroutines.jvm.internal |
|
||||
| kotlin.io |
|
||||
| kotlin.jvm.internal |
|
||||
| kotlin.properties |
|
||||
| kotlin.random |
|
||||
| kotlin.ranges |
|
||||
| kotlin.reflect |
|
||||
| kotlin.sequences |
|
||||
| kotlin.text |
|
||||
| kotlin.time |
|
||||
| my.callback.qltest |
|
||||
| my.qltest |
|
||||
| my.qltest.synth |
|
||||
| okhttp3 |
|
||||
| org.apache.commons.codec |
|
||||
| org.apache.commons.collections |
|
||||
| org.apache.commons.collections4 |
|
||||
| org.apache.commons.collections4.bag |
|
||||
| org.apache.commons.collections4.bidimap |
|
||||
| org.apache.commons.collections4.collection |
|
||||
| org.apache.commons.collections4.iterators |
|
||||
| org.apache.commons.collections4.keyvalue |
|
||||
| org.apache.commons.collections4.list |
|
||||
| org.apache.commons.collections4.map |
|
||||
| org.apache.commons.collections4.multimap |
|
||||
| org.apache.commons.collections4.multiset |
|
||||
| org.apache.commons.collections4.properties |
|
||||
| org.apache.commons.collections4.queue |
|
||||
| org.apache.commons.collections4.set |
|
||||
| org.apache.commons.collections4.splitmap |
|
||||
| org.apache.commons.collections4.trie |
|
||||
| org.apache.commons.collections.bag |
|
||||
| org.apache.commons.collections.bidimap |
|
||||
| org.apache.commons.collections.collection |
|
||||
| org.apache.commons.collections.iterators |
|
||||
| org.apache.commons.collections.keyvalue |
|
||||
| org.apache.commons.collections.list |
|
||||
| org.apache.commons.collections.map |
|
||||
| org.apache.commons.collections.multimap |
|
||||
| org.apache.commons.collections.multiset |
|
||||
| org.apache.commons.collections.properties |
|
||||
| org.apache.commons.collections.queue |
|
||||
| org.apache.commons.collections.set |
|
||||
| org.apache.commons.collections.splitmap |
|
||||
| org.apache.commons.collections.trie |
|
||||
| org.apache.commons.io |
|
||||
| org.apache.commons.io.charset |
|
||||
| org.apache.commons.io.comparator |
|
||||
| org.apache.commons.io.file |
|
||||
| org.apache.commons.io.file.spi |
|
||||
| org.apache.commons.io.filefilter |
|
||||
| org.apache.commons.io.input |
|
||||
| org.apache.commons.io.input.buffer |
|
||||
| org.apache.commons.io.monitor |
|
||||
| org.apache.commons.io.output |
|
||||
| org.apache.commons.io.serialization |
|
||||
| org.apache.commons.lang3 |
|
||||
| org.apache.commons.lang3.builder |
|
||||
| org.apache.commons.lang3.mutable |
|
||||
| org.apache.commons.lang3.text |
|
||||
| org.apache.commons.lang3.tuple |
|
||||
| org.apache.commons.text |
|
||||
| org.apache.commons.text.lookup |
|
||||
| org.apache.hc.core5.function |
|
||||
| org.apache.hc.core5.http |
|
||||
| org.apache.hc.core5.http.io.entity |
|
||||
| org.apache.hc.core5.http.message |
|
||||
| org.apache.hc.core5.net |
|
||||
| org.apache.hc.core5.util |
|
||||
| org.apache.http |
|
||||
| org.apache.http.entity |
|
||||
| org.apache.http.message |
|
||||
| org.apache.http.params |
|
||||
| org.apache.http.util |
|
||||
| org.apache.ibatis.jdbc |
|
||||
| org.apache.logging.log4j |
|
||||
| org.apache.shiro.codec |
|
||||
| org.json |
|
||||
| org.slf4j.spi |
|
||||
| org.springframework.beans |
|
||||
| org.springframework.cache |
|
||||
| org.springframework.context |
|
||||
| org.springframework.data.repository |
|
||||
| org.springframework.http |
|
||||
| org.springframework.ui |
|
||||
| org.springframework.util |
|
||||
| org.springframework.validation |
|
||||
| org.springframework.web.multipart |
|
||||
| org.springframework.web.util |
|
||||
| org.thymeleaf |
|
||||
| org.xml.sax |
|
||||
| package0 |
|
||||
| package1 |
|
||||
| package2 |
|
||||
| ratpack.core.form |
|
||||
| ratpack.core.handling |
|
||||
| ratpack.core.http |
|
||||
| ratpack.exec |
|
||||
| ratpack.form |
|
||||
| ratpack.func |
|
||||
| ratpack.handling |
|
||||
| ratpack.http |
|
||||
| ratpack.util |
|
||||
@@ -0,0 +1,6 @@
|
||||
import java
|
||||
import semmle.code.java.dataflow.ExternalFlowExtensions
|
||||
|
||||
from string package
|
||||
where summaryModel(package, _, _, _, _, _, _, _, _, _)
|
||||
select package
|
||||
Reference in New Issue
Block a user