Nick Rolfe
11bcad37af
Ruby: update crate versions
2021-10-27 18:12:12 +01:00
Shati Patel
c9b50f3c2f
Merge pull request #6981 from github/aibaars/ruby-lgtm-links
...
Ruby: update lgtm.com query console links
2021-10-27 17:18:08 +01:00
Arthur Baars
f496336a0d
Ruby: update lgtm.com query console links
2021-10-27 18:08:11 +02:00
Nick Rolfe
06303b103f
Merge pull request #6979 from github/nickrolfe/revert-crate-updates
...
Ruby: revert crate updates
2021-10-27 16:53:19 +01:00
Nick Rolfe
7a5e8f1756
Ruby: update Cargo.lock
2021-10-27 16:21:33 +01:00
Nick Rolfe
ff7826dd96
Revert "Update tracing-subscriber requirement from 0.2 to 0.3 in /ruby/generator"
...
This reverts commit 4cedb43a54 .
2021-10-27 16:21:33 +01:00
Nick Rolfe
fc1f874f92
Revert "Update tracing-subscriber requirement from 0.2 to 0.3 in /ruby/extractor"
...
This reverts commit e9da027539 .
2021-10-27 16:21:33 +01:00
Arthur Baars
dc24361f89
Merge pull request #6974 from github/nickrolfe/Cargo_lock
...
Ruby: update Cargo.lock
2021-10-27 13:47:22 +02:00
Nick Rolfe
0a89028663
Ruby: update Cargo.lock
2021-10-27 11:43:09 +01:00
Anders Schack-Mulligen
4a67ac5e0b
Merge pull request #4991 from JLLeitschuh/feat/JLL/early_ratpack_support
...
Java: Simple support for Ratpack HTTP Framework
2021-10-27 09:25:52 +02:00
Joe Farebrother
02b440b0ed
Merge pull request #6599 from joefarebrother/android-sensitive-communication
...
Java: Promote android sensitive broadcast query
2021-10-26 13:48:58 +01:00
CodeQL CI
e5e1046c81
Merge pull request #6962 from asgerf/js/template-db-constraint-err
...
Approved by erik-krogh
2021-10-26 13:43:57 +01:00
Jonathan Leitschuh
21aeee6378
Actually remove the last non-ascii quote from Promise
...
Signed-off-by: Jonathan Leitschuh <Jonathan.Leitschuh@gmail.com >
2021-10-26 08:28:44 -04:00
Alexander Eyers-Taylor
3bae95a93a
Merge pull request #6939 from edoardopirovano/bump-version
...
Fix version number in language reference
2021-10-26 13:11:30 +01:00
Anders Schack-Mulligen
90bebaa5a9
Merge pull request #6960 from erik-krogh/useSetLiteral
...
use set literal instead of big disjunction of literals
2021-10-26 14:06:05 +02:00
Anders Schack-Mulligen
ba95d46ec3
Apply suggestions from code review
...
Co-authored-by: Tony Torralba <atorralba@users.noreply.github.com >
2021-10-26 14:04:13 +02:00
Erik Krogh Kristensen
090fb2df10
Merge pull request #6857 from erik-krogh/fixPipes
...
JS: skip pipes and other special files when determining which files to extract
2021-10-26 13:59:40 +02:00
Mathias Vorreiter Pedersen
4a58349fcd
Merge pull request #6961 from MathiasVP/fix-join-order-in-in-def-dominance-frontier
...
C#: Fix join order in `inDefDominanceFrontier`
2021-10-26 12:55:31 +01:00
Edoardo Pirovano
6a3de20e7a
Fix version number in language reference
2021-10-26 12:53:48 +01:00
Erik Krogh Kristensen
a3c55c2aec
use set literal instead of big disjunction of literals
2021-10-26 12:55:25 +02:00
Rasmus Wriedt Larsen
2b9edd7ff6
Merge pull request #6952 from github/aibaars/generate-code-scanning-query-list
...
Add Ruby to generate-code-scanning-query-list.py and make the script faster
2021-10-26 10:49:24 +02:00
Mathias Vorreiter Pedersen
67fd38f328
C#/Ruby: Use a 'noinline' instead of a 'only_bind_into'.
2021-10-26 09:41:52 +01:00
Anders Schack-Mulligen
3d1b617101
Merge pull request #6959 from igfoo/igfoo/bbStmts
...
Java: Make a test output a bit more readable
2021-10-26 08:42:53 +02:00
Mathias Vorreiter Pedersen
4b137ede0e
Ruby: Sync identical files.
2021-10-25 22:03:44 +01:00
Mathias Vorreiter Pedersen
e2d3474563
Merge branch 'main' into fix-join-order-in-in-def-dominance-frontier
2021-10-25 22:02:35 +01:00
Mathias Vorreiter Pedersen
9145382660
C#: Sync identical files.
2021-10-25 21:55:28 +01:00
Mathias Vorreiter Pedersen
ff35100d52
C#: Fix join order in 'inDefDominanceFrontier'.
2021-10-25 21:55:09 +01:00
Henry Mercer
3284953192
Merge pull request #6958 from github/henrymercer/rename-atm-query-pack
...
JS: [Internal only] Rename ATM query pack for consistency with other packs
2021-10-25 20:16:40 +01:00
Ian Lynagh
f73f418a97
Java: Make a test output a bit more readable
...
Now the nodes are in index order, and the indices are aligned.
2021-10-25 18:48:19 +01:00
Henry Mercer
7e0e35f364
Rename ATM query pack for consistency with other packs
2021-10-25 17:32:25 +01:00
Jonathan Leitschuh
ebe2c26f4d
Remove the last non-ascii quote from Promise
...
Signed-off-by: Jonathan Leitschuh <Jonathan.Leitschuh@gmail.com >
2021-10-25 11:30:12 -04:00
Nick Rolfe
db3c99d64d
Merge pull request #6954 from github/nickrolfe/ruby-labeler
...
Automatically label Ruby PRs
2021-10-25 15:44:30 +01:00
Nick Rolfe
096c207b3e
Automatically label Ruby PRs
2021-10-25 15:29:20 +01:00
CodeQL CI
3fc6e2b294
Merge pull request #6941 from RasmusWL/add-missing-noinline
...
Approved by tausbn
2021-10-25 15:23:37 +01:00
CodeQL CI
b5554da496
Merge pull request #6924 from asgerf/js/skip-files-with-unsupported-encoding
...
Approved by esbena
2021-10-25 14:48:38 +01:00
Nick Rolfe
7308f75b78
Merge pull request #6951 from github/nickrolfe/remove-workspace
...
Ruby: remove VS Code workspace
2021-10-25 14:29:06 +01:00
Joe Farebrother
6dac86b9be
Fix unneeded import and spelling mistake
2021-10-25 14:11:00 +01:00
Arthur Baars
dcf71c4f9a
Ruby: update generate-code-scanning-query-list.py
2021-10-25 15:04:34 +02:00
Arthur Baars
a6ac2e73a1
Speed up generate-code-scanning-query-list.py
...
Use 'codeql execute cli-server' to avoid repeated JVM startup overhead
2021-10-25 15:03:28 +02:00
Nick Rolfe
779e24eb73
Ruby: remove VS Code workspace
2021-10-25 13:12:31 +01:00
Nick Rolfe
fb79886fe7
Merge pull request #6944 from github/dependabot/cargo/ruby/extractor/tracing-subscriber-0.3
...
Update tracing-subscriber requirement from 0.2 to 0.3 in /ruby/extractor
2021-10-25 12:50:48 +01:00
Nick Rolfe
b93be42421
Merge pull request #6943 from github/dependabot/cargo/ruby/generator/tracing-subscriber-0.3
...
Update tracing-subscriber requirement from 0.2 to 0.3 in /ruby/generator
2021-10-25 12:50:26 +01:00
Anders Schack-Mulligen
c48dd57d85
Merge pull request #6938 from github/workflow/coverage/update
...
Update CSV framework coverage reports
2021-10-25 13:43:54 +02:00
Joe Farebrother
0c1af2411b
Write intent in lowercase consistently
...
Co-authored-by: hubwriter <hubwriter@github.com >
2021-10-25 12:22:49 +01:00
Anders Schack-Mulligen
5709365c0f
Merge pull request #6921 from igfoo/igfoo/types
...
Java: Replace @type with more specific types
2021-10-25 13:15:12 +02:00
dependabot[bot]
e9da027539
Update tracing-subscriber requirement from 0.2 to 0.3 in /ruby/extractor
...
Updates the requirements on [tracing-subscriber](https://github.com/tokio-rs/tracing ) to permit the latest version.
- [Release notes](https://github.com/tokio-rs/tracing/releases )
- [Commits](https://github.com/tokio-rs/tracing/compare/tracing-subscriber-0.2.0...tracing-subscriber-0.3.0 )
---
updated-dependencies:
- dependency-name: tracing-subscriber
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com >
2021-10-25 10:40:34 +00:00
dependabot[bot]
4cedb43a54
Update tracing-subscriber requirement from 0.2 to 0.3 in /ruby/generator
...
Updates the requirements on [tracing-subscriber](https://github.com/tokio-rs/tracing ) to permit the latest version.
- [Release notes](https://github.com/tokio-rs/tracing/releases )
- [Commits](https://github.com/tokio-rs/tracing/compare/tracing-subscriber-0.2.0...tracing-subscriber-0.3.0 )
---
updated-dependencies:
- dependency-name: tracing-subscriber
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com >
2021-10-25 10:40:28 +00:00
Arthur Baars
afc7867c98
Merge pull request #6942 from github/aibaars/patch-10
...
Merge codeql-ruby into codeql
2021-10-25 12:33:34 +02:00
Asger Feldthaus
bfb1da55d6
JS: Bump extractor version string
2021-10-25 11:49:56 +02:00
Asger Feldthaus
f3e2b0b946
JS: Avoid using non-existent attribute as parent
2021-10-25 11:49:56 +02:00
Asger Feldthaus
ac62379b17
JS: Add TRAP test
2021-10-25 11:49:39 +02:00
github-actions[bot]
2257d0475a
Add changed framework coverage reports
2021-10-25 00:09:34 +00:00
Arthur Baars
4f79398342
Merge branch 'main' of github.com:github/codeql into 'main'
...
Conflicts:
docs/codeql/query-help/codeql-cwe-coverage.rst
2021-10-22 21:51:25 +02:00
Tom Hvitved
f020b2e437
Merge pull request #335 from github/hmac/self-flow
2021-10-22 19:14:20 +02:00
Jonathan Leitschuh
5eb28398f0
Remove non-ASCII characters from Promise.java
...
Signed-off-by: Jonathan Leitschuh <Jonathan.Leitschuh@gmail.com >
2021-10-22 10:52:46 -04:00
Nick Rolfe
3851a27fc1
Merge pull request #358 from github/external-control-file-path
...
Add rb/path-injection query
2021-10-22 15:38:39 +01:00
Tom Hvitved
7648815f1f
Merge pull request #6936 from hvitved/csharp/delegate-conversion-join-order
...
C#: Improve join-order in `defaultDelegateConversion`
2021-10-22 15:10:20 +02:00
Tom Hvitved
61d7cdeec0
Data flow: Assign empty locations to summary nodes
2021-10-22 14:48:33 +02:00
Harry Maclean
87df3a0a99
Minor refactor
2021-10-22 11:44:38 +01:00
hubwriter
12e56ec9e6
Merge pull request #6887 from github/hubwriter/codeql-ruby-support
...
Docs: Updates for Ruby support
2021-10-22 11:21:49 +01:00
Nick Rolfe
d4cee73720
Add taint summaries for ActiveStorage::Filename
2021-10-22 11:15:42 +01:00
Henry Mercer
02b1fe27d2
Merge pull request #6907 from github/henrymercer/add-experimental-atm-libraries
...
JS: [Internal only] Add experimental libraries and queries for adaptive threat modeling
2021-10-22 11:02:09 +01:00
Harry Maclean
aa8607009b
Update test fixtures
2021-10-22 10:56:34 +01:00
Harry Maclean
336bd15d2f
Override isCapturedAccess for self variables
...
Many `self` reads are synthesised from method calls with an implicit
`self` receiver. Synthesised nodes have no `toGenerated` result, which
the default definition of `isCapturedAccess` uses to determine if a
variable's scope matches the access's scope.
Hence we override the definition to properly identify accesses like the
call `puts` (below) as captured reads of a `self` variable defined in a
parent scope.
In other words, `puts x` is short for `self.puts x` and the `self`
refers to its value in the scope of the module `Foo`.
```ruby
module Foo
MY_PROC = -> (x) { puts x }
end
```
We also have to update the SSA `SelfDefinition` to exclude captured
`self` variables.
2021-10-22 10:56:34 +01:00
Harry Maclean
f1add388a0
Synthesise writes to self for classes/modules
...
This requires changing the CFG trees for classes and modules from
post-order to pre-order so that we can place the writes at the root node
of the tree, to prevent them overlapping with reads in the body of the
class/module.
We need to do this because classes and modules don't define their own
basic block, but re-use the surrounding one. This problem doesn't occur
for `self` variables in methods because each method has its own basic
block and we can place the write on the entry node of the bock.
2021-10-22 10:56:34 +01:00
Joe Farebrother
c89178c0e8
Apply suggestions from code review
...
Co-authored-by: Tony Torralba <atorralba@users.noreply.github.com >
2021-10-22 10:54:57 +01:00
Tony Torralba
1333f67a69
Merge pull request #6917 from JLLeitschuh/feat/JLL/jdk_lambda_collections_model_tracking
...
[Java] JDK Collection lambda models
2021-10-22 10:26:50 +02:00
Tom Hvitved
4e40337d02
C#: Improve join-order in defaultDelegateConversion
2021-10-22 10:12:18 +02:00
Arthur Baars
4f72d0853a
Merge pull request #375 from github/rc/3.3
...
Merge rc/3.3 into main
2021-10-21 18:16:57 +02:00
Joe Farebrother
2d368a7d9a
Remove redundant imports from ExternalFlow
2021-10-21 16:48:53 +01:00
Joe Farebrother
a9dde419d2
Fix up test
2021-10-21 16:46:07 +01:00
Taus
562a57b75b
Merge pull request #6928 from RasmusWL/diagnostic-as-warning
...
Python: Improve SARIF severity level reporting of extractor diagnostics
2021-10-21 13:54:01 +02:00
Nick Rolfe
5734f51792
Merge remote-tracking branch 'origin/main' into external-control-file-path
2021-10-21 10:58:38 +01:00
Rasmus Wriedt Larsen
852e9875bd
Python: Apply suggestions from code review
...
Co-authored-by: Taus <tausbn@github.com >
2021-10-21 10:24:34 +02:00
Edoardo Pirovano
1fe772a2ab
Merge pull request #6896 from edoardopirovano/fix-version-trailing
...
Language reference: Fix when trailing commas are allowed
2021-10-21 00:02:02 +01:00
Aditya Sharad
174df98762
Merge pull request #6929 from github/esbena-patch-5
...
Mention default JavaScript Autobuilder excludes
2021-10-20 15:47:51 -07:00
Esben Sparre Andreasen
a1ce81c3d7
Update creating-codeql-databases.rst
2021-10-20 23:00:46 +02:00
Arthur Baars
f9f0fab0d0
Merge pull request #374 from github/aibaars/sync-codeql
...
Sync with `github/codeql:main`
2021-10-20 22:38:46 +02:00
Ian Lynagh
830f81bfdb
Java: Autoformat
2021-10-20 17:45:01 +01:00
Joe Farebrother
3e3503a763
Fix failing checks
2021-10-20 17:25:38 +01:00
Joe Farebrother
b6c584cb70
Update docs
2021-10-20 17:09:59 +01:00
Joe Farebrother
447e06d92a
Rename from SensitiveBroadcast to SensitiveCommmunication
2021-10-20 17:09:59 +01:00
Joe Farebrother
54e9c49080
Remove SendBroadcastMethodAccess
2021-10-20 17:09:59 +01:00
Joe Farebrother
e02be6cf93
Add additional sinks
2021-10-20 17:09:59 +01:00
Joe Farebrother
e616122982
Rename parameter
2021-10-20 17:09:59 +01:00
Joe Farebrother
fede77a934
Rename some utility methods
2021-10-20 17:09:59 +01:00
Joe Farebrother
069d6627b5
Improve sanitizers
2021-10-20 17:09:59 +01:00
Joe Farebrother
174ac3d6c3
Move to correct directory
2021-10-20 17:09:59 +01:00
Joe Farebrother
c3d1165c5f
Revert change to argument handling
2021-10-20 17:09:58 +01:00
Joe Farebrother
6a2346ec33
Clean up sink definition
2021-10-20 17:09:58 +01:00
Joe Farebrother
daf6ac2584
Update tests to InlineFlowTest
2021-10-20 17:09:58 +01:00
Joe Farebrother
52ca6b93e3
Make things private where possible
2021-10-20 17:09:58 +01:00
Joe Farebrother
351e67c639
Fix qhelp
2021-10-20 17:09:58 +01:00
Joe Farebrother
06a30bf822
Add change note
2021-10-20 17:09:58 +01:00
Joe Farebrother
b112189530
Update docs
2021-10-20 17:09:58 +01:00
Joe Farebrother
224d679722
Add Sticky broadcast sinks
2021-10-20 17:09:57 +01:00
Joe Farebrother
ef7125e21a
Simplify sink definitions using local flow
2021-10-20 17:09:57 +01:00
Joe Farebrother
d7c7776495
Add additional models; fix up tests
2021-10-20 17:09:57 +01:00
Joe Farebrother
ae461bcfe4
Switch to inline expectations tests
2021-10-20 17:09:57 +01:00
Joe Farebrother
4012866c6f
Allow arbitrary read steps at the sink
2021-10-20 17:09:57 +01:00
Joe Farebrother
bae0da8851
Remove existing get methods
2021-10-20 17:09:57 +01:00
Joe Farebrother
1e8dd7ae40
Use subclasses of context for sinks
2021-10-20 17:09:57 +01:00
Joe Farebrother
143920efca
Movee query logic to a qll file
2021-10-20 17:09:57 +01:00
Joe Farebrother
c68a7077d7
Move query and tests out of experimental
2021-10-20 17:09:56 +01:00
Rasmus Wriedt Larsen
8167e83ae5
Python: Fix tests
2021-10-20 17:58:03 +02:00
Jonathan Leitschuh
cce3aad62e
Remove non-ASCII characters from Handler.java
...
Signed-off-by: Jonathan Leitschuh <Jonathan.Leitschuh@gmail.com >
2021-10-20 11:34:59 -04:00
Rasmus Wriedt Larsen
d0fd907582
Python: Add change-note
...
I reworded this slightly from what was done in C++, such that I can
completely stand behind what it says.
2021-10-20 17:03:55 +02:00
Rasmus Wriedt Larsen
8f28684d10
Python: Rename ExtractionErrors.ql -> ExtractionWarnings.ql
2021-10-20 17:01:33 +02:00
Rasmus Wriedt Larsen
605494c3d1
Python: Treat SyntaxErrors as warnings in diagnostics
...
Rename going to happen in second commit, so git doesn't get too confused
I don't actually recall where to lookup that warning is 1, and error is
2, but I took this from
https://github.com/github/codeql/pull/6830/files#diff-460fc20823ced3b074784db804f2d4d6cfcad4f23fe5d264dc7496c782629a2eR121-R123
2021-10-20 16:59:00 +02:00
Arthur Baars
62d25b6e12
Merge pull request #373 from github/aibaars/warn-ruby-beta
...
Ruby: warn that Ruby is still in Beta
2021-10-20 16:14:29 +02:00
Arthur Baars
74ba532a8b
Ruby: warn that Ruby is still in Beta
2021-10-20 15:59:26 +02:00
Mathias Vorreiter Pedersen
7feab27bf4
Merge pull request #6926 from geoffw0/setliterals2
...
C++: Use set literals (more).
2021-10-20 14:58:06 +01:00
Arthur Baars
630ee17613
Ruby: sync-files and add allowParameterReturnInSelf()
2021-10-20 15:39:46 +02:00
Arthur Baars
0bec8987b6
Merge remote-tracking branch 'codeql/main' into 'main'
2021-10-20 15:38:59 +02:00
Geoffrey White
da412178ce
C++: Use set literals (more).
2021-10-20 14:18:27 +01:00
Harry Maclean
356828cd51
Update stored XSS fixture
...
The change to `self` modelling finds more true positives in this query.
2021-10-20 13:30:51 +01:00
Nick Rolfe
16c62d22de
Add change-note for rb/path-injection
2021-10-20 13:19:49 +01:00
Nick Rolfe
e367832637
Import Frameworks.qll in Summaries module
2021-10-20 13:11:50 +01:00
hubwriter
8f15dc4bd0
Add 'requires glibc 2.17' in supported languages table
2021-10-20 12:48:20 +01:00
Nick Rolfe
86da3c2db3
Add rb/path-injection query
2021-10-20 12:31:16 +01:00
Tom Hvitved
19589bef27
Merge pull request #6777 from hvitved/dataflow/summary-clear-modelling
...
Data flow: Rework `SummarizedCallable::clearsContent/2`
2021-10-20 13:23:56 +02:00
Ian Lynagh
25b5601da9
Java: Add a changenote to RefType -> ClassOrInterface
2021-10-20 12:21:08 +01:00
Ian Lynagh
25fcae1c51
Java: Make some types more specific
...
Where we used to use RefType, we now use ClassOrInterface.
2021-10-20 12:18:20 +01:00
hubwriter
aaa5046533
Add beta note to page Calum added
2021-10-20 11:17:38 +01:00
Asger Feldthaus
fa0ce5380b
JS: Skip files with unsupported file encoding
2021-10-20 12:16:50 +02:00
Tom Hvitved
f9fb046e9f
C#: Update expected test output after rebase
2021-10-20 12:15:27 +02:00
Tom Hvitved
29cdc8a49a
Java: Update expected test output after rebase
2021-10-20 12:11:59 +02:00
hubwriter
dd31d5ffb3
Merge branch 'main' into hubwriter/codeql-ruby-support
2021-10-20 11:08:59 +01:00
Tom Hvitved
0bf5238f39
Update QL doc for allowParameterReturnInSelf
2021-10-20 12:08:58 +02:00
Tom Hvitved
53d4d72fe5
C#: Simplify SummarizedCallableDefaultClearsContent
2021-10-20 12:08:58 +02:00
Tom Hvitved
dd138b0429
Address review comments
2021-10-20 12:08:58 +02:00
Tom Hvitved
ec5d8ab2db
Java: Restrict use-use flow
2021-10-20 12:08:57 +02:00
Tom Hvitved
a1511e13d8
Data flow: Sync files
2021-10-20 12:08:57 +02:00
Tom Hvitved
1196d0c624
C#: Rework SummarizedCallable::clearsContent/2
2021-10-20 12:08:57 +02:00
Calum Grant
ed73d9bab4
Merge pull request #6860 from github/ruby-docs
...
Ruby documentation
2021-10-20 10:47:05 +01:00
Tom Hvitved
f1f7930529
Make all self nodes LocalSourceNodes
2021-10-20 11:43:50 +02:00
Tom Hvitved
94f0f8daf2
Make SelfVariableAccess a sub type of LocalVariableAccess
2021-10-20 11:43:44 +02:00
Harry Maclean
e0b2d88377
Remove redundant import
2021-10-20 10:41:17 +01:00
Harry Maclean
c437fd50a4
Update test fixtures
...
Some of these look a bit suspicious, so need to double check them before
merging.
2021-10-20 10:39:36 +01:00
Harry Maclean
c71f538a5a
Extend the scope of self variables
...
`self` variables are scoped to methods, modules, classes and the
top-level of the program. Prior to this change, they were treated as
being scoped just to methods.
This change means we (once again) correctly synthesise `self` receivers
for method calls in class bodies, module bodies and at the top-level.
2021-10-20 09:43:23 +01:00
Harry Maclean
647485acde
Don't omit self from uninitialized writes
...
We can safely create uninitialized writes for `self` variables, because
they appear at index -1 in the entry block of a method, and are
immediately overwritten by a write to `self` at index 0. As a result,
they are not live and will be pruned from the CFG.
2021-10-20 09:43:22 +01:00
Tom Hvitved
446eb13471
Minor adjustments to SSA library for self variables
2021-10-20 09:43:21 +01:00
Harry Maclean
0d39a15786
Model implicit reads of self variables
...
We already synthesise `self` nodes for method calls with no receiver.
This change creates read accesses for each of these synthesised nodes.
2021-10-20 09:43:20 +01:00
Harry Maclean
e7a3050fb2
Improve the modelling of self variables.
...
We model `self` variables by inserting a write at the start of every
method body. We then treat them as local variables that are alive for
the extent of the method body.
2021-10-20 09:43:19 +01:00
Tamás Vajk
9331b3538d
Merge pull request #6914 from tamasvajk/feature/improve-csv-pr-commenter
...
Introduce foldable region in CSV coverage PR comments
2021-10-20 08:45:55 +02:00
Ian Lynagh
9fbff1b4c1
Java: Add an upgrade script
2021-10-20 00:34:47 +01:00
Jonathan Leitschuh
d4b18fe6a3
[Java] JDK Collection lambda models
...
Adds support for data flow tracking through simple JDK collection
functional APIs.
- `Iterable::forEach`
- `Iterator::forEachRemaining`
- `Map::forEach`
Replaces #5871
Signed-off-by: Jonathan Leitschuh <Jonathan.Leitschuh@gmail.com >
2021-10-19 15:57:58 -04:00
Ian Lynagh
90299033d1
Java: Replace @type with more specific types
2021-10-19 20:23:53 +01:00
Jonathan Leitschuh
584c27a2f8
Move CollectionPassingTest to correct directory
2021-10-19 11:44:12 -04:00
Jonathan Leitschuh
8231907116
Ratpack code cleanup from code review
2021-10-19 11:42:35 -04:00
Calum Grant
112d408fb9
Address review comments.
2021-10-19 16:30:54 +01:00
Chris Smowton
233a3346a8
Merge pull request #6240 from haby0/java/UnsafeUrlForward
...
[Java] CWE-552: Unsafe url forward
2021-10-19 16:18:23 +01:00
Jonas Jensen
7015be7cad
Merge pull request #6916 from geoffw0/fixnotbound
...
C++: Fix unbound variables in PrivateCleartextWrite.qll.
2021-10-19 16:46:42 +02:00
Geoffrey White
38257a58f0
C++: Fix unbound variables in PrivateCleartextWrite.qll.
2021-10-19 15:01:32 +01:00
Tom Hvitved
3f396ac10e
Merge pull request #371 from github/hvitved/dataflow/arg-sugar
...
Data flow: Fix bug for sugared call arguments
2021-10-19 15:48:21 +02:00
Chris Smowton
057d0fb7e0
Rewrite query to use shared StringPrefixes library
2021-10-19 14:45:38 +01:00
Tamás Vajk
12d7f0c9e2
Merge pull request #6913 from tamasvajk/feature/improve-stubbing
...
C#: Remove cartesian product in stubbing (GeneratedType::getStub)
2021-10-19 15:13:26 +02:00
Chris Smowton
8a4fa0a7e2
Copyedit
2021-10-19 12:50:17 +01:00
haby0
9d9a7abd06
Fix
2021-10-19 12:50:03 +01:00
haby0
283376eb19
Modify the model
2021-10-19 12:49:08 +01:00
haby0
679652e63a
Modify Sanitizer
2021-10-19 12:49:08 +01:00
haby0
952b34a163
Eliminate FP
2021-10-19 12:49:08 +01:00
haby0
d0eec1e381
Add CWE-552-UnsafeUrlForward
2021-10-19 12:49:07 +01:00
Tamas Vajk
70ffbae091
Introduce foldable region in CSV coverage PR comments
2021-10-19 13:34:25 +02:00
Anders Schack-Mulligen
662852bd1d
Merge pull request #6859 from smowton/smowton/admin/factor-string-prefix
...
Java: Factor out string prefix logic
2021-10-19 13:32:52 +02:00
Arthur Baars
db1be380ea
Merge pull request #372 from github/aibaars/codeqlmanifest
...
Add reference to nested .codeqlmanifest.json
2021-10-19 13:25:30 +02:00
Arthur Baars
c604825fdd
Add reference to nested .codeqlmanifest.json
2021-10-19 13:14:45 +02:00
Henry Mercer
548a344d34
JS: Implement suggestions from review
...
Co-authored-by: Andrew Eisenberg <aeisenberg@github.com >
2021-10-19 12:00:40 +01:00
Tamas Vajk
c7c35401e0
C#: Remove cartesian product in stubbing (GeneratedType::getStub)
2021-10-19 12:56:23 +02:00
Chris Smowton
d46b897492
Add explicit this
2021-10-19 11:32:24 +01:00
Chris Smowton
beaa1cffd2
Make import private
2021-10-19 11:28:56 +01:00
Chris Smowton
3bf9abb4ce
Avoid ambiguous term 'successor'.
2021-10-19 11:28:56 +01:00
Chris Smowton
0d66cebfba
Autoformat
2021-10-19 11:28:56 +01:00
Chris Smowton
3c25301593
Extend documentation
2021-10-19 11:28:55 +01:00
Chris Smowton
d0d17e3b84
Make import private
2021-10-19 11:28:55 +01:00
Chris Smowton
b71920209e
Factor out string prefix logic
2021-10-19 11:28:54 +01:00
Anders Schack-Mulligen
b975e12f41
Merge pull request #6912 from aschackmull/java/minor-perf-fix
...
Java: Fix bad join-order.
2021-10-19 12:13:26 +02:00
Rasmus Wriedt Larsen
386c7e3a12
Python: Add missing pragma[noinline]
2021-10-19 11:55:51 +02:00
Rasmus Wriedt Larsen
b0af805460
Merge pull request #6899 from thepurpleowl/patch-1
...
Python SignatureOverriddenMethod: Rmv duplicate condition
2021-10-19 11:24:01 +02:00
Anders Schack-Mulligen
90a50e7ca9
Java: Fix bad join-order.
2021-10-19 10:55:52 +02:00
Anders Schack-Mulligen
6508afe824
Merge pull request #6900 from Marcono1234/marcono1234/MemberRefExpr-receiver-type
...
Java: Add `MemberRefExpr.getReceiverType()`
2021-10-19 10:49:15 +02:00
hubwriter
6f34735f64
Update docs/codeql/writing-codeql-queries/creating-path-queries.rst
2021-10-19 09:27:54 +01:00
Arthur Baars
fc546d63ca
Merge remote-tracking branch 'codeql/rc/3.3' into 'rc/3.3'
2021-10-19 09:52:24 +02:00
Jonathan Leitschuh
db2892b9ea
Resove taint tracking issues from asMultimap
...
Signed-off-by: Jonathan Leitschuh <Jonathan.Leitschuh@gmail.com >
2021-10-18 14:30:46 -04:00
Henry Mercer
4d7a8285ad
JS: Initial commit of Adaptive Threat Modeling
2021-10-18 17:24:24 +01:00
Jonathan Leitschuh
5a2bdc9a0f
Jackson taint tracking of elements
...
Signed-off-by: Jonathan Leitschuh <Jonathan.Leitschuh@gmail.com >
2021-10-18 12:21:11 -04:00
Jonathan Leitschuh
8fecc158ff
Add support for Map.forEach
...
Signed-off-by: Jonathan Leitschuh <Jonathan.Leitschuh@gmail.com >
2021-10-18 12:21:11 -04:00
Jonathan Leitschuh
23e60e2c52
Add full integration test for Ratpack example
...
Signed-off-by: Jonathan Leitschuh <Jonathan.Leitschuh@gmail.com >
2021-10-18 12:21:11 -04:00
Jonathan Leitschuh
ebbbda70c0
Ratpack tests all passing
...
Signed-off-by: Jonathan Leitschuh <Jonathan.Leitschuh@gmail.com >
2021-10-18 12:21:11 -04:00
Jonathan Leitschuh
fe374f5e9c
Ratpack: Add support for Promise::apply
...
Signed-off-by: Jonathan Leitschuh <Jonathan.Leitschuh@gmail.com >
2021-10-18 12:21:10 -04:00
Jonathan Leitschuh
6562ac3680
Ratpack conversion to new lambda model
...
Signed-off-by: Jonathan Leitschuh <Jonathan.Leitschuh@gmail.com >
2021-10-18 12:21:10 -04:00
Jonathan Leitschuh
4f90f0a748
Begin refactoring Ratpack to use functional taint tracking
...
Signed-off-by: Jonathan Leitschuh <Jonathan.Leitschuh@gmail.com >
2021-10-18 12:21:10 -04:00
Jonathan Leitschuh
6497a61c1d
Ratpack: Drop support for flatMap like methods
2021-10-18 12:21:10 -04:00
Jonathan Leitschuh
af90b00e63
Ratpack: Release note and typo fix
2021-10-18 12:21:10 -04:00
Jonathan Leitschuh
901631ceb8
Ratpack Promise add support for apply method
2021-10-18 12:21:10 -04:00
Jonathan Leitschuh
b9dc3d0cfe
Ratpack: Better support for Promise API
2021-10-18 12:21:09 -04:00
Jonathan Leitschuh
cdfdcc66bd
Ratpack fix formatting and non-ascii characters
2021-10-18 12:21:09 -04:00
Jonathan Leitschuh
a3b1736a73
Ratpack improve support for parsing types
2021-10-18 12:21:09 -04:00
Jonathan Leitschuh
ac185d9bd5
Remove RatpackGetRequestDataMethod
2021-10-18 12:21:09 -04:00
Jonathan Leitschuh
563e5690df
Refactor Ratpack to use CSV format
2021-10-18 12:21:09 -04:00
Jonathan Leitschuh
4f658df0ac
Apply suggestions from code review
...
Co-authored-by: intrigus-lgtm <60750685+intrigus-lgtm@users.noreply.github.com >
2021-10-18 12:21:09 -04:00
Jonathan Leitschuh
18c74c5030
Simplify Ratpack API using standard abstract classes
2021-10-18 12:21:08 -04:00
Jonathan Leitschuh
b2e3df29b3
Add support for Promise.value and Promise::flatMap
2021-10-18 12:21:08 -04:00
Jonathan Leitschuh
b2ad128beb
Refactors Ratpack lambda taint tracking to use generic API
2021-10-18 12:21:08 -04:00
Jonathan Leitschuh
170657b9a4
Add additional Ratpack test and improve Promise based dataflow tracking
2021-10-18 12:21:08 -04:00
Jonathan Leitschuh
dabf00e8b4
Add Tests to Ratpack Framework Support
2021-10-18 12:21:08 -04:00
Jonathan Leitschuh
f5c3723a99
Java: Simple support for Ratpack HTTP Framework
2021-10-18 12:21:08 -04:00
Marcono1234
86d53931aa
Java: Improve MemberRefExpr.getReceiverType() documentation
2021-10-18 18:20:22 +02:00
Geoffrey White
3f3c79f48f
Merge pull request #6884 from geoffw0/setliterals
...
Replace or chains with set literals.
2021-10-18 16:46:55 +01:00
Shati Patel
702c647556
Merge pull request #6904 from shati-patel/ruby-query-help
...
Docs: Add Ruby to query help pages
2021-10-18 16:13:50 +01:00
Anders Schack-Mulligen
b67032d1cc
Merge pull request #6891 from erik-krogh/fix-java-this
...
add explicit this qualifier on all of java
2021-10-18 17:13:37 +02:00
Tom Hvitved
c57b7c5b2b
Data flow: Restrict ExprReturnNode to nodes from the body of the callable
2021-10-18 17:01:30 +02:00
Tom Hvitved
a10bde5795
Merge pull request #6872 from hvitved/dataflow/path-into-callable0-join
...
Data flow: Performance tweaks
2021-10-18 16:25:10 +02:00
Taus
8e68eae83d
Merge pull request #5463 from jorgectf/jorgectf/python/headerInjection
...
Python: Add Header Injection query
2021-10-18 15:16:14 +02:00
Tom Hvitved
e6954292aa
Address review comments
2021-10-18 14:09:44 +02:00
Anders Schack-Mulligen
91ea064980
Sync
2021-10-18 14:04:50 +02:00
Anders Schack-Mulligen
df9836cce0
Work around compiler bug.
2021-10-18 14:04:16 +02:00
Tom Hvitved
397b8345e0
Data flow: Fix bug for sugared call arguments
2021-10-18 13:48:11 +02:00
Tom Hvitved
0de27bbc7e
Data flow: Add ArgumentNode test
2021-10-18 13:47:50 +02:00
Jonas Jensen
493a37ba5e
Merge pull request #6903 from MathiasVP/remove-implicit-this-for-cpp
...
C++: Remove uses of implicit `this`
2021-10-18 13:41:30 +02:00
Ian Lynagh
9371737331
Merge pull request #6894 from igfoo/igfoo/exprs
...
Java: Don't use dbscheme tables in CloseType.qll
2021-10-18 12:04:11 +01:00
shati-patel
b9ede183b0
Docs: Add Ruby to query help pages
2021-10-18 11:48:24 +01:00
Nick Rolfe
51cab94cb0
Merge pull request #370 from github/shati-patel/ruby-docs
...
Move queries.xml to `src`
2021-10-18 11:35:36 +01:00
shati-patel
83a1260769
Move queries.xml to src
2021-10-18 11:18:00 +01:00
Ian Lynagh
54d2028920
Update java/ql/src/Likely Bugs/Resource Leaks/CloseType.qll
...
Co-authored-by: Chris Smowton <smowton@github.com >
2021-10-18 10:12:01 +01:00
Mathias Vorreiter Pedersen
ea67ca22a9
C++: Undo changes to shared dataflow files.
2021-10-18 09:00:00 +01:00
Tony Torralba
5216bbab93
Merge pull request #6835 from atorralba/atorralba/fix-local-and-remote-flow-tests
...
Java: Use InlineExpectationsTest for local and remote flow tests
2021-10-18 09:33:57 +02:00
Tom Hvitved
47ae76fb7d
Merge pull request #6890 from hvitved/csharp/nullable-default-param
...
C#: Handle `Nullable<T>` default parameter values in assemblies
2021-10-18 08:55:02 +02:00
Tony Torralba
e3b46f25a5
Merge branch 'main' into atorralba/fix-local-and-remote-flow-tests
2021-10-18 08:52:37 +02:00
Marcono1234
43b7bc52ca
Java: Add MemberRefExpr.getReceiverType()
2021-10-18 00:26:19 +02:00
Mathias Vorreiter Pedersen
af6a21f5d9
Merge pull request #6893 from geoffw0/nullterm
...
C++: Disable the two null termination queries enabled by 6794.
2021-10-17 22:14:10 +01:00
Surya Prakash Sahu
2871bdb206
Python SignatureOverriddenMethod: Rmv duplicate condition
2021-10-17 18:04:20 +05:30
jorgectf
271e2e4c49
Update .expected
2021-10-16 13:12:33 +02:00
jorgectf
14c50e993b
Add django GET.get RFS
2021-10-16 13:10:48 +02:00
jorgectf
45146bc798
Merge branch 'main' into jorgectf/python/headerInjection
2021-10-16 12:46:57 +02:00
jorgectf
bf76d9cd8b
Fix django test
2021-10-16 10:45:25 +02:00
jorgectf
2db1ffef1e
Merge remote-tracking branch 'origin/main' into jorgectf/python/headerInjection
2021-10-16 10:40:52 +02:00
Edoardo Pirovano
0e01b91c7e
Language reference: Fix when trailing commas are allowed
2021-10-16 08:57:26 +01:00
Arthur Baars
e26cf7c354
Merge pull request #369 from github/rc/3.3
...
Merge 3.3 into main
2021-10-15 23:04:12 +02:00
Arthur Baars
9b88bbdd04
Merge pull request #367 from github/shati-patel/queriesxml
...
Add a queries.xml file (for CWE coverage docs)
2021-10-15 20:50:21 +02:00
shati-patel
c37cf71766
Add a queries.xml file (for CWE coverage) docs
2021-10-15 20:33:16 +02:00
Ian Lynagh
e485a16993
Java: Don't use dbscheme tables in CloseType.qll
2021-10-15 18:39:42 +01:00
Calum Grant
5861fcf443
Address review comment
2021-10-15 18:07:18 +01:00
Calum Grant
42c5af3cdf
Update docs/codeql/codeql-language-guides/codeql-library-for-ruby.rst
...
Co-authored-by: hubwriter <hubwriter@github.com >
2021-10-15 18:03:12 +01:00
Calum Grant
87adcc2e6b
Update docs/codeql/codeql-language-guides/codeql-library-for-ruby.rst
...
Co-authored-by: hubwriter <hubwriter@github.com >
2021-10-15 18:03:04 +01:00
Calum Grant
5265ed6b64
Update docs/codeql/codeql-language-guides/codeql-library-for-ruby.rst
...
Co-authored-by: hubwriter <hubwriter@github.com >
2021-10-15 18:02:54 +01:00
Calum Grant
bf5cc212e1
Update docs/codeql/codeql-language-guides/codeql-library-for-ruby.rst
...
Co-authored-by: hubwriter <hubwriter@github.com >
2021-10-15 18:02:40 +01:00
Calum Grant
48077a5757
Update docs/codeql/codeql-language-guides/codeql-library-for-ruby.rst
...
Co-authored-by: hubwriter <hubwriter@github.com >
2021-10-15 18:02:32 +01:00
Calum Grant
86c5b5d944
Update docs/codeql/codeql-language-guides/codeql-library-for-ruby.rst
...
Co-authored-by: hubwriter <hubwriter@github.com >
2021-10-15 18:02:20 +01:00
Calum Grant
579753b0fc
Update docs/codeql/codeql-language-guides/codeql-library-for-ruby.rst
...
Co-authored-by: hubwriter <hubwriter@github.com >
2021-10-15 18:02:09 +01:00
Calum Grant
2d61519ec6
Update docs/codeql/codeql-language-guides/basic-query-for-ruby-code.rst
...
Co-authored-by: hubwriter <hubwriter@github.com >
2021-10-15 18:01:56 +01:00
Geoffrey White
f38dade578
C++: Disable the two null termination queries enabled by 6794.
2021-10-15 17:39:12 +01:00
Nick Rolfe
8469a535e3
Merge pull request #366 from github/merge-3.3-main-1
...
Merge 3.3 into main
2021-10-15 17:18:39 +01:00
Arthur Baars
804aef9b4a
Merge remote-tracking branch 'codeql/main' into 'main'
...
Conflicts:
config/identical-files.json
2021-10-15 16:37:59 +02:00
Arthur Baars
0e7b1f516c
Merge remote-tracking branch 'origin/rc/3.3' into 'main'
2021-10-15 16:36:09 +02:00
Arthur Baars
3cb9a4921d
Merge pull request #363 from github/codeql-merge
...
Merge `github/codeql` into rc/3.3
2021-10-15 16:17:20 +02:00
Arthur Baars
f296cc7860
Merge pull request #362 from github/merge-3.3-main
...
Merge 3.3 into main
2021-10-15 16:01:56 +02:00
Erik Krogh Kristensen
fe891746bf
C++: fix implicit this
2021-10-15 14:59:48 +01:00
Arthur Baars
568872a2f5
Add ruby to CODEOWNERS
2021-10-15 15:38:16 +02:00
Arthur Baars
103d9420d2
Update CodeSpaces configuration
2021-10-15 15:38:16 +02:00
Arthur Baars
5cd9b9cfc5
Remove github/codeql submodule
2021-10-15 15:38:16 +02:00
Arthur Baars
5a16f1e093
Merge identical-files.json
2021-10-15 15:38:16 +02:00
Geoffrey White
a0e501c3a9
Sync identical files.
2021-10-15 14:34:02 +01:00
Arthur Baars
56953f5d5d
Merge commit 'codeql-ruby/rc/3.3' into codeql/rc/3.3
2021-10-15 15:33:47 +02:00
Erik Krogh Kristensen
caeeebf572
add explicit this qualifier on all of java
2021-10-15 15:27:37 +02:00
Arthur Baars
ceecb23118
Merge remote-tracking branch 'rc/3.3' into 'main'
2021-10-15 15:21:48 +02:00
Arthur Baars
2444f6e7eb
Merge pull request #361 from github/prepare-merge
...
Prepare merge into github/codeql
2021-10-15 15:07:35 +02:00
Tom Hvitved
888a1b38aa
C#: Handle Nullable<T> default parameter values in assemblies
2021-10-15 14:23:18 +02:00
Arthur Baars
472fe0064f
Update dependabot config
2021-10-15 14:20:07 +02:00
Arthur Baars
a9ba13c557
Drop LICENSE and CODE_OF_CONDUCT.md
2021-10-15 14:20:07 +02:00
Arthur Baars
21373c43eb
Add change note
2021-10-15 14:20:07 +02:00
Arthur Baars
c66bf38f8d
Update Ruby workflows
2021-10-15 14:20:07 +02:00
Arthur Baars
393800e4b9
Move create-extractor-pack Action
2021-10-15 11:47:57 +02:00
Arthur Baars
c815178f31
Remove CodeSpaces configuration
2021-10-15 11:47:56 +02:00
Arthur Baars
976daddd36
Move files to ruby subfolder
2021-10-15 11:47:28 +02:00
Taus
b2e4276bc8
Merge pull request #6886 from aschackmull/java-python/perffix-transitive-step-x3
...
Java/Python: Fix some potential performance problems due to transitive deltas.
2021-10-15 11:06:35 +02:00
Tom Hvitved
86b1305e35
Merge pull request #6883 from hvitved/csharp/inline-expectations
...
C#: Adopt inline test expectations framework
2021-10-15 09:33:22 +02:00
Anders Schack-Mulligen
4de1deefc4
Merge pull request #6889 from tausbn/java-fix-import-order
...
Java: Fix import order in `SignAnalysisSpecific`
2021-10-15 09:17:50 +02:00
Anders Schack-Mulligen
0b82289950
Merge pull request #6828 from zbazztian/adjust-jsp-locations
...
Adjust locations of results in JSP files
2021-10-15 08:28:11 +02:00
hubwriter
4f247bab4e
Add Ruby to language table
2021-10-14 17:13:42 +01:00
Taus
a9c5fd2cc0
Java: Fix import order in SignAnalysisSpecific
2021-10-14 15:51:56 +00:00
Geoffrey White
8f30b8b586
Autoformat.
2021-10-14 16:00:23 +01:00
Anders Schack-Mulligen
eb0a88d39c
Merge pull request #6885 from aschackmull/java/perffix-transitve-step
...
Java: Fix performance problem due to transitive step.
2021-10-14 16:51:51 +02:00
hubwriter
75066813ee
Add more Ruby refs as per CD plan
2021-10-14 15:51:28 +01:00
Anders Schack-Mulligen
f6a517c998
Merge pull request #6882 from MathiasVP/fix-unnecessary-exists
...
C++/Python: Remove unnecessary `exists`
2021-10-14 16:44:05 +02:00
Anders Schack-Mulligen
310eec07c1
Java/Python: Fix some potential performance problems due to transitive deltas.
2021-10-14 16:10:00 +02:00
Anders Schack-Mulligen
cb5f2559ea
Java: Fix performance problem due to transitive step.
2021-10-14 15:54:54 +02:00
Geoffrey White
f08d2ee759
Merge branch 'main' into setliterals
2021-10-14 14:39:39 +01:00
Geoffrey White
9d63efe495
Python: Set literals.
2021-10-14 14:22:44 +01:00
Geoffrey White
b9cce57db4
JS: Fix mistake.
2021-10-14 14:22:43 +01:00
Geoffrey White
882adc8e50
JS: Set literals.
2021-10-14 14:22:42 +01:00
Geoffrey White
a82c76d2f9
Java: Set literals.
2021-10-14 14:22:40 +01:00
Geoffrey White
3983587682
C#: Set literals.
2021-10-14 14:22:39 +01:00
Tom Hvitved
083214f85a
C#: Use inline test expectations for FieldFlow.ql
2021-10-14 15:22:21 +02:00
Tom Hvitved
ed6a182cd1
C#: Adopt inline test expectations framework
2021-10-14 15:22:21 +02:00
Anders Schack-Mulligen
8b6baa250c
Merge pull request #6878 from aschackmull/remove-singleton-setliteral
...
C++/C#/Java/JavaScript/Python: Remove singleton set literals.
2021-10-14 14:53:05 +02:00
Rasmus Wriedt Larsen
7cd5e681dd
Merge pull request #6693 from yoff/python/promote-regex-injection
...
Python: Promote `py/regex-injection`
2021-10-14 14:49:05 +02:00
Mathias Vorreiter Pedersen
47a85bbb1d
Merge pull request #6869 from MathiasVP/fix-prefix/suffix-equality
...
Java/JS/Python: Replace '.prefix'/'.suffix' with '.matches'
2021-10-14 13:47:03 +01:00
Rasmus Wriedt Larsen
a5ab0b9100
Merge pull request #6871 from tausbn/python-fix-uses-of-implicit-this
...
Python: Fix uses of "implicit `this`"
2021-10-14 14:38:13 +02:00
Tom Hvitved
3acd718876
Merge pull request #360 from github/bump-codeql
...
Bump `codeql` submodule
2021-10-14 14:00:57 +02:00
Tom Hvitved
b12561865a
Bump codeql submodule
2021-10-14 13:41:48 +02:00
Nick Rolfe
1920cd1c7e
Merge pull request #359 from github/explicit_this
...
Add explicit `this` qualifiers in generated code
2021-10-14 12:40:09 +01:00
Anders Schack-Mulligen
10d6803b05
Merge pull request #6880 from hvitved/csharp/explicit-this
...
C#: Add explicit `this` qualifiers
2021-10-14 13:31:04 +02:00
Mathias Vorreiter Pedersen
8049d3f738
Python: Remove unnecessary 'exists'.
2021-10-14 12:02:57 +01:00
Mathias Vorreiter Pedersen
69ed7c543f
C++: Remove unnecessary 'exists'.
2021-10-14 11:59:59 +01:00
Nick Rolfe
ec91111848
Add explicit this qualifiers in generated code
2021-10-14 11:53:27 +01:00
Tom Hvitved
dde054d5a7
Merge pull request #357 from github/erik-krogh/fix-implicit-this
...
Add explicit `this` qualifiers
2021-10-14 12:00:58 +02:00
Tom Hvitved
f5420333e2
Sync shared files
2021-10-14 11:49:02 +02:00
Tom Hvitved
3dc09a3cda
Revert changes to shared/generated files
2021-10-14 11:42:05 +02:00
Anders Schack-Mulligen
57cb300759
C++/C#/Java/JavaScript/Python: Remove singleton set literals.
2021-10-14 11:34:22 +02:00
Erik Krogh Kristensen
a358a192c4
add explicit this to all calls to class predicates
2021-10-14 10:11:55 +02:00
Erik Krogh Kristensen
cbd55f2299
add explicit this to all calls to class predicates
2021-10-14 10:10:00 +02:00
Mathias Vorreiter Pedersen
a2371370ff
Merge pull request #6865 from MathiasVP/fix-if-none
...
C++/C#/JS/Python: Replace 'if p() then q() else none()' with a conjunction
2021-10-13 19:47:55 +01:00
Mathias Vorreiter Pedersen
4991301f36
JS: Fix incorrect fix.
2021-10-13 19:45:02 +01:00
Tom Hvitved
c14dcfbfe4
Data flow: Sync
2021-10-13 20:13:28 +02:00
CodeQL CI
2b0415e238
Merge pull request #6741 from yoff/python/model-os-path-file-accesses
...
Approved by RasmusWL
2021-10-13 11:11:41 -07:00
Tom Hvitved
5be7a97a16
Data flow: Avoid unnecessary non-linear recursion via getConfiguration()
2021-10-13 20:10:26 +02:00
Tom Hvitved
ee44e742f6
Data flow: Avoid bad join-order in pathIntoCallable0
2021-10-13 20:09:43 +02:00
Arthur Baars
236643fc43
Merge pull request #356 from github/rc/3.3
...
Merge rc/3.3 into main
2021-10-13 19:21:36 +02:00
Arthur Baars
240b33f119
Merge pull request #355 from github/aeisenberg/bump-submodule
...
Bump codeql submodule
2021-10-13 18:50:25 +02:00
Andrew Eisenberg
ef8eff8c29
Bump codeql submodule
2021-10-13 09:30:52 -07:00
Andrew Eisenberg
878203f1d0
Merge pull request #6862 from github/aeisenberg/tutorial
...
Move tutorial directly into each qlpack
2021-10-13 09:29:37 -07:00
Tom Hvitved
1cf90858cc
Merge pull request #350 from github/hvitved/erb-get-a-child-stmt-perf
...
Speedup `ErbDirective::containsStmtStart`
2021-10-13 18:14:43 +02:00
Andrew Eisenberg
0d1632a5d2
Move tutorial directly into each qlpack
...
Previously, the tutorial was injected during build time. This is much
simpler.
2021-10-13 08:37:04 -07:00
Arthur Baars
5df728dd7d
Merge pull request #354 from github/hvitved/identical-files-fix
...
Remove "DataFlow2" section from `identical-files.json`
2021-10-13 17:20:40 +02:00
Geoffrey White
2e61ae244a
C++: Set literals.
2021-10-13 16:12:36 +01:00
Tom Hvitved
6b46aaaefb
Remove "DataFlow2" section from identical-files.json
2021-10-13 17:03:48 +02:00
Arthur Baars
893ca5a250
Merge pull request #353 from github/rc/3.3
...
Merge rc/3.3 into main
2021-10-13 16:33:42 +02:00
Arthur Baars
dc8399f13c
Merge pull request #352 from github/hvitved/dataflowimpl2-sync
...
Add missing `DataFlowImpl2.qll` entry to `identical-files.json`
2021-10-13 16:08:24 +02:00
Anders Schack-Mulligen
169cc75c88
Merge pull request #6840 from aschackmull/java/misc-perf
...
Java: Fix some performance issues.
2021-10-13 15:53:49 +02:00
Tom Hvitved
11792e17a9
Add missing DataFlowImpl2.qll entry to identical-files.json
2021-10-13 15:50:29 +02:00
Andrew Eisenberg
01819cdbde
Merge pull request #344 from github/aeisenberg/tutorial
2021-10-13 06:48:55 -07:00
Taus
a6115687aa
Python: More implicit this
2021-10-13 13:43:37 +00:00
Taus
a9c8163ab3
Python: Fix uses of implicit this
...
Quoting the style guide:
"14. _Always_ qualify _calls_ to predicates of the same class with
`this`."
2021-10-13 13:43:36 +00:00
Andrew Eisenberg
0e0441743b
Move tutorial directly into each qlpack
...
See also https://github.com/github/codeql/pull/6862
2021-10-13 15:28:17 +02:00
Arthur Baars
aa4d0021a8
Merge pull request #349 from github/aibaars/bump-codeql-main
...
Bump codeql submodule on main
2021-10-13 15:26:59 +02:00
Arthur Baars
078cebe822
Merge pull request #351 from github/aibaars/fix-broken-links
...
Update broken links
2021-10-13 15:25:23 +02:00
Philip Ginsbach
a204b7f3e7
Merge pull request #6866 from github/ginsbach/MoreInstanceofExtensions
...
more instanceof extensions
2021-10-13 14:21:50 +01:00
Jonas Jensen
c215838531
Merge pull request #6867 from nickrolfe/mergeback
...
Merge rc/3.3 into main
2021-10-13 15:19:18 +02:00
Mathias Vorreiter Pedersen
6ece3c2b46
Merge pull request #6870 from jbj/cp-fixes
...
C++: Fix potential Cartesian products
2021-10-13 14:15:33 +01:00
Arthur Baars
f4003406cf
Apply suggestions from code review
...
Co-authored-by: Tom Hvitved <hvitved@github.com >
2021-10-13 15:11:04 +02:00
Arthur Baars
112b7a8e27
Update broken links
2021-10-13 15:03:19 +02:00
Tom Hvitved
436f678c94
Speedup ErbDirective::containsStmtStart
2021-10-13 14:41:04 +02:00
Jonas Jensen
e80c1ad91f
C++: Fix resource-not-released-in-destructor CP
...
By moving a disjunct outside the scope of an `exists(Function f`
variable it doens't use, the code becomes clearer and can be optimized
better.
The CP in the QL code did not lead to a CP at evaluation time since the
optimizer was smart enough to compensate for it:
376161 ~37597630% {0} r1 = SCAN functions OUTPUT {}
1 ~0% {0} r2 = STREAM DEDUP r1
Before this change, the largest tuple count in `leakedInSameMethod` on
bitcoin/bitcoin was 2M. Now it's 400k.
2021-10-13 14:24:26 +02:00
Mathias Vorreiter Pedersen
a80860cdc6
Python: Replace '.prefix'/'.suffix' with '.matches'.
2021-10-13 13:23:12 +01:00
Mathias Vorreiter Pedersen
f3bb0a676e
JS: Replace '.prefix'/'.suffix' with '.matches'.
2021-10-13 13:23:07 +01:00
Mathias Vorreiter Pedersen
d85d009a54
Java: Replace '.prefix'/'.suffix' with '.matches'.
2021-10-13 13:19:06 +01:00
Jonas Jensen
955344e175
C++: Inline a predicate that contains CPs
...
The `overflows` predicate had quite severe Cartesian products. We didn't
see them in practice because magic saved us, but we can't rely on magic
in the future, so it seems better to inline this predicate.
Tuple counts and speed look good both before and after.
2021-10-13 14:11:47 +02:00
Philip Ginsbach
c9c0c7f24f
fix formatting
2021-10-13 13:10:37 +01:00
Arthur Baars
bf3d291a1c
Updates after codeql file sync
2021-10-13 13:24:20 +02:00
Arthur Baars
80ac05d5c6
Bump codeql submodule to 'main'
2021-10-13 13:24:08 +02:00
Alex Ford
0d72a51334
Merge pull request #342 from github/improve-xss-isAdditionalFlowStep
...
Improve `XSS::Shared::isAdditionalFlowStep` performance
2021-10-13 12:15:52 +01:00
Mathias Vorreiter Pedersen
bdc54bcda7
Python: Replace 'if p() then q() else none()' with a conjunction.
2021-10-13 12:13:55 +01:00
Mathias Vorreiter Pedersen
887849857d
JS: Replace 'if p() then q() else none()' with a conjunction.
2021-10-13 12:13:55 +01:00
Mathias Vorreiter Pedersen
7690625114
C#: Replace 'if p() then q() else none()' with a conjunction.
2021-10-13 12:11:50 +01:00
Mathias Vorreiter Pedersen
ba981c525b
C++: Replace 'if p() then q() else none()' with a conjunction.
2021-10-13 12:11:42 +01:00
Arthur Baars
6a18aa4e2a
Merge pull request #348 from github/rc/3.3
...
Merge rc/3.3 into main
2021-10-13 13:08:55 +02:00
Arthur Baars
287046e9b0
Merge pull request #346 from github/erik-krogh/fix-primary-class-typo
...
fix typo for getAPrimaryQlClass
2021-10-13 12:53:51 +02:00
Philip Ginsbach
6b9ddf1f65
Guard non-extending subtype of G::Guard
2021-10-13 11:44:22 +01:00
Philip Ginsbach
e3e741251f
ParameterNode non-extending subtype of ParameterNodeImpl
2021-10-13 11:42:41 +01:00
Philip Ginsbach
aa656f7542
ArgumentNode non-extending subtype of ArgumentNodeImpl
2021-10-13 11:41:40 +01:00
Philip Ginsbach
4a0aac8505
SuppressionScope non-extending subtype of SuppressionComment
2021-10-13 11:40:32 +01:00
Philip Ginsbach
d0ecabad19
DataFlowCall non-extending subtype of Call
2021-10-13 11:39:25 +01:00
Nick Rolfe
1c5dcecf1e
Update expected output to match getAPrimaryQlClass change
2021-10-13 12:39:13 +02:00
Erik Krogh Kristensen
e1675ff055
fix typo for getAPrimaryQlClass
2021-10-13 12:39:13 +02:00
Arthur Baars
d448e208ab
Merge pull request #347 from github/aibaars/bump-codeql
...
Bump codeql submodule to rc/3.3
2021-10-13 12:28:17 +02:00
Arthur Baars
8ef1af9de0
Bump codeql submodule to rc/3.3
2021-10-13 12:03:49 +02:00
Tom Hvitved
e2db11b31f
Performance improvements in XSS.qll
...
Various performance improvements to make sure that we never join methods
and calls (or variables and accesses) on only name (or file), but always
perform a multi-join on both values.
2021-10-13 11:53:49 +02:00
Calum Grant
59e4a6ff7b
Move file to correct location
2021-10-13 09:23:04 +01:00
Calum Grant
f575139180
Add Ruby to toctree
2021-10-13 09:10:46 +01:00
Anders Schack-Mulligen
d4fd8780e9
Merge pull request #6863 from github/workflow/coverage/update
...
Update CSV framework coverage reports
2021-10-13 08:58:18 +02:00
Anders Schack-Mulligen
306388a6bc
Update java/ql/src/Likely Bugs/Comparison/StringComparison.ql
2021-10-13 08:57:31 +02:00
github-actions[bot]
2f27a0c9f9
Add changed framework coverage reports
2021-10-13 00:09:35 +00:00
Andrew Eisenberg
8285878504
Merge pull request #6861 from github/aeisenberg/qlpack-defaultSuite
...
QlPacks: Add the defaultSuite to query packs that are missing it
2021-10-12 14:27:09 -07:00
Andrew Eisenberg
7a0437f159
Merge pull request #343 from github/aeisenberg/defaultSuite
...
Add defaultSuite
2021-10-12 14:26:35 -07:00
Andrew Eisenberg
d9ab13b43d
Update ql/src/qlpack.yml
...
Co-authored-by: Arthur Baars <aibaars@github.com >
2021-10-12 13:01:03 -07:00
Andrew Eisenberg
2fca1f57c6
Add defaultSuite
...
Also, change the dependencies to be in alignment with other standard qlpacks.
2021-10-12 21:57:53 +02:00
Arthur Baars
4e79d9fad6
Merge pull request #334 from github/RasmusWL/normalize-qlpack
...
Packaging: Normalize src/qlpack.yml
2021-10-12 21:56:31 +02:00
Alex Ford
ad5c1f9b32
ql format
2021-10-12 20:43:20 +01:00
Alex Ford
d7b5e4c779
update predicate visibility
2021-10-12 20:43:20 +01:00
Alex Ford
9083cda8df
improve XSS::Shared::isFlowFromHelperMethod performance
2021-10-12 20:43:20 +01:00
Alex Ford
9afc1f9275
split out isAdditionalXSSFlowStep components
2021-10-12 20:43:20 +01:00
Andrew Eisenberg
bbb2637bcc
QlPacks: Add the defaultSuite to query packs that are missing it
...
Also, change some examples pack names from `codeql-lang-examples` to
`codeql/lang-examples`. This doesn't affect behaviour since internally,
the legacy name is converted to the modern name.
2021-10-12 11:54:50 -07:00
Arthur Baars
bf139a09f9
Merge pull request #341 from github/rc/3.3
...
Rc/3.3 mergeback
2021-10-12 20:48:21 +02:00
Arthur Baars
8531174d30
Merge pull request #333 from github/hvitved/api-graphs-non-linear-rec
...
API graphs: Avoid non-linear recursion
2021-10-12 20:24:07 +02:00
Arthur Baars
80ebfed226
Merge pull request #336 from github/improve-getTemplateFile
...
Improve `RenderCall#getTemplateFile` performance and accuracy
2021-10-12 20:21:12 +02:00
Arthur Baars
06e91c1182
Merge pull request #322 from github/request-without-validation
...
rb/request-without-cert-validation
2021-10-12 20:19:11 +02:00
Arthur Baars
a78ee535a0
Merge pull request #340 from github/mergeback
...
Merge rc/3.3 into main
2021-10-12 20:16:59 +02:00
Rasmus Lerchedahl Petersen
83490e9a03
Python: update change note
2021-10-12 19:27:27 +02:00
Aditya Sharad
a517a05ca8
Merge pull request #6830 from github/henrymercer/report-extraction-errors-as-warnings
...
C++: Improve SARIF severity level reporting of extractor diagnostics
2021-10-12 09:59:27 -07:00
Nick Rolfe
ceef9762a7
Fix comment typo
...
Co-authored-by: Alex Ford <alexrford@users.noreply.github.com >
2021-10-12 17:45:34 +01:00
Arthur Baars
398ed4c0c9
Merge pull request #338 from github/aibaars/update-grammar
...
Update tree-sitter-ruby
2021-10-12 18:39:34 +02:00
Calum Grant
30a00b22c9
CodeQL library for Ruby
2021-10-12 17:33:09 +01:00
Arthur Baars
bb5da92577
Update src/unsupported_feature.rb with a feature that is still unsupported
2021-10-12 18:11:00 +02:00
Arthur Baars
8c9d3b88df
Update dbscheme stats
2021-10-12 17:48:59 +02:00
Arthur Baars
0dc3ea5ed1
Add test-cases for forward arguments and endless methods
2021-10-12 17:32:01 +02:00
Arthur Baars
e44064cda7
Add forward parameter/arguments to AST
2021-10-12 17:31:31 +02:00
Nick Rolfe
ecc9f07c50
Merge pull request #311 from github/nickrolfe/oj
...
Consider Oj.load a sink for unsafe deserialization
2021-10-12 16:17:08 +01:00
Alex Ford
e35ad020d5
ql format
2021-10-12 15:56:00 +01:00
Alex Ford
909cdacb1a
remove cast to StringlikeLiteral
2021-10-12 15:27:26 +01:00
Alex Ford
44499cab51
replace an abstract predicate
2021-10-12 15:27:10 +01:00
Anders Schack-Mulligen
0e5f89a03c
Merge pull request #6463 from smowton/smowton/admin/gson-unsafe-deserialization
...
Java: add Gson support to unsafe-deserialization query
2021-10-12 16:15:27 +02:00
Mathias Vorreiter Pedersen
6853f491f4
Merge pull request #6794 from geoffw0/impropnullfp
...
C++: Improvements to cpp/improper-null-termination
2021-10-12 14:47:02 +01:00
Tom Hvitved
10739b11ee
Merge pull request #6841 from hvitved/dataflow/incorrect-summary-chaining
...
Data flow: Add tests for missing summary flow
2021-10-12 15:44:21 +02:00
Rasmus Lerchedahl Petersen
6c108e43d9
Python: address review
2021-10-12 15:16:48 +02:00
Rasmus Lerchedahl Petersen
cf92e1eee7
Python: move getStringArgIndex
2021-10-12 15:11:00 +02:00
Chris Smowton
83c6406167
Update javadoc
2021-10-12 13:51:02 +01:00
Tom Hvitved
cc305ed766
Data flow: Sync
2021-10-12 14:37:33 +02:00
Tom Hvitved
296e268339
Apply suggestions from code review
...
Co-authored-by: Anders Schack-Mulligen <aschackmull@users.noreply.github.com >
2021-10-12 14:28:32 +02:00
Erik Krogh Kristensen
7d4266aea7
skip pipes and other special files when determining which files to extract
2021-10-12 14:06:41 +02:00
Chris Smowton
3c96e62be7
Remove duplicate declaration
2021-10-12 12:35:05 +01:00
Chris Smowton
8816aa1431
Improve Android stub fidelity to the point that all relevant tests work
...
Note these still aren't entirely mechanically generated stubs matching the real Android 9.
2021-10-12 12:35:05 +01:00
Chris Smowton
205b6fe6d7
Fix bad merge on Uri.java
2021-10-12 12:35:05 +01:00
Chris Smowton
5da392ebfe
Introduce TaintInheritingContent
2021-10-12 12:35:05 +01:00
Chris Smowton
1afc03b9b5
Remove redundant import
2021-10-12 12:35:05 +01:00
Chris Smowton
9e0b112f05
Remove now-unnecessary models and tests
2021-10-12 12:35:05 +01:00
Chris Smowton
490168fb05
Fix comments
2021-10-12 12:35:05 +01:00
Chris Smowton
1dffbcd0bd
Fix tests disrupted by re-modelling and stubbing Android 9:
...
* Account for changed dataflow graph shape using external flow
* Account for BaseBundle only existing as of Android 5
* Properly implement Parcelable, which we previously got away with due to a partial stub
* Restore an Android 11 function that had been added to the Android 9 Context class (I won't get into enforcing the difference in this PR)
2021-10-12 12:35:05 +01:00
Chris Smowton
81c0e66b1d
Add change note and update qhelp
2021-10-12 12:35:05 +01:00
Chris Smowton
fc0b18cf61
Add tests for Android flow steps
2021-10-12 12:35:05 +01:00
Chris Smowton
cd2c9e9ca3
Add Gson support to unsafe deserialization query
2021-10-12 12:35:04 +01:00
Anders Schack-Mulligen
6b4ca31783
Merge pull request #6849 from Marcono1234/marcono1234/improvements
...
Java: Serialization query improvements
2021-10-12 13:30:45 +02:00
Alex Ford
9640af0b8c
Merge pull request #339 from github/rc-workflows
...
enable actions workflows for rc branches
2021-10-12 12:23:47 +01:00
Alex Ford
f870c38e4c
enable actions workflows for rc branches
2021-10-12 10:47:27 +01:00
Alex Ford
48f3d48a11
add some test cases for checking against spurious flow into ERB templates
2021-10-12 10:37:22 +01:00
Arthur Baars
2a7f3fbfaf
Add upgrade script
2021-10-12 11:36:10 +02:00
Shati Patel
1c3239972c
Merge pull request #6854 from shati-patel/packaging-beta-note
...
Docs: Update beta note for packaging
2021-10-12 10:33:59 +01:00
Taus
75c4d6a8a0
Merge pull request #6650 from yoff/python-dataflow/init-time
...
Python: Import time dataflow
2021-10-12 11:31:03 +02:00
Rasmus Lerchedahl Petersen
61008fd3d0
Merge branch 'main' of github.com:github/codeql into python/promote-regex-injection
2021-10-12 11:28:12 +02:00
Rasmus Lerchedahl Petersen
b093aaaf27
Python: switch to type tracking
...
for tracking compiled regexes
2021-10-12 11:23:27 +02:00
yoff
43f7eede0b
Merge pull request #6182 from haby0/python/LogInjection
...
Python: CWE-117 Log injection
2021-10-12 10:54:45 +02:00
yoff
c007c9460c
Merge pull request #6843 from RasmusWL/dataflow-bool-expr
...
Python: Add data-flow for `x or y` and `x and y`
2021-10-12 10:40:54 +02:00
Rasmus Lerchedahl Petersen
f34d1ee997
Python: Update test expectation following rename
2021-10-12 10:36:18 +02:00
Tom Hvitved
97bbb12e06
Merge pull request #6838 from hvitved/csharp/enumerate-files-dir-not-found
...
C#: Make `GetCSharpArgsLogs` robust against log directory not existing
2021-10-12 10:00:27 +02:00
haby0
d52f95d24d
Auto Formatting
2021-10-12 09:36:44 +08:00
Nick Rolfe
8e14b6582d
Remove unused predicate
2021-10-11 18:15:41 +01:00
Mathias Vorreiter Pedersen
df8c399efb
Merge pull request #6710 from ihsinme/ihsinme-patch-70
...
CPP: Add query for CWE-1041 Use of Redundant Code
2021-10-11 17:17:01 +01:00
Alex Ford
7270fe0ee7
slightly limit viable template files from render calls
2021-10-11 17:12:08 +01:00
Alex Ford
cdfee1f27d
better RenderCall#getTemplateFile performance and accuracy
2021-10-11 16:46:10 +01:00
ihsinme
4334acb6f2
Update FindWrapperFunctions.qhelp
2021-10-11 18:40:03 +03:00
Tony Torralba
a8aa8e3bb4
Use InlineExpectationsTest directly
2021-10-11 16:38:20 +02:00
yoff
0629ce00de
Merge pull request #6214 from haby0/python/ClientSuppliedIpUsedInSecurityCheck
...
[Python] CWE-348: Client supplied ip used in security check
2021-10-11 16:38:04 +02:00
Geoffrey White
ac6acfb660
C++: Use data flow.
2021-10-11 15:36:00 +01:00
Owen Mansel-Chan
058a04f756
Merge pull request #6795 from owen-mc/inline-expectation-test-trivial-change
...
Change class name in InlineExpectationTest to avoid clash
2021-10-11 15:35:17 +01:00
shati-patel
c7fbddce54
Docs: Update beta note for packaging
2021-10-11 15:02:25 +01:00
Rasmus Wriedt Larsen
bca1cb141c
Packaging: Normalize src/qlpack.yml
...
Port of 4) from https://github.com/github/codeql/pull/6605
> Dependencies from query packs to other packs are always "*" since
these dependencies are always from source and we should get the
latest.
Compare with [C++ change](https://github.com/github/codeql/pull/6605/files#diff-0236560ca1b9c19eb7c74d8bfecd1c78005e762122f8bcdaee9eb9b20460bf9c ).
2021-10-11 14:36:14 +02:00
Marcono1234
ba0dbd5871
Java: Improve IncorrectSerializableMethods.ql; address review comments
2021-10-11 14:29:10 +02:00
Rasmus Lerchedahl Petersen
19f6cc00c8
Python: rewrite import time test
2021-10-11 14:28:25 +02:00
yoff
5aee715931
Apply suggestions from code review
...
Co-authored-by: Taus <tausbn@github.com >
2021-10-11 13:00:21 +02:00
Arthur Baars
fac4df203a
Update tree-sitter-ruby
2021-10-11 12:53:16 +02:00
Tom Hvitved
98d1ee5178
API graphs: Avoid non-linear recursion
2021-10-11 12:01:33 +02:00
Tom Hvitved
68ea3e7b49
Data flow: Add debugging predicates for rendering data flow graphs for summarized callables
2021-10-11 11:29:08 +02:00
Tom Hvitved
d5955f1ae1
Java: Add test for missing summary flow
2021-10-11 11:29:08 +02:00
Tom Hvitved
30bf2aade4
C#: Add test for missing summary flow
2021-10-11 11:29:08 +02:00
Tom Hvitved
61973c399e
C#: Make GetCSharpArgsLogs robust against log directory not existing
2021-10-11 11:28:49 +02:00
Tom Hvitved
c75e2d306d
Merge pull request #6852 from hvitved/csharp/interpret-element0-bad-magic
...
C#: Avoid bad magic in `interpretElement0`
2021-10-11 11:27:35 +02:00
haby0
c2d0fcfbe6
Update python/ql/test/experimental/query-tests/Security/CWE-348/ClientSuppliedIpUsedInSecurityCheck.expected
...
Co-authored-by: yoff <lerchedahl@gmail.com >
2021-10-11 16:46:02 +08:00
haby0
29ddc76e2f
Update python/ql/test/experimental/query-tests/Security/CWE-117/LogInjection.expected
...
Co-authored-by: yoff <lerchedahl@gmail.com >
2021-10-11 16:43:30 +08:00
Rasmus Wriedt Larsen
8444388ec7
Python: Update .expected
2021-10-11 09:48:56 +02:00
Rasmus Wriedt Larsen
1552c108b0
Python: Apply suggestions from code review
...
Co-authored-by: yoff <lerchedahl@gmail.com >
2021-10-11 09:34:15 +02:00
Tom Hvitved
b05d76a131
C#: Avoid bad magic in interpretElement0
2021-10-11 09:30:52 +02:00
Tony Torralba
0919746f1a
Merge pull request #6844 from github/workflow/coverage/update
...
Update CSV framework coverage reports
2021-10-11 09:25:46 +02:00
github-actions[bot]
ea0a0522a7
Add changed framework coverage reports
2021-10-11 00:08:32 +00:00
Marcono1234
a7670fbcab
Java: Enhance IncorrectSerializableMethods.ql
2021-10-11 02:05:53 +02:00
Marcono1234
12936ff5fe
Java: Fix IncorrectSerializableMethods.ql using wrong readObject signature
2021-10-11 02:05:53 +02:00
Marcono1234
b009886664
Java: Add TypeObjectInputStream
2021-10-11 02:05:50 +02:00
Marcono1234
a74d423d82
Java: Improve AnnotationPresentCheck.ql
2021-10-11 01:03:46 +02:00
Rasmus Lerchedahl Petersen
64b1aeaecd
Python: Shorten toString for module vars
2021-10-10 15:59:31 +02:00
Rasmus Lerchedahl Petersen
0aa632d149
Python: Move writing of module vars
...
into runtime jump steps.
2021-10-10 15:49:33 +02:00
yoff
9c9c5c09ff
Merge pull request #6837 from RasmusWL/more-unsafe-deserialization-sinks
...
Python: More unsafe deserialization sinks
2021-10-10 14:33:53 +02:00
yoff
f6122c8a6c
Merge pull request #6734 from erik-krogh/regBehind
...
JS/PY: do not filter away regular expressions with lookbehinds
2021-10-10 13:54:26 +02:00
Henry Mercer
5b26d41d27
C++: Improve SARIF severity level reporting of extractor diagnostics
2021-10-08 17:53:55 +01:00
Rasmus Wriedt Larsen
a50b193c40
Python: Model data-flow for x or y and x and y
2021-10-08 18:32:30 +02:00
Rasmus Wriedt Larsen
15476c2513
Python: Add data-flow tests for BoolExp
...
> 6.11. Boolean operations
> The expression x and y first evaluates x; if x is false, its value is
> returned; otherwise, y is evaluated and the resulting value is
> returned.
> The expression x or y first evaluates x; if x is true, its value is
> returned; otherwise, y is evaluated and the resulting value is
> returned.
2021-10-08 18:29:06 +02:00
Nick Rolfe
f500e5b2d7
Use Expr::getValueText
2021-10-08 16:41:06 +01:00
Geoffrey White
79f13cae55
Merge pull request #6839 from geoffw0/toctoufp
...
CPP: Add test cases for cpp/toctou-race-condition
2021-10-08 16:15:00 +01:00
Rasmus Lerchedahl Petersen
705970cedd
Python: Update tests to use correct tag
2021-10-08 16:57:36 +02:00
Cornelius Riemenschneider
84883d115d
Merge pull request #6813 from adityasharad/docs/database-create-bazel
...
CLI docs: Add example for creating a database using a Bazel build command
2021-10-08 16:56:10 +02:00
Rasmus Lerchedahl Petersen
8ba01abcd6
Merge branch 'python-dataflow/init-time' of github.com:yoff/codeql into python-dataflow/init-time
2021-10-08 16:53:08 +02:00
Anders Schack-Mulligen
2185a654de
Java: Fix some performance issues.
2021-10-08 15:53:14 +02:00
Anders Schack-Mulligen
5d0e72755d
Merge pull request #6770 from aschackmull/java/stream-model
...
Java: Add models for java.util.stream.
2021-10-08 15:48:50 +02:00
Geoffrey White
1c56573194
C++: Add tests.
2021-10-08 14:30:27 +01:00
Geoffrey White
dd95131630
C++: Test spacing.
2021-10-08 14:28:42 +01:00
Rasmus Lerchedahl Petersen
4807f50c00
Merge branch 'main' of github.com:github/codeql into python-dataflow/init-time
2021-10-08 14:55:01 +02:00
ihsinme
8c42545d1c
Update FindWrapperFunctions.qhelp
2021-10-08 13:10:36 +03:00
Rasmus Wriedt Larsen
fd0c386a4c
Python: Add change-note
2021-10-08 12:06:18 +02:00
Rasmus Wriedt Larsen
5e6f042f6e
Python: Model pickle.Unpickler
2021-10-08 11:55:54 +02:00
Rasmus Wriedt Larsen
75b06d8a25
Python: Model dill.load
2021-10-08 11:55:54 +02:00
Rasmus Wriedt Larsen
4820be3b10
Python: Model keyword arguments to dill.loads
2021-10-08 11:55:54 +02:00
Rasmus Wriedt Larsen
9180257afe
Python: Refactor Dill.qll
...
So it matches the layout of all our other qll modules modeling a PyPI
package.
2021-10-08 11:55:54 +02:00
Rasmus Wriedt Larsen
f9333fc551
Python: Expand dill tests
2021-10-08 11:55:54 +02:00
Rasmus Wriedt Larsen
42980a1ab4
Python: Model shelve.open
2021-10-08 11:55:54 +02:00
Tony Torralba
2df30dc107
Use InlineFlowTest for local and remote flow tests
2021-10-08 11:48:35 +02:00
Anders Schack-Mulligen
446c738f20
Merge pull request #6790 from aschackmull/dataflow/force-precision
...
Dataflow: Force high precision of certain Contents.
2021-10-08 11:44:26 +02:00
Calum Grant
958fbc7992
Merge pull request #316 from github/calumgrant/readme
...
Update README.md
2021-10-08 10:36:07 +01:00
Alex Ford
9dedb0540e
Merge pull request #312 from github/rb/stored-xss-1
...
Implement `rb/stored-xss` query
2021-10-08 10:33:11 +01:00
ihsinme
d79596354e
Update cpp/ql/src/experimental/Security/CWE/CWE-1041/FindWrapperFunctions.ql
...
Co-authored-by: Mathias Vorreiter Pedersen <mathiasvp@github.com >
2021-10-08 11:50:45 +03:00
Tom Hvitved
951df380a9
Merge pull request #6829 from hvitved/csharp/gvn-to-string-concat-range
...
C#: Speedup GVN string `concat`s by pulling ranges into separate predicates
2021-10-08 10:02:31 +02:00
Anders Schack-Mulligen
06e59f3b17
Merge pull request #6832 from github/workflow/coverage/update
...
Update CSV framework coverage reports
2021-10-08 09:53:49 +02:00
Anders Schack-Mulligen
1bec58dee5
Dataflow: Fix more qldoc: s/accesspath/access path/.
2021-10-08 09:41:26 +02:00
github-actions[bot]
062250741a
Add changed framework coverage reports
2021-10-08 00:08:55 +00:00
Rasmus Wriedt Larsen
a81d359669
Python: Model marshal.load
2021-10-07 21:27:51 +02:00
Rasmus Wriedt Larsen
1b61296ea5
Python: Model pickle.load
2021-10-07 21:25:48 +02:00
Rasmus Wriedt Larsen
27c368a444
Python: Model keyword arguments to pickle.loads
2021-10-07 21:24:12 +02:00
Rasmus Wriedt Larsen
3592b09d56
Python: Expand stdlib decoding tests
...
The part about claiming there is decoding of the input to `shelve.open`
is sort of an odd one, since it's not the filename, but the contents of
the file that is decoded.
However, trying to only handle this problem through path injection is
not enough -- if a user is able to upload and access files through
`shelve.open` in a path injection safe manner, that still leads to code
execution.
So right now the best way we have of modeling this is to treat the
filename argument as being deserialized...
2021-10-07 21:11:51 +02:00
Alex Ford
16ab4da812
Update ql/lib/codeql/ruby/security/XSS.qll
...
Co-authored-by: Harry Maclean <hmac@github.com >
2021-10-07 20:03:07 +01:00
Rasmus Wriedt Larsen
a31bf75169
Python: Refactor pickle.loads() modeling
2021-10-07 20:28:30 +02:00
Robert Marsh
2539e3247a
Merge pull request #6814 from MathiasVP/fix-qldoc-in-copy-instruction
...
C++/C#: Fix QLDoc of `CopyInstruction`
2021-10-07 11:18:38 -07:00
Aditya Sharad
2ed572095c
CLI docs: Address comments on Bazel example
2021-10-07 10:51:11 -07:00
yoff
933412eb8d
Apply suggestions from code review
...
Co-authored-by: Taus <tausbn@github.com >
2021-10-07 17:45:07 +02:00
Nick Rolfe
eafe22ef93
Merge remote-tracking branch 'origin/main' into nickrolfe/oj
2021-10-07 16:40:36 +01:00
Arthur Baars
2a32b59840
Merge pull request #331 from github/aibaars/remove-unsafe
...
Remove use of 'unsafe'
2021-10-07 16:58:59 +02:00
Alex Ford
de01770612
update test output
2021-10-07 15:50:35 +01:00
Arthur Baars
439d873564
Remove use of 'unsafe'
2021-10-07 16:38:29 +02:00
Alex Ford
168e67dd6d
deduplicate string constantQualifiedName(ConstantWriteAccess) as string ConstantWriteAccess#getQualifiedName
2021-10-07 15:30:36 +01:00
Alex Ford
5b38e06765
Rename ActiveRecordModelClass#methodMayAccessField() as ActiveRecordModelClass#getAPotentialFieldAccessMethod()
2021-10-07 15:30:36 +01:00
Alex Ford
3bdc680434
Drop a comment that is no longer relevant
2021-10-07 15:30:36 +01:00
Alex Ford
8262247ed7
Minor simplification of finderMethodName predicate
2021-10-07 15:30:36 +01:00
Alex Ford
eb8c48d10f
Remove some unused predicates
2021-10-07 15:30:36 +01:00
Alex Ford
c9edbd98d5
Update ql/lib/codeql/ruby/frameworks/ActiveRecord.qll
...
Co-authored-by: Harry Maclean <hmac@github.com >
2021-10-07 15:30:36 +01:00
Alex Ford
e4fe1d5c13
check for superclass method definitions in ActiveRecordModelClass#methodMayAccessField
2021-10-07 15:30:36 +01:00
Alex Ford
fb5cfcc9b0
OrmTracking goes through or expressions
2021-10-07 15:30:36 +01:00
Alex Ford
be018cc97f
update ActionController tests
2021-10-07 15:30:36 +01:00
Alex Ford
955080234b
partial support for rails layouts
2021-10-07 15:30:36 +01:00
Alex Ford
8e1b48e607
StoredXSS.qhelp
2021-10-07 15:30:36 +01:00
Alex Ford
182a926eeb
rename some example files
2021-10-07 15:30:36 +01:00
Alex Ford
1929a95e89
format
2021-10-07 15:30:36 +01:00
Alex Ford
6065e29aba
Fix performance issues related to a x-product between ActiveRecordModelInstantiation and MethodCall
2021-10-07 15:30:36 +01:00
Alex Ford
43a49689d7
reorganize ActiveRecord field access heuristics
2021-10-07 15:30:36 +01:00
Alex Ford
8f81eaa79c
format
2021-10-07 15:30:36 +01:00
Alex Ford
b2434950d3
abstract away some ActiveRecord specific parts of XSS.qll
2021-10-07 15:30:36 +01:00
Alex Ford
6a32c0cde0
update XSS tests
2021-10-07 15:30:36 +01:00
Alex Ford
6dc3ce335b
make rb/stored-xss track ActiveRecord db accesses
2021-10-07 15:30:36 +01:00
Alex Ford
f6dd6bb00c
expand ActiveRecord modelling to cover how to access fields
2021-10-07 15:30:36 +01:00
Alex Ford
eb5f26ce06
duplicate DataFlow implementation
2021-10-07 15:30:36 +01:00
Alex Ford
a2084f813e
rb/stored-xss structure and initial implementation (FileSystemReadAccess sources)
2021-10-07 15:30:36 +01:00
Chris Smowton
9a80ab31c4
Merge pull request #6567 from luchua-bc/java/sensitive_android_file_leak
...
Java: CWE-200 - Query to detect exposure of sensitive information from android file intent
2021-10-07 15:19:39 +01:00
Chris Smowton
39640efc9b
Remove no-longer-needed TaintPreservingCallables and update test expectations
2021-10-07 14:33:39 +01:00
Anders Schack-Mulligen
2b88a2aa0c
Dataflow: Fix qldoc: s/accesspath/access path/.
2021-10-07 14:46:24 +02:00
Anders Schack-Mulligen
f885751107
Java: Add change note.
2021-10-07 14:42:19 +02:00
Tom Hvitved
764a987b09
C#: Speedup GVN string concats by pulling ranges into separate predicates
2021-10-07 13:51:05 +02:00
haby0
538bf7c321
Update python/ql/src/experimental/Security/CWE-348/ClientSuppliedIpUsedInSecurityCheck.ql
...
Co-authored-by: yoff <lerchedahl@gmail.com >
2021-10-07 19:44:25 +08:00
Anders Schack-Mulligen
fc69acee46
Java: Add test.
2021-10-07 13:28:02 +02:00
Nick Rolfe
253064144b
Tweak alert wording.
...
This reflects the fact that the query finds results where validation is
only disabled under certain conditions.
2021-10-07 12:06:53 +01:00
Tom Hvitved
1c08592637
Merge pull request #329 from github/hvitved/dataflow/synth-return
...
Data flow: Add a synthetic return node
2021-10-07 13:06:39 +02:00
Chris Smowton
b7448d55ed
Introduce TaintInheritingContent instead of using parts of DataFlowPrivate
2021-10-07 11:20:19 +01:00
Henry Mercer
4b069d41f6
Merge pull request #6818 from github/henrymercer/js/add-classify-files-to-library-pack
...
JS: Move `ClassifyFiles.qll` to library pack
2021-10-07 11:18:20 +01:00
Tom Hvitved
c540615223
HardcodedCredentials: Add test for default parameter values
2021-10-07 11:57:57 +02:00
CodeQL CI
a0dd3d9e75
Merge pull request #6815 from asgerf/js/adjust-security-severity-scores
...
Approved by erik-krogh, esbena
2021-10-07 02:36:19 -07:00
Sebastian Bauersfeld
f651bc3668
Adjust locations of results in JSP files. This is necessary due to known limitations in VSCode which cause locations with zero character indices to be mapped to invalid ranges. This is hopefully a temporary workaround until this problem has been properly addressed.
2021-10-07 12:45:21 +07:00
Dave Bartolomeo
d8d9073bc2
Merge pull request #6826 from github/aeisenberg/add-library
2021-10-06 20:18:39 -04:00
Andrew Eisenberg
e2b1f6ac50
Packaging: Add library flag to upgrades packs
...
This flag was missing. It should be there. Otherwise, this
pack cannot be built.
2021-10-06 14:29:55 -07:00
Nick Rolfe
ffda527da9
Tidy up
2021-10-06 18:07:29 +01:00
Dave Bartolomeo
0452512de2
Merge pull request #6820 from github/aeisenberg/gitignore
...
Ignore .codeql folder
2021-10-06 12:59:45 -04:00
Chris Smowton
f88c8a64a1
Copyedit
2021-10-06 17:37:21 +01:00
Chris Smowton
b33daa3d3a
Update Intent model tests, and fix models where required
2021-10-06 17:09:47 +01:00
Chris Smowton
4be2347a30
Adapt to use the new shared Intent models
2021-10-06 16:15:18 +01:00
Henry Mercer
83cbc86f50
JS: Move ClassifyFiles.qll to library pack
...
This allows us to use this library in packs that depend on the
`codeql/javascript-all` library pack.
2021-10-06 16:08:06 +01:00
Andrew Eisenberg
c9c45808b4
Merge pull request #6819 from github/aeisenberg/javascript/fix-compile-errors
...
Fixes compile errors by moving files
2021-10-06 07:59:50 -07:00
Tom Hvitved
953821c443
Avoid potential tuple explosion in reverse type tracking
2021-10-06 15:21:43 +02:00
Tom Hvitved
fdf1cd38fd
Data flow: Add a synthetic return node
2021-10-06 15:21:43 +02:00
Nick Rolfe
1ce458fa33
Add query to find HTTP requests that disable SSL validation
2021-10-06 14:06:09 +01:00
Chris Smowton
91d8b3da23
Sort Intent models
2021-10-06 12:30:40 +01:00
Chris Smowton
f24e310ace
Update test expectation details
2021-10-06 12:25:23 +01:00
Chris Smowton
ffdfc0549a
Update comment
2021-10-06 12:17:49 +01:00
luchua-bc
987bfa6ca7
Update condition check and qldoc
2021-10-06 12:17:49 +01:00
luchua-bc
8c2fddb297
Update the condition check and use DataFlow in the ql file
2021-10-06 12:17:49 +01:00
Chris Smowton
b0e652a3af
Remove AsyncTask models
2021-10-06 12:17:49 +01:00
Chris Smowton
9e0cf5a2fd
Update test expectations to include subpaths
2021-10-06 12:17:49 +01:00
Chris Smowton
3607d50994
Update remote flow source locations
2021-10-06 12:17:46 +01:00
luchua-bc
02bfa1ca57
Optimize the query
2021-10-06 12:16:04 +01:00
luchua-bc
0621e65827
Query to detect exposure of sensitive information from android file intent
2021-10-06 12:16:04 +01:00
Dave Bartolomeo
91b2ee2f10
Merge pull request #6822 from github/lgtm.com
...
Make sure the lgtm.com branch is an ancestor of rc/3.3
2021-10-06 06:58:13 -04:00
Geoffrey White
4c6f4ef14b
Revert "C++: change note" and "C++: Exclusion rules for system macros"
...
This reverts commit a055c86c4f .
This reverts commit 237a7d34b8 .
2021-10-06 10:21:19 +01:00
Harry Maclean
c50a6c180f
Merge pull request #318 from github/hmac-open-query
...
Add a query for uses of `Kernel.open` and `IO.read`
2021-10-06 10:05:43 +01:00
Anders Schack-Mulligen
d0b307ecfb
Merge pull request #6103 from atorralba/atorralba/promote-insecure-javamail
...
Java: Promote Insecure JavaMail SSL Configuration from experimental
2021-10-06 09:24:11 +02:00
Anders Schack-Mulligen
9505846088
Merge pull request #6821 from github/workflow/coverage/update
...
Update CSV framework coverage reports
2021-10-06 09:06:14 +02:00
github-actions[bot]
33ee947f8d
Add changed framework coverage reports
2021-10-06 00:08:24 +00:00
Andrew Eisenberg
57ef989a89
Fixes compile errors by moving files
...
The two files moved in this commit are referenced from the
javascript/lib qlpack, but they are located in the
javascript/src qlpack. This causes compile errors when running
compile-ish commands for javascript queries. Moving the
files fixes it.
2021-10-05 14:00:02 -07:00
Andrew Eisenberg
0590e2a5fb
Ignore .codeql folder
2021-10-05 13:42:36 -07:00
Chris Smowton
5b13232a9d
Merge pull request #6739 from joefarebrother/android-intent-extra
...
Java: Model Android Bundle and Intent extras methods
2021-10-05 15:39:42 +01:00
Tom Hvitved
1d1215923c
Merge pull request #323 from github/hvitved/get-value-text
...
Introduce `Expr::getValueText`
2021-10-05 14:26:25 +02:00
Harry Maclean
7bf818fdf5
Refactor KernelMethodCall modelling
...
By extending `DataFlow::CallNode` instead of `MethodCall`, we get rid of
a lot of `.asExpr().getExpr()` calls.
2021-10-05 12:26:59 +01:00
Anders Schack-Mulligen
9133adac30
Java: Adjust csv validation.
2021-10-05 13:13:28 +02:00
Anders Schack-Mulligen
04892df45a
Java: Include stream method overrides.
2021-10-05 13:13:28 +02:00
Anders Schack-Mulligen
af7d633f2f
Java: Add Stream::mapMulti* and Stream::toList.
2021-10-05 13:13:28 +02:00
Anders Schack-Mulligen
ef80263106
Java: Add models for java.util.stream.
2021-10-05 13:13:27 +02:00
Anders Schack-Mulligen
5d63a76e25
Merge pull request #6797 from Marcono1234/marcono1234/remove-overwritten-NestedType-isStatic-qldoc
...
Java: Remove overwritten `NestedType.isStatic()` QLDoc
2021-10-05 13:05:53 +02:00
Joe Farebrother
b956238efa
Fill in gen/get methods for tests
2021-10-05 12:01:25 +01:00
Harry Maclean
232fb9ad5b
Add cwe-073 tag to KernelOpen query
...
CWE-073 is External Control of File Name or Path, which applies here.
2021-10-05 11:13:58 +01:00
Harry Maclean
6f293c7a5e
Add a query for uses of Kernel.open and IO.read
2021-10-05 11:13:58 +01:00
Harry Maclean
0fcb079ba7
Merge pull request #326 from github/hmac/eval-fixes
...
Make Code execution query more specific
2021-10-05 10:57:54 +01:00
Calum Grant
a95b87dfcb
Update CONTRIBUTING guidelines
2021-10-05 10:48:34 +01:00
Calum Grant
d8a19ecd6e
Initial version of CONTRIBUTING from codeql-go
2021-10-05 10:30:22 +01:00
Calum Grant
d8209719e1
Moved developer information into its own doc
2021-10-05 10:28:40 +01:00
Harry Maclean
e419fc9599
Make Code execution query more specific
...
Only the first argument to eval, instance_eval, send, class_send and
module_send is interpreted as Ruby code.
2021-10-05 10:28:34 +01:00
haby0
a17b0d4e5c
Modify Sanitizer
2021-10-05 17:12:04 +08:00
Mathias Vorreiter Pedersen
b089e6d84e
C++/C#: Fix QLDoc of 'CopyInstruction'.
2021-10-05 09:14:20 +01:00
Asger Feldthaus
3a20ca96c4
JS: Update CWE tags and severity score of code injection query
...
The derived security-severity score of the JS code injection query
was much lower than for other languages (6.1 versus 9.3), possibly due
some differences in CWE tags, such as the inclusion of CWE-079.
We also add the more specific CWE-095 ("eval injection") for consistency
with other languages. It is a child of CWE-094 ("code injection") which
was already tagged.
2021-10-05 10:12:19 +02:00
Asger Feldthaus
c4e8af983a
JS: Update score and add CWE-730 to LoopBoundInjection
...
This is a denial-of-service query, but was missing the CWE-730 tag
("denial of service") and consequently had a lower score than the
other DoS queries.
2021-10-05 10:10:01 +02:00
Asger Feldthaus
682a71176d
JS: Make TaintedFormatString have same severity as LogInjection
...
The CWE number for this query is associated with buffer overflows
from printf/scanf-style functions in C++, which has likely determined
its derived security score.
But in JavaScript, a tainted format string is unlikely to lead to
anything worse than log injection so we're manually update its score
to reflect this.
2021-10-05 10:10:01 +02:00
Asger Feldthaus
83ca4ef6d9
JS: Lower security-severity of queries with speculative threat model
...
In the CVSS calculator we model this by setting 'Attack Complexity' to
High and 'User Interaction' to Low (as opposed to None).
CVSS vector:
CVSS:3.0/AV:N/AC:H/PR:L/UI:N/S:C/C:N/I:H/A:N
2021-10-05 10:10:01 +02:00
Tony Torralba
a86cbd884e
Apply suggestions from code review
...
Co-authored-by: Anders Schack-Mulligen <aschackmull@users.noreply.github.com >
2021-10-05 09:40:22 +02:00
Tony Torralba
3323f7ab1a
Fix qhelp
2021-10-05 09:18:50 +02:00
Tony Torralba
9f54b1065a
Apply suggestions from code review
...
Co-authored-by: mc <42146119+mchammer01@users.noreply.github.com >
2021-10-05 09:18:49 +02:00
Tony Torralba
9c1021134a
Add some links to qhelp
2021-10-05 09:18:49 +02:00
Tony Torralba
2d1278ece5
Consider setStartTLSRequired for Apache SimpleEmail
2021-10-05 09:18:48 +02:00
Tony Torralba
baffb0ed89
Consider Jakarta Mail
2021-10-05 09:18:47 +02:00
Tony Torralba
a2e9c2f4ab
Apply suggestions from code review
...
Co-authored-by: Marcono1234 <Marcono1234@users.noreply.github.com >
2021-10-05 09:18:47 +02:00
Tony Torralba
c13bf2a2a1
Add change note
2021-10-05 09:18:46 +02:00
Tony Torralba
73653f77aa
Use InlineExpectationsTest
2021-10-05 09:18:45 +02:00
Tony Torralba
8c6d58e6d8
Refactored into libraries
2021-10-05 09:18:44 +02:00
Tony Torralba
0e149f0523
Move from experimental
2021-10-05 09:18:44 +02:00
CodeQL CI
40d98ad678
Merge pull request #6789 from asgerf/js/restrict-package-exports
...
Approved by erik-krogh
2021-10-05 06:20:23 +01:00
Aditya Sharad
9913221010
CLI docs: Add example for creating a database using a Bazel build command
...
We have internal material on this subject, so it makes sense to have a reference example.
Bazel builds could be in any compiled language, so follow the pattern
of the generic build script example.
Include the build flags that we recommend to customers,
which turn off Bazel's caching and distributed behaviour
so that CodeQL can observe the entire build.
2021-10-04 11:08:43 -07:00
yoff
f230a37004
Merge pull request #6804 from tausbn/python-fix-bad-magic-in-conditionblock-controls
...
Python: Fix bad magic in `controls/2`
2021-10-04 19:16:06 +02:00
Geoffrey White
11b8d4191f
C++: Repair .expected following merge.
2021-10-04 16:53:33 +01:00
Geoffrey White
2c64fa50d2
Merge branch 'main' into impropnullfp
2021-10-04 16:51:21 +01:00
Mathias Vorreiter Pedersen
7f7f90681f
Merge pull request #6808 from MathiasVP/add-cwes-to-incorrect-allocation-handling
...
C++: Add more CWEs to 'cpp/incorrect-allocation-error-handling'.
2021-10-04 17:02:08 +02:00
Marcono1234
0bce8234d8
Java: Remove overwritten NestedType.isStatic() QLDoc
...
Did not mention nested non-member interfaces and record classes.
The documentation of the overridden `isStatic()` predicate already mentions
that this predicate holds for explicitly and implicitly static elements, so
overwriting it is not necessary and only adds more maintenance work.
2021-10-04 16:30:57 +02:00
Anders Schack-Mulligen
745ece6e6d
Merge pull request #6613 from Marcono1234/marcono1234/literals-test-split
...
Java: Split literals tests
2021-10-04 16:20:08 +02:00
Mathias Vorreiter Pedersen
eac0222f2c
C++: Add more CWEs to 'cpp/incorrect-allocation-error-handling'.
2021-10-04 15:15:40 +01:00
Tom Hvitved
70e41b180e
Merge pull request #6800 from hvitved/csharp/constant-cond-tuple-discard
...
C#: Filter discards in tuples in `ConstantCondition.ql`
2021-10-04 14:38:45 +02:00
Tom Hvitved
9762ce706b
Merge pull request #6799 from hvitved/csharp/dead-store-using-discard
...
C#: Filter using `var _ = ... results` from `DeadStoreOfLocal.ql`
2021-10-04 14:38:15 +02:00
Chris Smowton
041aff6bfd
Merge pull request #6802 from atorralba/atorralba/fix-flowtestcasegenerator-folder
...
Java: Fix flow test case generator's folder name
2021-10-04 13:36:01 +01:00
Nick Rolfe
b955fdb58d
Merge pull request #324 from github/clippy_fixes
...
clippy fixes
2021-10-04 13:35:26 +01:00
Nick Rolfe
2a44cd8c98
Merge pull request #6803 from nickrolfe/cpp_upgrade_script
...
C++: add upgrade script for dbscheme comment changes
2021-10-04 13:31:13 +01:00
Taus
54aec7bb96
Python: Fix bad magic in controls/2
...
The changes to `ModificationOfParameterWithDefault.ql` and the use of
`ConditionBlock::controls` therein caused the `BasicBlock` argument to
get magicked in, resulting in the following antijoin for the `forall`:
```
[2021-10-04 12:07:46] (108s) Tuple counts for GuardedControlFlow::ConditionBlock::controls_dispred#fbf#antijoin_rhs/5@d84e94 after 1m44s:
201222345 ~7% {5} r1 = JOIN GuardedControlFlow::ConditionBlock::controls_dispred#fbf#shared#2 WITH Flow::BasicBlock::getASuccessor_dispred#ff_10#join_rhs ON FIRST 1 OUTPUT Lhs.0 'arg1', Rhs.1 'arg4', Lhs.1 'arg0', Lhs.2 'arg2', Lhs.3 'arg3'
200599933 ~4% {5} r2 = JOIN r1 WITH Flow::BasicBlock::dominates#ff ON FIRST 2 OUTPUT Lhs.2 'arg0', Lhs.0 'arg1', Lhs.3 'arg2', Lhs.4 'arg3', Lhs.1 'arg4'
0 ~0% {4} r3 = JOIN GuardedControlFlow::ConditionBlock::controls_dispred#fbf#shared#1 WITH GuardedControlFlow::ConditionBlock#class#f ON FIRST 1 OUTPUT Lhs.0 'arg3', Lhs.2 'arg1', Lhs.1 'arg0', false
0 ~0% {4} r4 = JOIN GuardedControlFlow::ConditionBlock::controls_dispred#fbf#shared WITH GuardedControlFlow::ConditionBlock#class#f ON FIRST 1 OUTPUT Lhs.0 'arg3', Lhs.2 'arg1', Lhs.1 'arg0', true
0 ~0% {4} r5 = r3 UNION r4
0 ~0% {5} r6 = JOIN r5 WITH Flow::BasicBlock::getASuccessor_dispred#ff ON FIRST 2 OUTPUT Lhs.2 'arg0', Lhs.1 'arg1', Lhs.3 'arg2', Lhs.0 'arg3', Rhs.0
200599933 ~4% {5} r7 = r2 UNION r6
return r7
```
(cancelled)
I observed that quick-eval'ing the `controls` predicate exhibit no such
bad join order (and terminated quickly) which lead me to conclude that
this was a case of bad magic.
Adding the `pragma[nomagic]` resulted in a return to the previous
performance.
2021-10-04 12:16:53 +00:00
Tony Torralba
064aba810b
Remove hyphens from the flow testcase generator folder name
...
So that it can be imported from the autogenerated query `gen.ql`
2021-10-04 13:31:07 +02:00
Nick Rolfe
5aec84b672
C++: add upgrade script for dbscheme comment changes
2021-10-04 12:30:42 +01:00
Asger Feldthaus
cbd577694c
JS: Autoformat
2021-10-04 13:30:15 +02:00
Tom Hvitved
a315640082
C#: Address review comments
2021-10-04 13:15:26 +02:00
Nick Rolfe
46d1280d07
Fix clippy warnings in extractor
2021-10-04 12:07:49 +01:00
Tom Hvitved
f06632a8e7
C#: Filter discards in tuples in ConstantCondition.ql
2021-10-04 13:04:18 +02:00
Nick Rolfe
a188e73f7b
Fix clippy warnings in generator
2021-10-04 11:55:55 +01:00
Nick Rolfe
087958be2d
Fix clippy warnings in node-types
2021-10-04 11:44:21 +01:00
Nick Rolfe
1e38c705b8
Fix clippy warnings in autobuilder
2021-10-04 11:44:14 +01:00
Rasmus Lerchedahl Petersen
aa91c26792
Python: Add missing taint steps
2021-10-04 12:12:07 +02:00
yoff
4521a9fdf0
Update python/ql/lib/semmle/python/frameworks/Stdlib.qll
...
Co-authored-by: Rasmus Wriedt Larsen <rasmuswriedtlarsen@gmail.com >
2021-10-04 11:36:53 +02:00
Anders Schack-Mulligen
65a4f36cf8
Merge pull request #6767 from aschackmull/dataflow/callback-postupdate
...
Dataflow: Support side-effects for callbacks in summaries.
2021-10-04 11:13:18 +02:00
Tom Hvitved
70b9b002cb
C#: Add change note
2021-10-04 10:48:07 +02:00
Tom Hvitved
682a2aae3a
C#: Filter using var _ = ... results from DeadStoreOfLocal.ql
2021-10-04 10:45:44 +02:00
Jonas Jensen
ce27acd099
Merge pull request #6793 from MathiasVP/add-return-value-deref-to-model-util
...
C++: Handle return value dereferences in `ModelUtil.qll`
2021-10-04 09:22:52 +02:00
Marcono1234
fb1385b3e8
Java: Fix formatting of SpuriousJavadocParam.java
2021-10-03 00:13:36 +02:00
Owen Mansel-Chan
938d003e5e
Fix example to use space after $ for consistency
2021-10-02 08:11:49 +01:00
Owen Mansel-Chan
25792b2a45
Change class name to avoid clash with Go and Javascript libraries
2021-10-02 08:04:17 +01:00
Mathias Vorreiter Pedersen
cc8b581c06
C++: Accept test changes.
2021-10-01 22:23:17 +02:00
Mathias Vorreiter Pedersen
cca77ed65c
Merge branch 'main' into add-return-value-deref-to-model-util
2021-10-01 22:02:06 +02:00
Geoffrey White
b9a1a451a9
C++: Autoformat.
2021-10-01 19:21:30 +01:00
Tamás Vajk
62aa7b75bd
Merge pull request #6792 from tamasvajk/fix/csv-workflow
...
Let 'ql/lib' folders trigger the CSV workflow
2021-10-01 19:44:48 +02:00
Mathias Vorreiter Pedersen
0679142607
C++: Accept test changes.
2021-10-01 18:27:55 +02:00
Mathias Vorreiter Pedersen
3463c28e24
C++: Add return value dereference to 'callOutput'. This will need to be modified once we get return value side effects in the IR.
2021-10-01 18:27:46 +02:00
Marcono1234
e3fed55945
Java: Add tests for text blocks
2021-10-01 18:16:11 +02:00
Joe Farebrother
085701c7db
Remove models.csv
2021-10-01 17:11:12 +01:00
Geoffrey White
51188aa93f
C++: Give the two queries medium precision (for now).
2021-10-01 17:04:22 +01:00
Joe Farebrother
5e4498a53a
Add more models; fix tests
2021-10-01 16:53:53 +01:00
Geoffrey White
a62772c274
C++: Add change note.
2021-10-01 16:35:12 +01:00
Marcono1234
924b7320bc
Java: Add test for NullLiteral
2021-10-01 17:27:54 +02:00
Marcono1234
bb6e6f4808
Java: Split literals tests
...
This allows changing individual tests in the future without having to adjust
the expected output of all other tests.
2021-10-01 17:27:50 +02:00
Geoffrey White
ada30800c9
C++: Exclude results where identity-like functions obscure operations on a variable.
2021-10-01 16:16:06 +01:00
Anders Schack-Mulligen
99ba80d492
C#: Adjust test output.
2021-10-01 16:57:30 +02:00
Tamas Vajk
ebe0988d9a
Let 'ql/lib' folders trigger the CSV workflow
2021-10-01 16:30:56 +02:00
Arthur Baars
2f462771bb
Merge pull request #286 from github/aibaars/xxe
...
XXE query
2021-10-01 16:14:41 +02:00
Geoffrey White
11d7a0b712
C++: Exclude results where the address of the variable is taken.
2021-10-01 14:39:02 +01:00
Geoffrey White
d41e517757
C++: Simplify mayAddNullTerminator.
2021-10-01 14:15:05 +01:00
Geoffrey White
ec2e4f432a
C++: Add more test cases, inspired by FPs on LGTM with the query.
2021-10-01 14:03:41 +01:00
Geoffrey White
74957dcb2e
C++: Test spacing.
2021-10-01 13:59:34 +01:00
Anders Schack-Mulligen
6359c44622
Java: Autoformat.
2021-10-01 14:05:47 +02:00
yoff
1ce9426adf
Merge pull request #6761 from RasmusWL/cryptodome-sha3
...
Python/JS: Recognize SHA-3 hash functions
2021-10-01 13:33:36 +02:00
Anders Schack-Mulligen
98f68cb053
Dataflow: Sync.
2021-10-01 13:11:43 +02:00
Anders Schack-Mulligen
490df2027b
Dataflow: Add language-specific predicate forceHighPrecision().
2021-10-01 13:11:14 +02:00
Anders Schack-Mulligen
d4f1a9602f
Dataflow: Force high precision of certain Contents.
2021-10-01 13:03:50 +02:00
Anders Schack-Mulligen
eb26b4a04b
Merge pull request #6755 from alexet/alexet/cache-params-string
...
Java: Fix more performance issues with future versions of codeql.
2021-10-01 12:54:53 +02:00
Arthur Baars
5a454bb9f2
Add comment
2021-10-01 12:13:19 +02:00
Asger Feldthaus
c8e7df7900
JS: Add test case
2021-10-01 12:02:40 +02:00
Asger Feldthaus
600e5bad0d
JS: Exclude methods declared private/protected
2021-10-01 11:46:32 +02:00
Asger Feldthaus
af1b04de9c
JS: Restrict what property names that are considered public exports
2021-10-01 11:42:03 +02:00
Arthur Baars
c78d02d00d
Fix module of Parser::Options
2021-10-01 11:18:03 +02:00
Arthur Baars
b06bb7a789
Improve test cases
...
Set NONET (2048) by default.
2021-10-01 11:16:56 +02:00
Mathias Vorreiter Pedersen
a3cf721b9e
Merge pull request #6713 from geoffw0/cwe139
...
C++: New query for 'Cleartext transmission of sensitive information'
2021-10-01 11:10:36 +02:00
Tom Hvitved
08225181c8
Introduce Expr::getValueText
2021-10-01 11:03:46 +02:00
Geoffrey White
679b0f9b73
C++: Autoformat.
2021-10-01 09:40:16 +01:00
Rasmus Lerchedahl Petersen
175a06fe73
Python: Fix compile error due to predicate rename
2021-10-01 10:33:42 +02:00
Anders Schack-Mulligen
799e099d1d
Merge pull request #6784 from github/workflow/coverage/update
...
Update CSV framework coverage reports
2021-10-01 10:05:34 +02:00
github-actions[bot]
3d61c81456
Add changed framework coverage reports
2021-10-01 00:09:22 +00:00
Chris Smowton
f48c418d6d
Merge pull request #5907 from x-f1v3/java/hardcoded-shiro-key
...
Java: CWE-798: Query to detect hard-coded SHIRO key
2021-09-30 17:58:12 +01:00
Chris Smowton
ec4cb7c90f
Fix typo
2021-09-30 16:22:12 +01:00
Harry Maclean
f61161e66d
Merge pull request #321 from github/hmac-more-eval
...
Identify more instances of code injection
2021-09-30 16:12:24 +01:00
Chris Smowton
cb4ce36d3c
Update change note; drop unnecessary import
2021-09-30 15:00:13 +01:00
Chris Smowton
b0983cb726
Specifically include Base64 encode/decode as a likely intermediate step for hardcoded credentials
2021-09-30 14:57:49 +01:00
Chris Smowton
b57a58c253
Amend change note
2021-09-30 14:27:05 +01:00
f1v3
24c9bb2fb7
autoformat
2021-09-30 14:26:19 +01:00
f1v3
168fc4170d
Apply suggestions from code review
2021-09-30 14:26:14 +01:00
f1v3
f3bde56de9
detects a hard-coded cipher key for shiro
2021-09-30 14:22:48 +01:00
Harry Maclean
8c0c08e887
Identify more instance of code injection
...
`class_eval` and `module_eval` both take a string as argument and
execute it as Ruby code.
2021-09-30 14:19:24 +01:00
Chris Smowton
60a023d064
Merge pull request #5852 from luchua-bc/java/hardcoded-azure-credential
...
Java: CWE-798 Query to detect hard-coded Azure credentials
2021-09-30 14:11:29 +01:00
Rasmus Lerchedahl Petersen
35d9005eae
Python: typo again..
2021-09-30 14:39:44 +02:00
Rasmus Lerchedahl Petersen
f3fc56a167
Python: typos
2021-09-30 14:39:05 +02:00
Rasmus Lerchedahl Petersen
d19d37bf9b
Python: more suggestions from review
2021-09-30 14:36:26 +02:00
yoff
c1c63d0c28
Merge pull request #6738 from RasmusWL/qldoc-getArgByName
...
Python: Add QLDoc to `Function.getArgByName`
2021-09-30 14:11:18 +02:00
yoff
46e62cd963
Apply suggestions from code review
...
Co-authored-by: Rasmus Wriedt Larsen <rasmuswriedtlarsen@gmail.com >
2021-09-30 14:00:18 +02:00
Rasmus Lerchedahl Petersen
02e91b3902
Python: Model functions that will raise
...
on non-existing files.
2021-09-30 13:36:24 +02:00
Harry Maclean
7f103b9450
Merge pull request #319 from github/hmac-activerecord-updates
...
Add some more vulnerable ActiveRecord methods
2021-09-30 12:09:09 +01:00
Arthur Baars
0419d28ba0
XXE: overapproximate feature flag values for & and | operators
2021-09-30 11:20:23 +02:00
Arthur Baars
089f9d87d4
Address comments
2021-09-30 11:20:23 +02:00
Arthur Baars
2b077595ae
Also track DTDLOAD and NONET
2021-09-30 11:20:23 +02:00
Arthur Baars
4268d9c565
XXE query
2021-09-30 11:20:17 +02:00
Harry Maclean
7191e1c007
Re-add delete_all and destroy_all methods
...
These methods don't take any arguments in Rails versions > 3, but
there's no harm in checking for them anyway, and some people might be
using very old Rails versions.
2021-09-30 09:39:58 +01:00
Harry Maclean
75bbc51e73
Make room for new test cases
...
This just bumps the other code down a bit so that the .expected diff is
easier to read.
2021-09-30 09:33:39 +01:00
Jonas Jensen
45cf6344cd
Merge pull request #6184 from github/rdmarsh2/improve-exec-tainted
...
C++: Refactor ExecTainted.ql to only report results after string concatenation
2021-09-29 19:21:13 +02:00
CodeQL CI
e9b4e571e1
Merge pull request #6775 from RasmusWL/fix-hasLocationInfo-url
...
Approved by aschackmull, erik-krogh, hvitved, jbj, tausbn
2021-09-29 16:51:08 +01:00
alexet
447eb23356
Java: Fix for tc magic issue with subtyping.
2021-09-29 16:01:08 +01:00
Joe Farebrother
3ae5f13c3d
Generate tests and stubs
2021-09-29 15:44:21 +01:00
Tamás Vajk
089bb33113
Merge pull request #6773 from tamasvajk/fix/global-stmt-library
...
C#: Handle invalid code gracefully: global statements in library
2021-09-29 16:18:05 +02:00
Harry Maclean
0ea228e86f
Merge pull request #315 from github/hmac-outgoing-http
...
Model more HTTP clients
2021-09-29 14:26:56 +01:00
Harry Maclean
a9c00a05fe
HTTP -> Http
...
Change the capitalisation of HTTP to Http, to conform to the QL style
guide.
Leave the HTTP module in Concepts alone, so it remains consistent with
the Concepts in other language libraries.
2021-09-29 13:50:05 +01:00
Nick Rolfe
1d58f8cd50
Merge pull request #320 from github/rasmuswl/fix-hasLocationInfo-url
2021-09-29 13:23:08 +01:00
Tom Hvitved
c69762bc14
Merge pull request #317 from github/hvitved/disable-operation-resolution
...
Temporarily disable operation call resolution
2021-09-29 14:17:05 +02:00
Rasmus Wriedt Larsen
3a270abcdc
Fix hasLocationInfo URL reference
...
Port of https://github.com/github/codeql/pull/6775
2021-09-29 14:04:25 +02:00
Rasmus Wriedt Larsen
ba990f72f2
Another hasLocationInfo URL reference fix
2021-09-29 14:00:28 +02:00
Harry Maclean
f5f79a81bc
Update ActionController fixture
2021-09-29 12:51:26 +01:00
Rasmus Wriedt Larsen
987b573709
Fix hasLocationInfo URL reference
...
Follow up to https://github.com/github/codeql/pull/5830
2021-09-29 13:47:58 +02:00
alexet
dea8dde566
Java: Improve performance of confusing overloading query.
2021-09-29 12:17:30 +01:00
Harry Maclean
615beeec80
Identify more vulnerable ActiveRecord methods
...
This change identifies the following patterns:
- `Model.select(input)`
- `Model.reselect(input)`
- `Model.rewhere(input)`
- `Model.update_all(input)`
- `model.reload(lock: input)`
2021-09-29 11:47:07 +01:00
Harry Maclean
270d13e4ac
Identify more vulnerable ActiveRecord methods
...
`find_by!`, `find_or_create_by`, `find_or_create_by!` and
`find_or_initialize_by` act similarly to `find_by`.
2021-09-29 10:49:14 +01:00
Harry Maclean
56919eee0b
delete/destroy_all -> delete/destroy_by
...
The ActiveRecord `delete_all` and `destroy_all` methods do not take a
condition argument - they act on the scope of their receiver.
The `delete_by` and `destroy_by` methods do take an argument which can
be raw SQL, and are therefore vulnerable to SQL injection.
For more info:
https://api.rubyonrails.org/v6.1.4/classes/ActiveRecord/Relation.html#method-i-delete_all
https://api.rubyonrails.org/v6.1.4/classes/ActiveRecord/Relation.html#method-i-delete_by
2021-09-29 10:45:54 +01:00
Harry Maclean
3a1b294c21
Identify more ActiveRecord calculate methods
...
`average`, `count`, `maximum`, `minimum` and `sum` are all convenience
methods that call `calculate(:<method name>, ...)` under the hood.
Therefore they are vulnerable to SQL injection too.
2021-09-29 10:11:38 +01:00
Tamas Vajk
e17071723f
C#: Handle invalid code gracefully: global statements in library
2021-09-29 10:23:33 +02:00
Tom Hvitved
10d19bf05b
Temporarily disable operation call resolution
2021-09-29 09:40:41 +02:00
Calum Grant
5317022d2e
Basic query for Ruby
2021-09-28 20:51:21 +01:00
Geoffrey White
89098f54be
C++: Correct comment.
2021-09-28 20:03:42 +01:00
Geoffrey White
10323ac819
Update cpp/ql/src/Security/CWE/CWE-311/CleartextStorage.inc.qhelp
...
Co-authored-by: Jonas Jensen <jbj@github.com >
2021-09-28 15:13:29 +01:00
Anders Schack-Mulligen
e95dc82087
Autoformat.
2021-09-28 13:00:50 +02:00
Anders Schack-Mulligen
b11cb88a9f
Dataflow: Sync to C#.
2021-09-28 11:45:33 +02:00
Anders Schack-Mulligen
9a9bbe3123
Dataflow: Support side-effects for callbacks in summaries.
2021-09-28 11:42:38 +02:00
Harry Maclean
6d7a04a222
Move Files test to its own folder
...
This prevents it picking up fixtures from other tests.
2021-09-28 10:06:53 +01:00
Harry Maclean
b34fcc65d1
Model the Typhoeus http client
2021-09-28 10:06:53 +01:00
Harry Maclean
b5dec5e8cf
Model the OpenURI http client
2021-09-28 10:06:53 +01:00
Robert Marsh
d47c4732e2
C++: Update change note date
2021-09-27 17:36:14 -07:00
Robert Marsh
dfb27d170c
C++ fix test compilation errors
2021-09-27 13:58:54 -07:00
Calum Grant
64ae42014c
Update README.md
2021-09-27 17:46:15 +01:00
Tom Hvitved
5219b1a8b9
Merge pull request #310 from github/hvitved/more-instanceof
...
More uses of `instanceof` in the external/internal AST layer
2021-09-27 16:11:04 +02:00
Harry Maclean
ca1fc44f21
Model the HTTPClient http client
2021-09-27 14:44:25 +01:00
Harry Maclean
3a4ddc4b4e
Model the HTTParty http client
...
We currently model direct calls like
HTTParty.get("http://example.com ")
but we don't yet handle calls on other classes that have included the
`HTTParty` module, like
class MyClient
include HTTParty
end
MyClient.get("http://example.com ")
2021-09-27 14:44:04 +01:00
Tom Hvitved
8018c1525d
Merge pull request #314 from github/hvitved/setter-method-call-base
...
Strengthen the type of `SetterMethodCall`
2021-09-27 15:29:07 +02:00
Nick Rolfe
79c2f09585
Merge pull request #302 from github/rm_tokeninfo_idx
...
Remove unused columns from tokeninfo tables
2021-09-27 14:19:38 +01:00
Nick Rolfe
b2c4daecd5
Merge pull request #303 from github/nickrolfe/node_kind_id
...
Use integer comparisons instead of strings when scanning ERB files
2021-09-27 14:18:10 +01:00
Tom Hvitved
317303cdad
Strengthen the type of SetterMethodCall
2021-09-27 14:05:28 +02:00
Arthur Baars
2a4747b27e
Merge pull request #313 from github/hmac-remove-unicode-char
...
Remove unicode character from doc string
2021-09-27 12:57:21 +02:00
Harry Maclean
3e100bc2a9
Remove unicode character from doc string
...
We require that all source code is in ASCII.
2021-09-27 11:40:04 +01:00
Rasmus Wriedt Larsen
ded3088529
Python/JS: Recognize SHA-3 hash functions
...
Official names are SHA3-224, SHA3-256, SHA3-384, SHA3-512 as per
https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.202.pdf
2021-09-27 12:08:40 +02:00
Nick Rolfe
175958b9be
Consider Oj.load a sink for unsafe deserialization
...
Unless a known-safe mode is used, either by setting the default options,
or by explicitly passing a mode in the options hash argument.
2021-09-24 17:43:22 +01:00
Geoffrey White
6901d9d9c2
C++: Add and use getRemoteSocket predicates.
2021-09-24 15:16:48 +01:00
Geoffrey White
9f59bc8f7b
C++: Naive translation to use RemoteFlow*Function.
2021-09-24 15:12:14 +01:00
Tom Hvitved
793368d670
More uses of instanceof in the external/internal AST layer
2021-09-24 15:55:15 +02:00
alexet
49f8f46354
Java: Cache params string computation.
2021-09-24 14:12:26 +01:00
Harry Maclean
74982cb3aa
Merge pull request #307 from github/hmac-outgoing-http-2
...
Model some more HTTP clients
2021-09-24 12:30:48 +01:00
Tom Hvitved
141f5f7605
Merge pull request #308 from github/hvitved/operation-method-call
...
Make `{Unary,Binary}Operation` a sub class of `MethodCall`
2021-09-24 12:51:07 +02:00
Tom Hvitved
30d2df53c6
Include MethodCall.getAChild in {Unary,Binary}Operation.getAChild
2021-09-24 12:08:54 +02:00
haby0
9b969e15fc
Modify according to @yoff suggestion
2021-09-24 12:56:10 +08:00
Tom Hvitved
edfdfb1fa4
Make {Unary,Binary}Operation a sub class of MethodCall
2021-09-23 19:13:55 +02:00
Harry Maclean
88885a222e
Model the RestClient HTTP client
2021-09-23 16:32:15 +01:00
Harry Maclean
4cf520c2df
Model the Faraday HTTP client
2021-09-23 16:32:15 +01:00
Harry Maclean
ee51298633
Model the Excon HTTP client
2021-09-23 16:32:15 +01:00
Tom Hvitved
ca2ff9a863
Merge pull request #305 from github/hvitved/desugar/array-literals
...
Desugar array literals to `::Array.[]`
2021-09-23 17:30:34 +02:00
Arthur Baars
40f0112e8a
Merge pull request #297 from github/aibaars/alert-suppression
...
Alert suppression and file classifier query
2021-09-23 15:37:19 +02:00
Rasmus Lerchedahl Petersen
f2fbeed490
Python: Model os.path-functions
2021-09-23 15:30:00 +02:00
Rasmus Lerchedahl Petersen
81adb7dd2a
Python: Add tests for os.path-functions
2021-09-23 15:28:05 +02:00
Harry Maclean
4f9518a9c6
Merge pull request #293 from github/hmac-code-injection
...
Add query for Code Injection
2021-09-23 13:50:48 +01:00
Tom Hvitved
f347505542
Merge pull request #277 from github/hvitved/flow-summaries
...
Add support for flow summaries
2021-09-23 14:31:52 +02:00
Harry Maclean
41608ef47b
Address review comments
2021-09-23 12:26:54 +01:00
Joe Farebrother
0919042692
Model Bundle and Intent extra methods
2021-09-23 12:03:45 +01:00
Tom Hvitved
68d41f9f12
Address review comments
2021-09-23 12:39:47 +02:00
ihsinme
13741ba137
Update FindWrapperFunctions.ql
2021-09-23 12:55:03 +03:00
ihsinme
18de9f0aa3
Update FindWrapperFunctions.expected
2021-09-23 12:53:16 +03:00
Harry Maclean
83705c5787
Merge pull request #306 from github/hmac-outgoing-http
...
Model outgoing HTTP requests as remote flow sources
2021-09-23 09:34:44 +01:00
Harry Maclean
5826f2c279
Move Net::HTTP modelling into http_clients module
...
This seems a more convenient place to keep all the HTTP client
modelling.
2021-09-23 09:04:20 +01:00
Harry Maclean
b658bacab3
Simplify Net::HTTP modelling
2021-09-23 09:04:01 +01:00
Harry Maclean
3000587849
Add Net::HTTP request modelling
2021-09-23 09:04:01 +01:00
Harry Maclean
2bdea01c8a
Add HTTP::Client concept
2021-09-23 09:04:01 +01:00
Rasmus Wriedt Larsen
d4564d5dd1
Python: Add QLDoc to Function.getArgByName
2021-09-23 10:01:04 +02:00
Robert Marsh
49f8fd2164
C++: whitespace fix
2021-09-22 16:54:03 -07:00
Robert Marsh
0c5d642489
C++: Rename SystemFunction and restore QLDoc
2021-09-22 14:22:57 -07:00
Robert Marsh
6f03c3e252
C++: Accept command injection test changes
...
Making the DefaultTaintTracking configurations inactive removed many
unneeded nodes and edges from the PathGraph predicates.
2021-09-22 14:19:23 -07:00
Robert Marsh
8faeab18b9
C++: move ResolveCall.qll out of internal directory
2021-09-22 11:54:47 -07:00
Robert Marsh
21ed5c430d
Merge branch 'main' into rdmarsh2/improve-exec-tainted
...
Manual fix for conflict in Models.qll
2021-09-22 11:51:18 -07:00
Alex Ford
21e31a47d9
Merge pull request #283 from github/file-system-sources
...
Start modelling some file system access concepts
2021-09-22 16:45:13 +01:00
Alex Ford
b769aa67c2
test for IO.open as a way of creating an IO instance
2021-09-22 16:29:10 +01:00
Erik Krogh Kristensen
805d1d170c
do not filter away regular expressions with lookbehinds
2021-09-22 17:14:29 +02:00
Alex Ford
0092c0279b
Apply suggestions from code review
...
Co-authored-by: Nick Rolfe <nickrolfe@github.com >
2021-09-22 14:28:15 +01:00
Tom Hvitved
e670fdbb82
Move two predicates in FlowSummaryImplSpecific.qll
2021-09-22 14:12:46 +02:00
haby0
6c07a3e260
Apply @yoff's suggestion
2021-09-22 18:50:58 +08:00
Tom Hvitved
a37737d065
Replace string kind with boolean preservesValue
2021-09-22 09:28:55 +02:00
Robert Marsh
d6fd83dd6c
C++: move resolveCall to its own file for perf
...
This avoids a performance issue in DataFlowImpl::localFlowStep when the
DataFlow::Configuration subclasses in DefaultTaintTracking are active
in the same query as other Configuration
subclasses.
ResolveCall.qll is kept internal for the moment.
2021-09-21 16:32:09 -07:00
Tom Hvitved
888183f26d
Desugar array literals to ::Array.[]
2021-09-21 21:27:29 +02:00
Alex Ford
70c2be8ca3
Files library tests
2021-09-21 19:08:03 +01:00
Alex Ford
05a04f4835
Files.qll library implementation
2021-09-21 19:07:55 +01:00
Alex Ford
6315621b16
use instanceof extensions for some filesystem concepts
2021-09-21 19:02:11 +01:00
Alex Ford
d1f2258d45
revamp weak file permissions query
2021-09-21 19:02:11 +01:00
Alex Ford
25300cb2b4
start modelling some file access concepts
2021-09-21 19:02:11 +01:00
ihsinme
88a257fcdc
Apply suggestions from code review
...
Co-authored-by: Mathias Vorreiter Pedersen <mathiasvp@github.com >
2021-09-21 20:32:08 +03:00
Nick Rolfe
dd31473dff
Merge pull request #301 from github/fix_source_archive
...
Fix filenames in source archives
2021-09-21 11:37:02 +01:00
Jonas Jensen
a055c86c4f
C++: change note
2021-09-21 11:58:04 +02:00
Nick Rolfe
d60410e6b8
Use integer comparisons instead of strings when scanning ERB files
2021-09-21 10:50:04 +01:00
Jonas Jensen
237a7d34b8
C++: Exclusion rules for system macros
...
Unwanted results were reported for our JPL Rule 24 queries. Including
system headers with complex macros could lead to unpredictable alerts
from these rules.
2021-09-21 11:31:13 +02:00
Tom Hvitved
cdc359527a
Resolve semantic conflicts after rebase
2021-09-21 11:14:11 +02:00
Tom Hvitved
564c76c41f
Address review comments
2021-09-21 11:04:53 +02:00
Tom Hvitved
08dc6d79ef
Add support for flow summaries
2021-09-21 11:04:53 +02:00
Nick Rolfe
3201f30098
Update dbscheme stats
2021-09-20 23:13:38 +01:00
Nick Rolfe
e97adff21d
Add upgrade script to remove unused tokeninfo columns
2021-09-20 22:42:13 +01:00
Nick Rolfe
6a17dfd228
Remove file column from tokeninfo tables.
2021-09-20 22:42:13 +01:00
Nick Rolfe
6f059638d2
Remove idx column from tokeninfo tables.
2021-09-20 22:42:13 +01:00
Nick Rolfe
143256e673
Fix filenames in source archives
2021-09-20 22:17:45 +01:00
Nick Rolfe
c183e05c49
Merge pull request #300 from github/fix_tests
...
Fix tests
2021-09-20 16:19:40 +01:00
Nick Rolfe
d27f8a6d24
Add empty subpaths section to expected test output
2021-09-20 15:56:58 +01:00
Tom Hvitved
8aaabe8b1e
Merge pull request #299 from github/hvitved/actions-reuse
...
Add two 'composite' actions for reusing logic
2021-09-20 15:55:28 +02:00
Nick Rolfe
6f7d4fef70
Merge pull request #287 from github/unsafe-deserialization
...
rb/unsafe-deserialization query
2021-09-20 14:23:30 +01:00
Nick Rolfe
8af12a164a
Merge pull request #298 from github/trap_extension
...
Fix trap extension for source files without extensions
2021-09-20 14:23:01 +01:00
Tom Hvitved
e201dae672
Add two 'composite' actions for reusing logic
2021-09-20 14:52:02 +02:00
Nick Rolfe
c30c7b380d
Replace if let with match.
2021-09-20 12:22:55 +01:00
Nick Rolfe
0936c4cd7b
Fix trap extension for source files without extensions
...
We were writing files with names like `Gemfile..trap.gz`. Now fixed to
`Gemfile.trap.gz`.
2021-09-20 12:11:00 +01:00
Tom Hvitved
4bfbf62e13
Merge pull request #296 from github/hvitved/empty-location
...
Extract a special empty location
2021-09-20 13:05:27 +02:00
Tom Hvitved
1393dc9eb4
Update extractor/src/main.rs
...
Co-authored-by: Nick Rolfe <nickrolfe@github.com >
2021-09-20 12:50:24 +02:00
Harry Maclean
95e50cedad
Add query for Code Injection
...
This query finds cases where user input flows to an argument to `eval`
or `send`, which can execute arbitrary Ruby code.
2021-09-20 11:35:45 +01:00
Harry Maclean
916b844557
Merge pull request #280 from github/hmac-cli-injection
...
Add CLI Injection query
2021-09-20 08:54:01 +01:00
Tom Hvitved
b2d0c60a02
Replace hasLocationInfo with getLocation in API::Node
2021-09-20 09:52:26 +02:00
Tom Hvitved
58d06715fc
Extract a special empty location
2021-09-20 09:52:26 +02:00
Robert Marsh
a9add04ee3
C++: remove unneed import
2021-09-17 12:17:06 -07:00
Robert Marsh
d3d708bc68
C++: QLDoc for CommandExecution model
2021-09-17 12:16:20 -07:00
Alex Ford
36289aa9d9
Merge pull request #255 from github/reflected-xss
...
rb/reflected-xss query
2021-09-17 18:32:48 +01:00
Harry Maclean
739661eb10
Test that KernelMethodCall is specific enough
...
Calls to `UnknownModule.system`, where `UnknownModule` is a module that
we know nothing about, should not be identified as instances of
`KernelMethodCall`.
2021-09-17 17:02:17 +01:00
Harry Maclean
64a8cedaa7
Generalise the concept of a Kernel method call
2021-09-17 17:02:17 +01:00
Harry Maclean
599dc28ffa
Add another test for shell interpretation
2021-09-17 17:02:17 +01:00
Harry Maclean
f8359767bc
Exclude non-shell interpreted args
...
Update the CommandInjection query to only consider sinks where the
argument is interpreted by a shell. If the argument is passed directly
to a subprocess then it's not vulnerable to shell injection.
2021-09-17 17:02:17 +01:00
Harry Maclean
c8e9a592f0
Update CLI injection tests
...
Cover more cases, like sinks after (but not guarded by) barrier guards.
2021-09-17 17:02:17 +01:00
Harry Maclean
d046fb0591
Separate open3 pipeline methods
...
These have a slightly different structure than the other open3 methods.
2021-09-17 17:02:17 +01:00
Harry Maclean
174ba25c66
Update SystemCommandExecution to new pattern
...
The new pattern is to use the new instanceof keyword in the class
definition, instead of constraining the "superclass" via a member field.
2021-09-17 17:02:17 +01:00
Harry Maclean
cbc14ccda9
Make KernelSystemCall more specific
...
Test that calls to`system` on modules other than `Kernel` are excluded,
such as in this example:
module Foo
def self.system(*args); end
end
# This is not a call to Kernel.system
Foo.system("bar")
2021-09-17 17:02:17 +01:00
Harry Maclean
fb23a2e3bf
Add SubshellHeredocExecution
...
This is a form of command execution:
result = <<`EOF`
echo foo bar #{baz}
EOF
2021-09-17 17:02:17 +01:00
Harry Maclean
799ef4e4c9
Add barrier guards for CLI injection
2021-09-17 17:02:17 +01:00
Harry Maclean
4ecc78effc
Kernel#system -> Kernel.system
2021-09-17 17:02:17 +01:00
Harry Maclean
8f65d78cb5
Add Shellwords.escape as CLI injection sanitizer
2021-09-17 17:02:17 +01:00
Harry Maclean
fe8fc0697b
Add qhelp for CLI Injection query
2021-09-17 17:02:17 +01:00
Harry Maclean
4a0d7c528a
Add top-level CLI injection query and tests
2021-09-17 17:02:17 +01:00
Harry Maclean
8440fe2ba9
Add CommandInjection dataflow config
2021-09-17 17:02:17 +01:00
Harry Maclean
a8f0bce1d1
Add SystemCommandExecution concept
...
A SystemCommandExecution is a method call or builtin that executes a
system command, either directly or via a subshell.
2021-09-17 17:02:17 +01:00
Nick Rolfe
3c05101961
Merge pull request #290 from github/extract_gemfile
...
Automatically extract Gemfiles
2021-09-17 16:42:30 +01:00
Nick Rolfe
3d23575a38
Merge pull request #292 from github/regexp_slash_az
...
Don't parse `\A` and `\Z` as `RegExpConstant`
2021-09-17 16:42:13 +01:00
Geoffrey White
e7c82d7370
C++: Accept subpaths in tests.
2021-09-17 16:14:24 +01:00
Geoffrey White
24668b2281
Merge branch 'main' into cwe139
2021-09-17 16:04:51 +01:00
Geoffrey White
51243454c8
C++: Change note.
2021-09-17 15:10:55 +01:00
Geoffrey White
90bc138049
CPP: Fix QLDoc comments.
2021-09-17 14:12:04 +01:00
haby0
99167539fb
Modify sinks
2021-09-17 17:29:40 +08:00
Geoffrey White
a3de94e868
C++: Assign precision and severity; medium for now, since there are FPs in SAMATE Juliet.
2021-09-17 10:05:06 +01:00
ihsinme
b6bcf9fa44
Add files via upload
2021-09-16 19:18:19 +03:00
ihsinme
b393c6a285
Add files via upload
2021-09-16 19:16:54 +03:00
Rasmus Lerchedahl Petersen
64685f31dc
Python: Add missing qldoc
...
Also do some general cleanup
How was this allowed comitted in the first place?
2021-09-16 16:51:43 +02:00
haby0
0277601705
Eliminate false positives caused by .
2021-09-16 20:59:34 +08:00
Rasmus Lerchedahl Petersen
72bf390ec5
Merge branch 'main' of github.com:github/codeql into python/promote-regex-injection
2021-09-16 14:50:17 +02:00
Tom Hvitved
1fd91ab9bd
Merge pull request #295 from github/hvitved/remove-numlines
...
No longer create redundant `numlines` relation
2021-09-16 13:21:20 +02:00
Tom Hvitved
464b50231b
DB upgrade script
2021-09-16 12:57:32 +02:00
Tom Hvitved
fd04baa9fe
No longer create redundant numlines relation
2021-09-16 11:43:13 +02:00
Alex Ford
e89d485bc0
update test output (subpaths)
2021-09-15 20:51:14 +01:00
Alex Ford
773291e4c3
Put exprNodeReturnedFrom predicate in DataFlowDispatch.qll
2021-09-15 20:50:46 +01:00
Alex Ford
e80faa017c
Fix rb/reflected-xss flow from helper method return values
2021-09-15 20:50:46 +01:00
Alex Ford
35da921deb
format
2021-09-15 20:50:46 +01:00
Alex Ford
50b0bb8b36
Restrict rb/reflected-xss instance variable taint edges
2021-09-15 20:50:46 +01:00
Alex Ford
5cfefb1027
Add some more test cases for rb/reflected-xss
2021-09-15 20:50:46 +01:00
Alex Ford
6cc82d46f3
Fix LinkToCallArgumentAsSink matching when link_to is passed a block
2021-09-15 20:50:46 +01:00
Alex Ford
200c8f2493
Add some HTMLEscaping implementations for Rails
2021-09-15 20:50:46 +01:00
Alex Ford
2e65f9b80e
update some comments referencing view components
2021-09-15 20:50:46 +01:00
Alex Ford
98fd0e1c24
Update ql/src/queries/security/cwe-079/ReflectedXSS.qhelp
...
Co-authored-by: Nick Rolfe <nickrolfe@github.com >
2021-09-15 20:50:46 +01:00
Alex Ford
0689e6095e
make a type more specific
2021-09-15 20:50:46 +01:00
Alex Ford
ed708c1903
Update ql/src/queries/security/cwe-079/ReflectedXSS.qhelp
...
Co-authored-by: Nick Rolfe <nickrolfe@github.com >
2021-09-15 20:50:46 +01:00
Alex Ford
eed87b3319
Apply suggestions from code review
...
Co-authored-by: Nick Rolfe <nickrolfe@github.com >
2021-09-15 20:50:46 +01:00
Alex Ford
205b141482
format
2021-09-15 20:50:46 +01:00
Alex Ford
76864a82be
remove an incorrect test case
2021-09-15 20:50:46 +01:00
Alex Ford
3445a6a5e7
fix flow steps from controller instance var assignement to view read access
2021-09-15 20:50:46 +01:00
Alex Ford
b993723595
remove spurious ivar -> locals hash mapping (actionview/controller)
2021-09-15 20:50:46 +01:00
Alex Ford
3430a46440
fix some local variable mappings between view and controller
2021-09-15 20:50:46 +01:00
Alex Ford
b264a05288
Update ql/lib/codeql/ruby/security/ReflectedXSSCustomizations.qll
...
Co-authored-by: Harry Maclean <hmac@github.com >
2021-09-15 20:50:46 +01:00
Alex Ford
dbb239b04e
reorder and format rb/reflected-xss qhelp
2021-09-15 20:50:46 +01:00
Alex Ford
d71dd3f6c7
rb/reflected-xss
2021-09-15 20:50:46 +01:00
Robert Marsh
c85cc1455b
C++: accept changes to new ExecTainted test
2021-09-15 11:27:13 -07:00
Robert Marsh
a3e1f54e33
C++: Refactor models to prevent IR reevaluation
2021-09-15 10:55:56 -07:00
Robert Marsh
509a3493b6
C++: support new subpaths predicate in ExecTainted
2021-09-15 10:55:56 -07:00
Robert Marsh
09ef8f639e
C++: Improve performance by restricting isSource
2021-09-15 10:55:55 -07:00
Robert Marsh
83cc098412
C++: accept test output
2021-09-15 10:55:55 -07:00
Robert Marsh
3cd08bc724
C++: autoformat Printf.qll
2021-09-15 10:55:55 -07:00
Robert Marsh
fe1f9878ba
C++: add GVN import to fix reevaluation
2021-09-15 10:55:54 -07:00
Robert Marsh
e874fbbea2
C++: Add path stitching in ExecTainted.ql
2021-09-15 10:55:54 -07:00
Robert Marsh
5dc6e13ab5
C++: use TaintTracking2 in ExecTainted.ql
2021-09-15 10:55:53 -07:00
Robert Marsh
4d2036fa26
C++: change note for cpp/command-line-injection
2021-09-15 10:55:53 -07:00
Robert Marsh
c30e7ec41a
C++: raise precision of cpp/command-line-injection
2021-09-15 10:55:53 -07:00
Robert Marsh
181eb803e1
C++: Add QLDoc for getOutputArgument
2021-09-15 10:55:52 -07:00
Robert Marsh
37c92178a5
C++: exclude int/string conversion in ExecTainted
2021-09-15 10:55:52 -07:00
Robert Marsh
5e265f45e1
C++: ExecTainted tests for int/string conversions
2021-09-15 10:55:51 -07:00
Robert Marsh
9926892c8a
C++: remove debugging predicates
2021-09-15 10:55:51 -07:00
Robert Marsh
9c478c502e
C++: add some more tests for ExecTainted
2021-09-15 10:55:50 -07:00
Robert Marsh
562c8b97ad
C++: add comment explaining concatenation logic
2021-09-15 10:55:50 -07:00
Robert Marsh
6f408f949c
C++: Refactor ExecTainted.ql to need concatenation
...
This makes ExecTainted report results only when the tainted value does
not become the start of the string which is eventually run as a shell
command. The theory is that those cases are likely to be deliberate, and
part of the expected threat model of the program (e.g. $CC in make).
This lines up better with the results I considered fixable true
positives in LGTM testing
2021-09-15 10:55:49 -07:00
Robert Marsh
8f4df8603a
C++: more tests for command injection
2021-09-15 10:55:49 -07:00
Tom Hvitved
d3a1d0a62a
Merge pull request #294 from github/bump-codeql
...
Bump `codeql` submodule
2021-09-15 16:24:04 +02:00
Tom Hvitved
9e67382f06
Bump codeql submodule
2021-09-15 14:59:42 +02:00
haby0
c60eded2de
Fix conflicting
2021-09-15 11:07:43 +08:00
Nick Rolfe
961674e4a8
Update expected output now we extract the Gemfile
2021-09-14 18:23:57 +01:00
Nick Rolfe
ec13133317
Automatically extract .gemspec and Gemfile files
...
They are just Ruby code, after all.
2021-09-14 18:23:57 +01:00
Nick Rolfe
ebf23d00d1
Don't parse \A and \Z as RegExpConstant
...
Fixes some FPs for the ReDoS queries.
2021-09-14 16:49:35 +01:00
Harry Maclean
12723f0f13
Merge pull request #288 from github/hmac-barrier-guard-checks
...
Make barrier guards more specific
2021-09-14 16:16:20 +01:00
Arthur Baars
e03fe0fcd4
Add ClassifyFiles.ql
2021-09-14 16:30:34 +02:00
haby0
9e63aa9d84
Update query
2021-09-14 21:12:49 +08:00
Tom Hvitved
f4e2c30d86
Merge pull request #291 from github/hvitved/regexp-multiples
...
Speedup `RegExp::multiples`
2021-09-14 14:22:20 +02:00
Tom Hvitved
8ac3dc29e0
Speedup RegExp::multiples
...
Use regexps to perform matching to avoid constructing sub strings.
2021-09-14 13:58:24 +02:00
Rasmus Lerchedahl Petersen
c2d2037726
Python: Add change note and set precision
2021-09-14 13:45:51 +02:00
Rasmus Lerchedahl Petersen
1c7982b319
Python: Move query tests over
2021-09-14 13:29:21 +02:00
Rasmus Lerchedahl Petersen
36e27f2aa4
Python: Remove promoted code:
...
- queries (`py/regex-injection`)
- concepts (RegexExecution, RegexEscape)
- library models (Stdlib::Re)
2021-09-14 13:14:16 +02:00
Rasmus Lerchedahl Petersen
abbd1d1dc5
Python: Fix errors introduced during port
...
testing on a database helps..
2021-09-14 13:08:21 +02:00
Harry Maclean
4763312e55
Merge ConditionBlock and BarrierGuard
2021-09-14 11:11:12 +01:00
Rasmus Lerchedahl Petersen
6c82daef3d
Python: Move Regexinjection out of experimental
...
and fix up structure
2021-09-14 11:54:59 +02:00
Rasmus Lerchedahl Petersen
3d5192d6d3
Python: Fix typos
2021-09-14 11:54:11 +02:00
Arthur Baars
c2ec6407f5
Add AlertSuppression.ql
2021-09-14 11:53:53 +02:00
Rasmus Lerchedahl Petersen
a30f697537
Python: Add getName to RegexExecution concept
2021-09-14 11:53:40 +02:00
Rasmus Lerchedahl Petersen
8f152a5bfb
Python: Port regex concepts and adapt PolyRedos
2021-09-13 16:50:00 +02:00
Geoffrey White
67c6b35845
C++: We get many more real world results using taint tracking.
2021-09-13 15:03:28 +01:00
Geoffrey White
0e8064dbf9
C++: Add a test demonstrating taint.
2021-09-13 15:00:31 +01:00
Geoffrey White
ee7ccd7936
C++: Upgrade to path problem.
2021-09-13 13:52:12 +01:00
Harry Maclean
6f32401e5c
Add unless x != test to barrier guards
...
This tests that the following call to `foo bar` is guarded:
unless bar != "bar"
foo bar
end
2021-09-13 11:58:17 +01:00
Geoffrey White
f58177f292
C++: Full dataflow version.
2021-09-13 10:53:09 +01:00
Geoffrey White
e696eaaa2f
C++: Fix false positives involving STDIN_FILENO.
2021-09-13 09:50:19 +01:00
Geoffrey White
3ba9e80635
C++: Support various functions / variants.
2021-09-13 09:50:03 +01:00
Geoffrey White
1707d67adb
C++: Support 'send' as well.
2021-09-13 09:49:40 +01:00
Geoffrey White
29ad3bf7f8
C++: Test dataflow and other slightly more complex cases.
2021-09-13 09:49:25 +01:00
Harry Maclean
800e18349f
Add != to StringConstCompare
...
This means we treat != comparisons against strings as taint tracking guards:
if foo != "A"
foo # still tainted
else
foo # not tainted, because we know foo == "A"
end
2021-09-10 16:42:45 +01:00
Harry Maclean
8f36b0d7fe
Simplify guard in SQL injection tests
...
We don't (yet) properly sanitize taint in cases like this
foo = "A" unless foo == "B"
So for now, use a simpler guard in the SQL injection test.
We can resurrect the old, more idiomatic guard when we can support it.
2021-09-10 16:27:57 +01:00
Harry Maclean
56983565fe
Update ReDoS length guard
...
Changes to barrier guards in a previous commit mean we need to update
this guard to match.
2021-09-10 16:21:17 +01:00
Nick Rolfe
b51e741439
Merge pull request #289 from github/rust_warnings
...
Fix 'unused borrow that must be used' warnings.
2021-09-09 17:27:05 +01:00
Nick Rolfe
cf72bada3d
Fix 'unused borrow that must be used' warnings.
...
I don't remember seeing this warning before upgrading to Rust 1.55
2021-09-09 17:03:10 +01:00
Rasmus Lerchedahl Petersen
6c5596d17e
Python: rewrite test
2021-09-09 13:45:44 +02:00
Rasmus Lerchedahl Petersen
e27b3162e5
Python: rewrite simpleLocalFlowStep
...
to take into account the split between
import time and runtime.
2021-09-09 12:43:08 +02:00
Nick Rolfe
6dbf6d7e82
Merge pull request #278 from github/aibaars/revert-hotfix
...
Revert "Use hotfixed version of `codeql/suite-helpers` with workaround for bug in released CLI"
2021-09-09 11:21:20 +01:00
Harry Maclean
b4c29425ea
Make barrier guards more specific
...
Following examples from the other libraries, this change introduces a
member predicate `checks(CfgNode expr, boolean branch)` to
`BarrierGuard`, which holds if the guard validates `expr` for a
particular value of `branch`, which represents the value of the
condition in the guard.
For example, in the following guard...
if foo == "foo"
do_something foo
else
do_something_else foo
end
...the variable `foo` is validated when the condition `foo == "foo"` is
true.
We also introduce the concept that a guard "controls" a code block based
on the value of `branch`. In the example above, the "then" branch of the
if statement is controlled when `branch` is true. The else branch is
not controlled because `foo` can take (almost) any value in that branch.
Based on these concepts, we define a guarded node to be a read of a
validated variable in a controlled block.
In the above example, the `foo` in `do_something foo` is guarded, but
the `foo` in `do_something_else foo` is not.
2021-09-09 11:04:52 +01:00
Nick Rolfe
2ddca2c0db
Document and test YAML.safe_load
2021-09-08 18:22:31 +01:00
Nick Rolfe
760dbd739d
Add test for rb/unsafe-deserialization
2021-09-08 17:49:23 +01:00
Nick Rolfe
9b9fc18605
Add taint step for Base64.decode64
2021-09-08 17:49:23 +01:00
Nick Rolfe
adceb0a2a1
Add query rb/unsafe-deserialization
2021-09-08 17:49:23 +01:00
Rasmus Lerchedahl Petersen
a9c409403c
Python: more tests and comments
2021-09-08 14:44:36 +02:00
Rasmus Lerchedahl Petersen
9b198c6d0a
Python: Add some module initialization tests
2021-09-08 10:37:28 +02:00
jorgectf
eee9b3f39e
Merge remote-tracking branch 'origin/main' into jorgectf/python/headerInjection
2021-09-07 19:54:58 +02:00
jorgectf
352eab0eca
Fix HeaderDeclaration class' comment
2021-09-07 19:44:25 +02:00
Jorge
190bc2f0da
Apply suggestions from code review
...
Co-authored-by: Taus <tausbn@github.com >
2021-09-07 19:42:37 +02:00
Nick Rolfe
a62aa2b1b2
Merge pull request #269 from github/polynomial_redos
...
Polynomial ReDoS query
2021-09-07 18:31:04 +01:00
Nick Rolfe
414362db8d
Rename .qll to match our naming scheme for other dataflow queries.
2021-09-07 17:38:08 +01:00
Nick Rolfe
7666d856b7
Merge remote-tracking branch 'origin/main' into polynomial_redos
2021-09-07 17:35:07 +01:00
Nick Rolfe
4d5928ae5a
Add @security-severity tag
2021-09-07 12:15:44 +01:00
Nick Rolfe
8fbe5c0adf
Merge pull request #261 from github/getPrimaryQlClasses
...
Implement getPrimaryQlClasses
2021-09-07 12:02:15 +01:00
Tom Hvitved
8ce7fdc59a
Merge pull request #284 from github/hvitved/instanceof-test
...
Use `instanceof` base classes
2021-09-07 13:01:43 +02:00
Nick Rolfe
060060bc0b
Merge remote-tracking branch 'origin/main' into getPrimaryQlClasses
2021-09-06 19:34:34 +01:00
Geoffrey White
cd5a5347fc
C++: Add basic test.
2021-09-06 18:11:34 +01:00
Geoffrey White
246302453f
C++: Add CleartextTransmission query.
2021-09-06 18:11:19 +01:00
Tom Hvitved
3594794875
Use instanceof base classes in range patterns
2021-09-06 16:15:52 +02:00
Tom Hvitved
9b3b9a731f
Move instanceof check from charpred in CfgScope
2021-09-06 10:31:16 +02:00
Calum Grant
51d729a086
Merge pull request #282 from github/add-coc
...
Create CODE_OF_CONDUCT.md
2021-09-03 14:25:44 +01:00
Harry Maclean
36d5fda400
Merge pull request #260 from github/hmac-url-redirect
...
Add URLRedirect query
2021-09-03 13:36:54 +01:00
Pierre
12c1f43ceb
Create CODE_OF_CONDUCT.md
...
Add COC based on the latest template.
2021-09-03 14:27:04 +02:00
Harry Maclean
87253032e2
Add a query for URL redirect vulnerabilities
...
This query finds instances of CWE-601: Redirection to Untrusted Site.
The structure is copied from a query of the same name in the Python
library. We add customisations specific to `ActionController`.
2021-09-03 13:17:14 +01:00
Calum Grant
799c0ff252
Merge pull request #281 from github/add-license
...
Add LICENSE
2021-09-03 13:14:15 +01:00
Pierre
bc85a1b825
Add LICENSE file
...
Required step for open-sourcing. This uses the same license at `codeql-ruby`.
2021-09-03 13:10:54 +02:00
Nick Rolfe
47e5a8fd09
Add test for polynomial ReDoS query
2021-09-02 17:57:56 +01:00
Nick Rolfe
cbe23661ed
Rename exponential ReDoS test directory
2021-09-02 17:57:56 +01:00
Nick Rolfe
d62b41bdf4
Add query for polynomial ReDoS
2021-09-02 17:57:56 +01:00
Alex Ford
86073776b7
Merge pull request #249 from github/erb-lib
...
Add codeql_ruby.ast.Erb library
2021-09-02 16:26:52 +01:00
Arthur Baars
ab4cc753b0
Revert "Use hotfixed version of codeql/suite-helpers with workaround for bug in released CLI"
...
This reverts commit 9d7b77496e .
2021-09-02 16:01:51 +02:00
Tom Hvitved
b8ec5d7d31
Merge pull request #276 from github/hvitved/api-graphs-comment-typo
...
Fix typo in comment
2021-09-02 12:50:25 +02:00
Tom Hvitved
2d0febeb04
Fix typo in comment
2021-09-02 10:24:37 +02:00
Tom Hvitved
c176d344ab
Merge pull request #274 from github/hvitved/cfg/may-raise
...
CFG: Model calls that may raise an exception
2021-09-01 17:42:13 +02:00
Tom Hvitved
6e23a9ae7a
Merge pull request #275 from github/hvitved/api-graphs-fix
...
API graphs: Fix bug for resolvable modules
2021-09-01 17:10:27 +02:00
Tom Hvitved
03e91a22bc
API graphs: Performance fixes
2021-09-01 16:57:56 +02:00
Tom Hvitved
ae70af01cd
API graphs: Fix bug for resolvable modules
2021-09-01 16:57:52 +02:00
Tom Hvitved
031a73ff0f
Add API graph test that exhibits a missing edge
2021-09-01 16:56:09 +02:00
Tom Hvitved
701eab7b74
Merge pull request #273 from github/hvitved/has-name
...
Add `hasName` predicates
2021-09-01 15:39:39 +02:00
Tom Hvitved
89e6c0e838
CFG: Model calls that may raise an exception
...
In order to avoid dead `rescue`s, we assume that any call that happens in a
`rescue`/`ensure` context may raise an exception.
2021-09-01 14:07:28 +02:00
Tom Hvitved
4eaa31d800
Add hasName predicates
2021-09-01 13:32:19 +02:00
Alex Ford
41e7ef11e6
add missing pragma back
2021-08-31 21:19:56 +01:00
Alex Ford
d47c8ee9a5
format
2021-08-31 21:04:43 +01:00
Tom Hvitved
2d08b0156a
Merge pull request #271 from github/hvitved/cfg/shared
...
Adopt shared CFG library
2021-08-31 19:41:02 +02:00
Alex Ford
20b851a6e0
improve ErbExecutionDirective definition
2021-08-31 17:49:15 +01:00
Alex Ford
df9e0dfcb2
make strictlyBefore a member predicate on Location
2021-08-31 16:24:38 +01:00
Alex Ford
d84731bcc7
Add a library for working with the ERB AST
2021-08-31 16:24:38 +01:00
Harry Maclean
502ad3f9bd
Merge pull request #247 from github/hmac-jump-to-def
...
Jump-to-definition
2021-08-31 16:00:43 +01:00
Harry Maclean
3490e328e1
codeql_ruby -> codeql.ruby
2021-08-31 15:43:02 +01:00
Harry Maclean
d3f683e573
Minor refactor of constantQualifiedName
2021-08-31 15:42:06 +01:00
Harry Maclean
34f02ee622
Fix constantQualifiedName
...
Exclude partial results
Co-authored-by: Alex Ford <alexrford@users.noreply.github.com >
2021-08-31 15:42:06 +01:00
Harry Maclean
91d56cd802
Use dataflow to find method call targets
...
This includes both local and non-local methods, and is also simpler than
the previous definition.
2021-08-31 15:42:06 +01:00
Harry Maclean
cd3192e8f1
Fix ordering for definitionOf
...
Actually select the lexicographically least location, not the greatest.
2021-08-31 15:42:06 +01:00
Harry Maclean
8901eba978
Include constants in jump-to-def query
...
The previous version of this query inadvertently excluded constants
which weren't classes or modules. This version includes them, by
introducing a laxer version of `resolveScopeExpr` that doesn't require
the result to be a `TResolved`.
2021-08-31 15:42:06 +01:00
Harry Maclean
155b385981
Simplify LocalVariable constraint in jump-to-def
2021-08-31 15:42:06 +01:00
Harry Maclean
e72f1399cb
Include class variables in jump-to-def query
2021-08-31 15:42:06 +01:00
Harry Maclean
e84ebe2b94
Include instance variables in jump-to-def query
...
By convention, instance variables are considered to be "defined" in the
`#initialize` method of their containing class. If an instance variable
is written to in `#initialize` and then read elsewhere in the program,
we will point from the read to the write. If it is not written to in
`#initialize` then we won't provide any jump-to-definition information
for it.
2021-08-31 15:42:06 +01:00
Harry Maclean
a16cd8967b
Ignore synthesised reads for jump-to-definition
...
We synthesise variables for things like tuple patterns. For example,
this Ruby code:
a, b = ...
becomes:
__synth__0 = ...
a = __synth__0[0]
b = __synth__0[1]
The `__synth__` variables should be ignored when calculating
jump-to-definition information, since they don't appear in the original
source code.
2021-08-31 15:42:05 +01:00
Harry Maclean
a814010665
Small refactor to constantQualifiedName
2021-08-31 15:42:05 +01:00
Harry Maclean
95e2b8a4a4
Simplify jump-to-def query
...
The expected output format is a tuple (a, b, k) where `a` and `b` are any
`AstNode` subclass and `k` is a string indicating the kind of
definition (e.g. variable, method, ...).
By ensuring that every value in `DefLoc` is a subclass of `Expr` (itself
a subclass of `AstNode`) we can simplify the query by removing all the
use of `getLocation()`.
2021-08-31 15:42:05 +01:00
Harry Maclean
19e135fb6f
Remove redundant imports
2021-08-31 15:42:05 +01:00
Harry Maclean
2fbbabda2d
First draft of a jump-to-definition query
...
TODO: flesh out this message
2021-08-31 15:42:05 +01:00
Nick Rolfe
d1171e08b1
Merge pull request #272 from github/fix_upgrade
...
Fix typo in db upgrade script
2021-08-31 15:34:55 +01:00
Nick Rolfe
ad66f03f90
Fix typo in db upgrade script
2021-08-31 15:23:16 +01:00
Tom Hvitved
eeb68a88b6
Add make target to run tests locally
2021-08-31 14:22:26 +02:00
Tom Hvitved
4677a0832f
Adopt shared CFG library
2021-08-31 13:42:41 +02:00
Tom Hvitved
50158b82c8
Sync shared files
2021-08-31 13:42:25 +02:00
Tom Hvitved
b9745c8e27
Bump codeql submodule
2021-08-31 13:38:52 +02:00
Arthur Baars
60aca018a8
Merge pull request #254 from github/hvitved/drop-files-folders-columns
...
Drop redundant columns from `files` and `folders` relations
2021-08-31 12:30:05 +02:00
Tom Hvitved
c70407ae8c
Update DB stats
2021-08-31 12:19:35 +02:00
Tom Hvitved
652d2a7a72
DB upgrade script
2021-08-31 12:19:35 +02:00
Tom Hvitved
7f03b87142
Drop redundant columns from files and folders relations
2021-08-31 12:16:26 +02:00
Arthur Baars
32253aa868
Merge pull request #266 from github/dbartol/refactor-packs
...
Refactor Ruby into library and query packs
2021-08-31 12:14:00 +02:00
Dave Bartolomeo
42629b969f
Move initial dbscheme
2021-08-26 19:43:06 -04:00
Dave Bartolomeo
593f3b62fe
Fix paths in upgrade script check
2021-08-26 19:26:26 -04:00
Dave Bartolomeo
9c03a02965
Update lock file for hotfix
2021-08-26 19:13:48 -04:00
Dave Bartolomeo
2c1620f25e
Move missed library file
2021-08-26 18:59:58 -04:00
Dave Bartolomeo
9d7b77496e
Use hotfixed version of codeql/suite-helpers with workaround for bug in released CLI
2021-08-26 18:50:04 -04:00
Dave Bartolomeo
11ad664bfb
Updated pack versions and lock files
2021-08-26 18:50:04 -04:00
Dave Bartolomeo
eb412fb31e
Fix PowerShell version of extractor pack script
2021-08-26 18:50:04 -04:00
Dave Bartolomeo
56332a676d
Ignore .codeql output directories
2021-08-26 18:50:04 -04:00
Arthur Baars
ac2c315839
Fix merge conflicts during rebase
2021-08-26 18:48:53 -04:00
Arthur Baars
0afcb9cc86
Workaround for compilation failure
2021-08-26 18:42:06 -04:00
Arthur Baars
817f8747de
Fix build
2021-08-26 18:42:02 -04:00
Arthur Baars
17fc6ab72c
Refactor into separate library and query packs
2021-08-26 18:40:06 -04:00
Alex Ford
ee6c809281
Merge pull request #262 from github/action-view-1
...
Start modelling ActionView
2021-08-26 15:22:55 +01:00
Tom Hvitved
348b12c109
Merge pull request #268 from github/hvitved/db-upgrade-pr-check
...
Add DB upgrade script check
2021-08-26 16:06:06 +02:00
Tom Hvitved
42daf5b6d3
Add DB upgrade script check
2021-08-26 15:55:18 +02:00
Alex Ford
9571e7bccc
drop ViewComponent parts from the ActionView library
2021-08-26 14:45:47 +01:00
Alex Ford
a3ae5bcec4
improve ActionControllerHelperMethod doc
2021-08-26 14:12:27 +01:00
Nick Rolfe
4ec30b2a4b
Merge pull request #267 from github/erik-krogh/redosUnicode
...
use toUnicode in ReDoSUtil.qll
2021-08-26 11:08:31 +01:00
Erik Krogh Kristensen
ff27a0c894
use toUnicode in ReDoSUtil.qll
2021-08-26 08:46:51 +00:00
Alex Ford
4a4b2445dc
Clean up how we map between Rails actions and default associated template files
2021-08-26 04:57:15 +01:00
Nick Rolfe
ffd80fcc88
Merge pull request #263 from github/bump_ts
...
Bump tree-sitter versions to pick up parsing fixes
2021-08-25 16:35:23 +01:00
Harry Maclean
4cbd848497
Merge pull request #264 from github/hmac-dependabot
...
Enable dependabot on the Rust projects
2021-08-25 16:34:29 +01:00
Harry Maclean
0bd7e5914f
Enable dependabot on the Rust projects
...
Add a dependabot.yml file to trigger daily dependabot updates on the
four Rust projects in the codebase:
- `node_types`
- `generator`
- `extractor`
- `autobuilder`
2021-08-25 15:35:31 +01:00
Nick Rolfe
3b0055a7c0
Use published crate for tree-sitter-ruby 0.19
2021-08-25 14:32:01 +01:00
Nick Rolfe
bc06817611
Add ERB comment as regression test for parsing bug
2021-08-25 12:43:33 +01:00
Nick Rolfe
289b59d3b0
Bump tree-sitter versions to pick up parsing fixes
...
Particularly, in tree-siter-embedded-template
2021-08-25 11:58:56 +01:00
Alex Ford
abc283ee8a
remove ErbFile refs
2021-08-24 17:22:35 +01:00
Alex Ford
e403fc77d3
tests
2021-08-24 17:21:22 +01:00
Alex Ford
d628716c42
extend ActionController tests
2021-08-24 17:21:22 +01:00
Alex Ford
41ff10c908
extend modelling of ActionController, and start modelling ActionView
2021-08-24 17:21:22 +01:00
Nick Rolfe
5e783e4798
Implement getPrimaryQlClasses
2021-08-24 14:49:56 +01:00
Nick Rolfe
9c17e00645
Merge pull request #256 from github/syncRedos
...
sync ReDoSUtil.qll with python/JS
2021-08-23 10:11:16 +01:00
Harry Maclean
a2115f41e8
Merge pull request #259 from github/hmac-print-ast
...
Don't include desugared nodes in the printed AST
2021-08-18 09:16:36 +01:00
Harry Maclean
e82c21d35d
Don't include desugared nodes in the printed AST
...
The base `PrintAstConfiguration` class already has a predicate for
filtering out desugared nodes - this change just makes use of it in the
query.
This fixes https://github.com/github/codeql-team/issues/408 , which was
caused by including nodes representing the desugaring of
a[b] = c
in the query output. This would result in multiple edges to the same
target node (one from the surface AST and another from the desugared
AST), which the VSCode AST viewer cannot handle.
2021-08-17 15:20:30 +01:00
Arthur Baars
df4fb23f37
Merge pull request #246 from github/aibaars/tweaks
...
Add an example snippet query
2021-08-17 12:42:02 +02:00
Arthur Baars
9b877dc6e1
Add an example snippet query
2021-08-17 11:29:44 +01:00
Tom Hvitved
50cfd9c318
Merge pull request #257 from github/hvitved/cfg/erb
...
CFG: Allow `erb` top-level scopes
2021-08-17 11:21:44 +02:00
Arthur Baars
115a13f50c
Merge pull request #258 from github/qltest-no-beta
...
Exclude beta releases of code-cli for qltest job
2021-08-17 11:09:53 +02:00
Alex Ford
8427a6bcee
exclude beta releases of code-cli for qltest job
2021-08-17 09:57:52 +01:00
Tom Hvitved
394c27a279
CFG: Allow erb top-level scopes
2021-08-17 10:46:15 +02:00
Erik Krogh Kristensen
5e63b0b132
add RegExpSubPattern.getOperand
2021-08-16 12:14:53 +00:00
Erik Krogh Kristensen
8bd663a7ce
sync ReDoSUtil.qll with python/JS
2021-08-16 12:04:22 +00:00
Alex Ford
0f6c464d27
Merge pull request #251 from github/aibaars/test
...
Add integration test
2021-08-11 16:54:47 +01:00
Arthur Baars
f26f8c1e05
Add integration test
2021-08-11 12:54:30 +02:00
Alex Ford
4d6d6a4016
Merge pull request #236 from github/more-concepts
...
Port some concepts to Concepts.qll
2021-08-10 12:42:40 +01:00
Calum Grant
e29e61fd3e
Merge pull request #250 from github/aibaars-patch-2
...
Use strict 3 digit semantic version number
2021-08-10 11:41:15 +01:00
Arthur Baars
da464511ec
Use strict 3 digit semantic version number
2021-08-10 12:02:54 +02:00
Aditya Sharad
0b64ef2579
Merge pull request #248 from github/hmakholm/pr/windows-autobuilder
...
attempt to fix Windows autobuilder script
2021-08-09 09:49:17 -07:00
Henning Makholm
d9880075cc
attempt to fix Windows autobuilder script
2021-08-09 18:35:45 +02:00
Tom Hvitved
c0049bf161
Merge pull request #229 from github/hvitved/api-graphs/remove-mk-module
...
API graphs: Remove `MkModule`
2021-08-09 13:10:17 +02:00
Tom Hvitved
ae837d9f7a
API graphs: Remove restriction on top-level constants
2021-08-09 12:59:36 +02:00
Arthur Baars
e8f6cb65b8
Merge pull request #245 from github/aibaars/tweaks
...
Move UseDetect.ql to experimental for now
2021-08-04 16:05:06 +02:00
Arthur Baars
23f423ad66
Merge pull request #242 from github/regex_parsing_fixes
...
Regex parsing fixes
2021-08-04 16:04:54 +02:00
Arthur Baars
9ca0e81953
Move UseDetect to experimental for now
2021-08-04 15:52:48 +02:00
Arthur Baars
8ded688b72
Add queries.xml for legacy tooling
2021-08-04 14:34:20 +02:00
Tom Hvitved
0eaeb3b5a6
Rename moduleImport to getTopLevelMember
2021-08-04 10:57:57 +02:00
Tom Hvitved
8451286754
API graphs: Remove MkModule
2021-08-04 10:28:30 +02:00
Nick Rolfe
78b64dad71
Merge pull request #244 from github/script_cleanup
...
Tidy up shell scripts
2021-08-03 11:27:32 +01:00
Nick Rolfe
52ecc2c152
fix path to create-extractor-pack.sh
2021-08-03 11:14:23 +01:00
Nick Rolfe
f2af68f8cf
Clean up script file locations
2021-08-02 18:21:50 +01:00
Arthur Baars
2c8b1fa6da
Merge pull request #231 from github/aibaars/makefile
...
Add makefile
2021-08-02 18:31:16 +02:00
Arthur Baars
38f82ffc3c
Update Makefile
...
Co-authored-by: Nick Rolfe <nickrolfe@github.com >
2021-08-02 18:01:59 +02:00
Alex Ford
403dee279d
add Node#getALocalSource predicate
2021-08-02 15:56:36 +01:00
Alex Ford
56139ccf93
port some concepts to Concepts.qll
2021-08-02 15:56:36 +01:00
Arthur Baars
58a6f5a783
Address comments
2021-08-02 16:12:50 +02:00
Arthur Baars
730b6d8e6c
Add makefile
2021-08-02 16:12:50 +02:00
Arthur Baars
2f491a1924
Merge pull request #230 from github/redos-enable-tounicode
...
enable unicode parsing in the ReDoS query
2021-08-02 10:42:09 +02:00
Erik Krogh Kristensen
632ad518f0
enable unicode parsing in the ruby ReDoS query
2021-08-02 07:13:41 +00:00
Arthur Baars
d986bea317
Merge pull request #238 from github/aibaars/extract-erb
...
Extract ERB tags
2021-07-29 19:21:32 +02:00
Arthur Baars
00a0b93172
Add erb file
2021-07-29 19:09:56 +02:00
Nick Rolfe
4007e85991
Incorporate changes from Python PR
2021-07-29 17:25:39 +01:00
Nick Rolfe
3abe047cac
Fix parsing of POSIX bracket expressions.
...
The docs are misleading. [[:alpha:]] is actually a character class
*containing* a POSIX bracket expression, and that means you can have
expressions like [[:alpha:][:digit:]_?!]
2021-07-29 17:24:51 +01:00
Nick Rolfe
5d336d8e1d
Make some predicates/classes/imports private
2021-07-29 17:17:11 +01:00
Nick Rolfe
e757d2e654
Merge pull request #241 from github/fix_yml
...
Fix invalid file-type identifier
2021-07-29 12:05:10 +01:00
Arthur Baars
c568162256
Use a single TrapWriter
...
The output of two distinct TrapWriters should not be written to the
same TRAP file because this causes name clashes between TRAP labels.
2021-07-29 12:50:27 +02:00
Nick Rolfe
4aacdafb38
Fix invalid file-type identifier
...
Upper-case characters are not allowed.
2021-07-29 11:49:22 +01:00
Arthur Baars
cc1bdf1fc3
Add charpred to RubyFile class
2021-07-29 11:48:35 +02:00
Arthur Baars
fcf2d4cbd2
Apply suggestions from code review
...
Co-authored-by: Nick Rolfe <nickrolfe@github.com >
2021-07-29 09:02:57 +02:00
Arthur Baars
1d245b8d2e
Merge pull request #237 from github/aibaars/rules-sarif
...
Build/Release: create rules.sarif file
2021-07-27 18:49:50 +02:00
Arthur Baars
dacd3f3d19
Update dbscheme stats
2021-07-27 18:43:51 +02:00
Arthur Baars
4d18ec226a
Fix dataset_measure.yml
2021-07-27 18:43:51 +02:00
Arthur Baars
38eb6c112f
Add ERB extraction
2021-07-27 18:43:51 +02:00
Arthur Baars
768a751271
Add upgrade script
2021-07-27 18:43:51 +02:00
Arthur Baars
866ff7b1f6
Replace Generated module with Ruby
2021-07-27 18:43:44 +02:00
Arthur Baars
02bf895a4a
Update dbscheme type references
2021-07-27 18:42:21 +02:00
Arthur Baars
2e10f8f054
Prefix dbscheme entries with language name
2021-07-27 18:17:19 +02:00
Arthur Baars
fe868e4c05
Ruby-Generator: add --dbscheme and --library flags
2021-07-27 18:17:19 +02:00
Arthur Baars
fc8f5919f3
Remove Ruby specific parts from FileSystem.qll
2021-07-27 18:17:15 +02:00
Arthur Baars
58c93bfdca
Build/Release: create rules.sarif file
2021-07-27 12:29:27 +02:00
jorgectf
8d0386b049
Split into getNameArg and getValueArg
2021-07-25 04:35:22 +02:00
Arthur Baars
3790611ca1
Merge pull request #233 from github/tausbn/bump-typetrackingnode-changes
...
Bump `codeql` submodule
2021-07-20 13:24:30 +02:00
Nick Rolfe
8d21f95ffc
Merge pull request #235 from github/comment_fix
...
Move comment so it's not treated as part of the precision metadata
2021-07-19 12:39:13 +01:00
Nick Rolfe
ce35d74447
Move comment so it's not treated as part of the precision metadata
2021-07-19 12:29:16 +01:00
Calum Grant
8d71d09b94
Merge pull request #234 from github/calumgrant/security-severities
...
Add security-severity metadata
2021-07-16 15:40:03 +01:00
Calum Grant
46a03795c2
Add security-severity metadata
2021-07-16 14:05:54 +01:00
Taus
258f85d6d0
Add defaultImplicitTaintRead
2021-07-15 15:52:59 +00:00
Taus
dc4d353a01
Bump shared dataflow library
2021-07-15 15:08:59 +00:00
Taus
ec645725f0
Bump codeql submodule
...
Syncs up the shared type tracking implementation with Python.
2021-07-15 14:35:33 +00:00
Tom Hvitved
42c06bfde4
Merge pull request #226 from github/hvitved/const-flow
...
Data flow through constants
2021-07-14 13:21:07 +02:00
Tom Hvitved
9463927409
Address review comments
2021-07-14 11:05:55 +02:00
Arthur Baars
64a55ba6cf
Merge pull request #232 from github/regexp_test_order
...
Stabilise node ordering for regexp parsing test
2021-07-13 17:36:21 +02:00
Nick Rolfe
1fe5162b67
Stabilise node ordering for regexp parsing test
2021-07-13 16:18:21 +01:00
haby0
e8d0827916
Add tornado source
2021-07-05 10:42:15 +08:00
Tom Hvitved
23447e6d58
Reduce size of lookupMethodOrConst
2021-07-02 14:02:26 +02:00
Tom Hvitved
bf696df788
Data flow through constants
2021-07-02 14:02:26 +02:00
Tom Hvitved
3b6e5881c8
Update constants.rb test
2021-07-02 14:02:26 +02:00
Arthur Baars
0eae89a41b
Merge pull request #228 from github/qhelp
...
QHelp preview
2021-07-02 14:00:51 +02:00
Arthur Baars
5afd3c7846
Merge pull request #213 from github/aibaars/api-graphs2
...
First version of ApiGraphs
2021-07-02 13:58:00 +02:00
Arthur Baars
48ad0aa1ee
Escape file paths
2021-07-02 13:51:22 +02:00
Arthur Baars
b2ba8e664c
Handle .inc.qhelp files
2021-07-02 13:32:43 +02:00
haby0
b866f1b21e
Add CWE-348 ClientSuppliedIpUsedInSecurityCheck
2021-07-02 19:30:33 +08:00
Arthur Baars
20570eb1d1
QHelp preview
2021-07-02 13:10:51 +02:00
Tom Hvitved
703e9e726d
Merge pull request #225 from github/hvitved/private-methods
...
Model private methods and "main objects"
2021-07-02 11:02:41 +02:00
Tom Hvitved
330b33638e
Address review comments
2021-07-02 10:41:10 +02:00
Tom Hvitved
52529d590b
Model private methods and "main objects"
2021-07-02 10:41:06 +02:00
Tom Hvitved
9de4ed4d4d
Add tests for private methods
2021-07-02 10:39:49 +02:00
Tom Hvitved
8de1eedb41
Merge pull request #227 from github/hvitved/expose-call-graph
2021-07-01 18:29:14 +02:00
Tom Hvitved
c3cff3e113
Expose call graph through Call::getATarget()
2021-07-01 16:40:45 +02:00
Nick Rolfe
d99b5510e5
Merge pull request #219 from github/regex
...
Add regexp parser and exponential ReDoS query
2021-06-30 17:23:29 +01:00
Alex Ford
7cc6b3a7b0
Merge pull request #224 from github/sqli-override-fp
...
rb/sql-injection: fix FPs stemming from not accounting for overridden methods
2021-06-30 17:20:14 +01:00
Alex Ford
3f76075fe6
improve some rails framework tests
2021-06-29 13:56:28 +01:00
Alex Ford
31cbf818ab
fix rb/sql-injection FPs due to not accounting for overridden ActiveRecord methods
2021-06-29 13:54:15 +01:00
Nick Rolfe
97ae9ed181
Add more qldoc comments from Python version
...
Co-authored-by: Alex Ford <alexrford@users.noreply.github.com >
2021-06-29 11:22:47 +01:00
Tom Hvitved
20f239fd0a
Improve performance of seqChild/4
...
Gets rid of the following bad join-order
```
[2021-06-29 09:40:44] (5s) Starting to evaluate predicate RegExpTreeView::seqChild#fffff#reorder_0_1_2_4_3/5@i2#fe59dz (iteration 2)
[2021-06-29 09:46:34] (354s) Tuple counts for RegExpTreeView::seqChild#fffff#reorder_0_1_2_4_3/5@i2#fe59dz:
222277 ~0% {5} r1 = SCAN RegExpTreeView::RegExpTerm#ffff#prev_delta OUTPUT In.1 're', In.2 'start', In.3, 0, In.0 'result'
207749 ~3% {4} r2 = JOIN r1 WITH ParseRegExp::RegExp::item_dispred#fff ON FIRST 3 OUTPUT Lhs.0 're', Lhs.1 'start', 0, Lhs.4 'result'
11636 ~2% {5} r3 = JOIN r2 WITH ParseRegExp::RegExp::sequence_dispred#fff ON FIRST 2 OUTPUT 0, Lhs.3 'result', Lhs.0 're', Lhs.1 'start', Rhs.2 'end'
222277 ~0% {4} r4 = SCAN RegExpTreeView::RegExpTerm#ffff#prev_delta OUTPUT In.1 're', In.2 'start', In.3, In.0 'result'
207749 ~0% {3} r5 = JOIN r4 WITH ParseRegExp::RegExp::item_dispred#fff ON FIRST 3 OUTPUT Lhs.1, Lhs.3 'result', Lhs.0 're'
902017671 ~2% {3} r6 = JOIN r5 WITH RegExpTreeView::RegExpTerm#ffff#reorder_3_0_1_2#prev ON FIRST 1 OUTPUT Lhs.2 're', Lhs.1 'result', Rhs.1
1193975963 ~2% {5} r7 = JOIN r6 WITH ParseRegExp::RegExp::sequence_dispred#fff ON FIRST 1 OUTPUT Lhs.0 're', Rhs.1, Rhs.2 'end', Lhs.2, Lhs.1 'result'
0 ~0% {6} r8 = JOIN r7 WITH RegExpTreeView::seqChild#fffff#reorder_0_1_2_4_3#prev ON FIRST 4 OUTPUT Lhs.4 'result', Lhs.0 're', Lhs.1 'start', Lhs.2 'end', Rhs.4 're', (1 + Rhs.4 're')
0 ~0% {6} r9 = SELECT r8 ON In.5 'i' > 0
0 ~0% {5} r10 = SCAN r9 OUTPUT In.5 'i', In.0 'result', In.1 're', In.2 'start', In.3 'end'
11636 ~2% {5} r11 = r3 UNION r10
222277 ~3% {2} r12 = SCAN RegExpTreeView::RegExpTerm#ffff#prev_delta OUTPUT In.3, In.0 'result'
961948702 ~4% {5} r13 = JOIN r12 WITH RegExpTreeView::RegExpTerm#ffff#reorder_2_1_0_3#prev ON FIRST 1 OUTPUT Rhs.1 're', Lhs.0, Rhs.3, Lhs.1, Rhs.2 'result'
902017671 ~0% {3} r14 = JOIN r13 WITH ParseRegExp::RegExp::item_dispred#fff ON FIRST 3 OUTPUT Lhs.0 're', Lhs.3, Lhs.4 'result'
1193975963 ~2% {5} r15 = JOIN r14 WITH ParseRegExp::RegExp::sequence_dispred#fff ON FIRST 1 OUTPUT Lhs.0 're', Rhs.1, Rhs.2 'end', Lhs.1, Lhs.2 'result'
0 ~0% {6} r16 = JOIN r15 WITH RegExpTreeView::seqChild#fffff#reorder_0_1_2_4_3#prev ON FIRST 4 OUTPUT Lhs.4 'result', Lhs.0 're', Lhs.1 'start', Lhs.2 'end', Rhs.4 're', (1 + Rhs.4 're')
0 ~0% {6} r17 = SELECT r16 ON In.5 'i' > 0
0 ~0% {5} r18 = SCAN r17 OUTPUT In.5 'i', In.0 'result', In.1 're', In.2 'start', In.3 'end'
0 ~0% {5} r19 = SCAN RegExpTreeView::seqChild#fffff#reorder_0_1_2_4_3#prev_delta OUTPUT In.0 're', In.1 'start', In.2 'end', In.4, In.3
0 ~0% {6} r20 = JOIN r19 WITH ParseRegExp::RegExp::sequence_dispred#fff ON FIRST 3 OUTPUT Lhs.0 're', Lhs.1 'start', Lhs.2 'end', Lhs.3, Lhs.4, (1 + Lhs.3)
0 ~0% {6} r21 = SELECT r20 ON In.5 'i' > 0
0 ~0% {5} r22 = SCAN r21 OUTPUT In.4, In.0 're', In.1 'start', In.2 'end', In.5 'i'
0 ~0% {5} r23 = JOIN r22 WITH RegExpTreeView::RegExpTerm#ffff#prev ON FIRST 1 OUTPUT Rhs.3, Lhs.1 're', Lhs.2 'start', Lhs.3 'end', Lhs.4 'i'
0 ~0% {7} r24 = JOIN r23 WITH RegExpTreeView::RegExpTerm#ffff#reorder_2_1_0_3#prev ON FIRST 2 OUTPUT Lhs.1 're', Lhs.0, Rhs.3, Lhs.2 'start', Lhs.3 'end', Lhs.4 'i', Rhs.2 'result'
0 ~0% {5} r25 = JOIN r24 WITH ParseRegExp::RegExp::item_dispred#fff ON FIRST 3 OUTPUT Lhs.5 'i', Lhs.6 'result', Lhs.0 're', Lhs.3 'start', Lhs.4 'end'
0 ~0% {5} r26 = r18 UNION r25
11636 ~2% {5} r27 = r11 UNION r26
11636 ~2% {5} r28 = r27 AND NOT RegExpTreeView::seqChild#fffff#reorder_0_1_2_4_3#prev(Lhs.2 're', Lhs.3 'start', Lhs.4 'end', Lhs.1 'result', Lhs.0 'i')
11636 ~0% {5} r29 = SCAN r28 OUTPUT In.2 're', In.3 'start', In.4 'end', In.1 'result', In.0 'i'
return r29
```
2021-06-29 09:57:23 +02:00
Nick Rolfe
ba7021086b
Merge remote-tracking branch 'origin/main' into regex
2021-06-25 15:00:26 +01:00
Nick Rolfe
bee94757dd
Add query test for ReDoS.ql, ported from JS
2021-06-25 12:51:35 +01:00
Nick Rolfe
6142029fdc
Recognise \t as not escaping t
2021-06-25 12:46:25 +01:00
Nick Rolfe
a77e7761fd
Make \h and \H character class escapes
2021-06-25 12:27:39 +01:00
Nick Rolfe
a5dff79e51
Fix locations of regexp nodes in AST viewer
2021-06-25 12:00:38 +01:00
Arthur Baars
fa5e7cb9cc
Merge pull request #223 from github/aibaars/mkdir-p
...
Create parent folders when copying qhelp and sample files
2021-06-25 11:29:27 +02:00
Alex Ford
5179e3e5d6
Merge pull request #209 from github/query-sql-injection
2021-06-25 09:59:50 +01:00
Arthur Baars
efde1f86d9
Fix test case
2021-06-25 10:59:10 +02:00
Arthur Baars
0d77f49f7c
Create parent folders
2021-06-24 22:07:58 +02:00
Alex Ford
2a7d8bbc0a
Apply suggestions from code review
...
Co-authored-by: Tom Hvitved <hvitved@github.com >
2021-06-24 19:43:35 +01:00
Arthur Baars
d4666ab099
Merge pull request #222 from github/aibaars/file-filters
...
Add support for LGTM_INDEX_FILTERS environment variable
2021-06-24 20:09:08 +02:00
Arthur Baars
e3b4e0a9a3
Add missing use statement
2021-06-24 20:00:41 +02:00
Arthur Baars
f92989350a
Update autobuilder/src/main.rs
...
Co-authored-by: Nick Rolfe <nickrolfe@github.com >
2021-06-24 19:50:32 +02:00
Nick Rolfe
9ec503a3a5
Merge remote-tracking branch 'origin/main' into regex
2021-06-24 18:16:13 +01:00
Alex Ford
a45366e426
remove unnecessary ExprNodes prefix
2021-06-24 18:12:26 +01:00
Alex Ford
b27891b14e
update ActiveRecord test output
2021-06-24 18:12:26 +01:00
Alex Ford
1f5a5181b9
StringInterpolationComponentCfgNode extends ExprNodes::StmtSequenceCfgNode
2021-06-24 18:12:26 +01:00
Alex Ford
a4a8f17a54
Update ql/src/codeql_ruby/dataflow/BarrierGuards.qll
...
Co-authored-by: Tom Hvitved <hvitved@github.com >
2021-06-24 18:12:26 +01:00
Alex Ford
9883a9b606
update SqlInjection tests
2021-06-24 18:12:26 +01:00
Alex Ford
d62f4f5bd4
Address review comments
2021-06-24 18:12:26 +01:00
Alex Ford
bc5a1b86ff
Fix handling of arrays passed to ActiveRecord SQL methods
2021-06-24 18:12:26 +01:00
Alex Ford
fc8db88b66
Apply suggestions from code review
...
Co-authored-by: Tom Hvitved <hvitved@github.com >
2021-06-24 18:12:25 +01:00
Alex Ford
7415503772
update ActiveRecord test output
2021-06-24 18:12:25 +01:00
Alex Ford
12e4c9ee90
update SqlInjection tests
2021-06-24 18:12:25 +01:00
Alex Ford
734fe01867
Support named :conditions parameter to some SQL executing ActiveRecord calls
2021-06-24 18:12:25 +01:00
Alex Ford
91bde8d85d
Support ActiveRecord SQL executing calls where there is a self receiver (implicit or explicit)
2021-06-24 18:12:25 +01:00
Alex Ford
5386c776b3
Implement rb/sql-injection
2021-06-24 18:12:25 +01:00
Alex Ford
957b29b5af
Add more defaultAdditionalTaintSteps
2021-06-24 18:12:25 +01:00
Alex Ford
6e5665da8c
Make ActiveRecord model flag more potentially dangerous SQL executions
2021-06-24 18:12:25 +01:00
Alex Ford
8761873cd1
Implement two common barrier guards
2021-06-24 18:12:25 +01:00
Alex Ford
98313d0a56
Convenience classes for wrapping some Exprs as ExprCfgNodes
2021-06-24 18:12:25 +01:00
Alex Ford
ad1d8420f3
Make BarrierGuard abstract
2021-06-24 18:12:25 +01:00
Alex Ford
adf32e973a
Create Frameworks.qll to act as a container for all framework models
2021-06-24 18:12:25 +01:00
Nick Rolfe
17a59ef824
Add basic test for regex parsing
2021-06-24 18:06:08 +01:00
Arthur Baars
f69c5dc19b
Merge pull request #221 from github/package-depend-on-compile-queries
...
make the package job depend on compile-queries
2021-06-24 19:03:44 +02:00
Arthur Baars
22990a938d
Add support for LGTM_INDEX_FILTERS environment variable
...
* re-implement autobuilder script in Rust
* add additional --include/--exclude flags based on LGTM_INDEX_FILTERS
environment variable
2021-06-24 18:45:31 +02:00
Nick Rolfe
51b0ffdaf8
Fix printAst to support adding edges in AstDesugar test
2021-06-24 17:14:23 +01:00
Nick Rolfe
f7e89f47fd
Comment out temporarily-unused predicates
2021-06-24 17:06:41 +01:00
Alex Ford
58e9b69ea4
make the package job depend on compile-queries
2021-06-24 16:52:22 +01:00
Nick Rolfe
a6dd2fa0a1
Split ReDoS query into .ql and .qll, and add .qhelp
2021-06-24 16:32:45 +01:00
Arthur Baars
7574d1cad7
Merge pull request #220 from github/aibaars/update-build-yml
...
Update build.yml
2021-06-24 16:38:26 +02:00
Arthur Baars
be1d4c3d2c
Address comment
2021-06-24 16:31:24 +02:00
Arthur Baars
ade36691b6
Remove unnecessary qualifier
2021-06-24 16:13:29 +02:00
Arthur Baars
dfc96de4cc
Update build.yml
2021-06-24 16:09:45 +02:00
Arthur Baars
95399b2d0a
Refactor ApiGraphs.qll
2021-06-24 15:58:02 +02:00
Arthur Baars
4f96834711
Add ConstantAccessCfgNode
2021-06-24 15:57:48 +02:00
Arthur Baars
6bed50a86b
Rename predicate with snake cased name
2021-06-24 11:59:13 +02:00
Arthur Baars
b2be1c3b3d
Update ql/src/codeql_ruby/ApiGraphs.qll
...
Co-authored-by: Tom Hvitved <hvitved@github.com >
2021-06-23 20:40:22 +02:00
Tom Hvitved
9438885776
Merge pull request #216 from github/hvitved/synthesis-location
...
AST synthesis: Move location information into a separate predicate
2021-06-23 16:50:17 +02:00
Nick Rolfe
c784e37089
Add regexp parser and exponential ReDoS query
2021-06-23 15:29:49 +01:00
Alex Ford
e5f0206c6d
Merge pull request #208 from github/action-controller-1
...
Model accesses to `ActionController` parameters via `params` method
2021-06-23 14:21:55 +01:00
Alex Ford
0238c19085
remove TODO
2021-06-23 14:11:38 +01:00
Alex Ford
5941eb2be4
model some ActionController user input sources (params)
2021-06-23 14:11:38 +01:00
Alex Ford
9227f3a0c3
Add RemoteFlowSources.qll
2021-06-23 14:11:38 +01:00
Alex Ford
5163514d43
Merge pull request #218 from github/build-yml-debug
...
Fix `compile-queries` job
2021-06-23 14:04:33 +01:00
Alex Ford
8e1f2e6237
try fixing build.yml
2021-06-23 13:41:51 +01:00
Tom Hvitved
1dde5b8ef9
AST synthesis: Move location information into a separate predicate
2021-06-23 08:46:07 +02:00
Arthur Baars
f18e5030e0
Address comments by @tausbn
2021-06-22 17:25:34 +02:00
Alex Ford
dbf1805c8b
Merge pull request #196 from github/active-record-1
...
Start modelling some potential SQL fragment sinks in ActiveRecord
2021-06-22 16:05:26 +01:00
Arthur Baars
bedd790d33
Merge pull request #217 from github/aibaars-patch-2
...
Remove ad-hoc entries from query suite
2021-06-22 15:48:22 +02:00
Arthur Baars
f7eee915da
Remove ad-hoc queries
2021-06-22 15:35:30 +02:00
Arthur Baars
cdfe74959f
Remove methodName field
2021-06-22 10:32:44 +02:00
Arthur Baars
7c3c1db462
Use ApiGraphs in WeakFilePermissions query
2021-06-22 10:25:56 +02:00
Arthur Baars
65d9327951
Add CallNode class
2021-06-22 10:25:56 +02:00
Arthur Baars
57d8ba649f
Use flowsTo
2021-06-21 19:37:41 +02:00
Arthur Baars
d2e2901128
First version of ApiGraphs
2021-06-21 19:37:41 +02:00
Arthur Baars
f0c83288a7
Add test case for ApiGraph
2021-06-21 19:37:41 +02:00
Arthur Baars
4fa093048c
Add inline expectations test framework
2021-06-21 19:37:41 +02:00
Arthur Baars
33c5312842
Merge pull request #215 from github/bump-codeql
...
Bump `codeql` submodule
2021-06-21 16:18:04 +02:00
Tom Hvitved
992d8faa06
Bump codeql submodule
2021-06-21 16:06:45 +02:00
Tom Hvitved
abe5e3d953
Merge pull request #210 from github/hvitved/dataflow/consistency
...
Data flow: Add consistency queries
2021-06-21 14:42:55 +02:00
Nick Rolfe
35eb4a3af4
Merge pull request #214 from github/regexp_naming
...
Use RegExp prefix instead of Regex, for consistency with other languages.
2021-06-21 11:06:19 +01:00
Tom Hvitved
b820f3f20d
Merge pull request #212 from github/hvitved/ssa/assigns-pred
...
Add `Ssa::WriteDefinition::assigns/1` predicate
2021-06-21 10:46:48 +02:00
jorgectf
b10ade17be
Update HeaderDeclaration input naming
2021-06-20 00:13:59 +02:00
jorgectf
017a778a20
Polish make_response and fix extend argument
2021-06-18 20:21:11 +02:00
Nick Rolfe
65aa97c07c
Use RegExp prefix instead of Regex, for consistency with other languages.
2021-06-18 15:56:19 +01:00
Tom Hvitved
7cc02e6d00
Add Ssa::WriteDefinition::assigns/1 predicate
2021-06-18 10:42:32 +02:00
jorgectf
eac5254a88
Resolve merge conflict
2021-06-18 02:12:49 +02:00
jorgectf
dcb1da338b
Extend documentation
2021-06-18 02:03:56 +02:00
jorgectf
4963caf506
Rewrite frameworks modeling
2021-06-18 02:03:27 +02:00
jorgectf
066504e79e
Checkout Stdlib.qll
2021-06-18 02:02:47 +02:00
Nick Rolfe
78db1bf045
Merge pull request #211 from github/smaller_trap
...
Tweaks to reduce size of TRAP output
2021-06-17 17:09:14 +01:00
Nick Rolfe
ab72b4e9e7
Use hexadecimal encoding for TRAP labels
2021-06-17 16:16:32 +01:00
Nick Rolfe
ed93233917
Remove unnecessary spaces in TRAP output
2021-06-17 16:16:06 +01:00
Alex Ford
7439ab5635
remove recvCls field from ActiveRecordModelClassMethodCall
2021-06-17 14:42:42 +01:00
Alex Ford
214532516b
try to avoid a future merge conflict
2021-06-17 14:41:51 +01:00
Alex Ford
762656ee60
Add QLDoc to ActiveRecord.qll
2021-06-17 14:41:51 +01:00
Alex Ford
12a0af1d28
Tidy up PotentiallyUnsafeSqlExecutingMethodCall characteristic predicate
...
Co-authored-by: Nick Rolfe <nickrolfe@github.com >
2021-06-17 14:39:40 +01:00
Tom Hvitved
41ed9f3e1b
Data flow: Fix inconsistencies
2021-06-17 10:48:32 +02:00
Tom Hvitved
00e544189e
Data flow: Add consistency queries
2021-06-17 10:26:56 +02:00
Tom Hvitved
ad54f2e1f4
Bump codeql submodule
2021-06-17 10:24:19 +02:00
Tom Hvitved
872c7edfc8
Merge pull request #207 from github/bump-codeql
...
Bump `codeql` submodule
2021-06-16 12:33:40 +02:00
Tom Hvitved
84d79ccae9
Bump codeql submodule
2021-06-16 11:55:38 +02:00
Alex Ford
bf43a77df5
Include some more types of expressions as possible active record SQL sink arguments
2021-06-15 12:41:42 +01:00
Alex Ford
ea21c591af
remove accidentally unbound variable
2021-06-15 11:39:48 +01:00
Alex Ford
c1b9952517
account for chained method calls when constructing ActiveRecord SQL queries
2021-06-15 11:39:48 +01:00
Alex Ford
f8a77b9854
format QL
2021-06-15 11:39:48 +01:00
Alex Ford
57c04266e3
rename SqlExecutingMethodCall as PotentiallyUnsafeSqlExecutingMethodCall
2021-06-15 11:39:48 +01:00
Alex Ford
2d4bb61789
limit SqlExecutingMethodCall to those that are called with a StringlikeLiteral argument
2021-06-15 11:39:48 +01:00
Alex Ford
2c15b60998
add ActiveRecord find_by_sql as an SQL executing method call
2021-06-15 11:39:48 +01:00
Alex Ford
c641d12259
add shell ActiveRecord library tests
2021-06-15 11:39:48 +01:00
Alex Ford
5b7df8578a
cleanup ActiveRecord.qll
2021-06-15 11:39:48 +01:00
Alex Ford
7488d072d8
Model some SQL fragment sinks in ActiveRecord model classes
2021-06-15 11:39:48 +01:00
Alex Ford
743deee9ce
add a class to represent ActiveRecord models
2021-06-15 11:39:48 +01:00
Alex Ford
7d3eaf40ff
add base SqlExecution concepts
2021-06-15 11:39:48 +01:00
Tom Hvitved
3a37e321d5
Merge pull request #205 from github/hvitved/taint-tracking
...
Initial taint-tracking library
2021-06-15 09:30:59 +02:00
Tom Hvitved
5a9521372b
Merge pull request #206 from github/tausbn/fix-identical-files
2021-06-15 07:31:07 +02:00
Taus
2bbcbb2200
Bump submodule pointer
2021-06-14 19:04:22 +00:00
Tom Hvitved
302b485f4c
Merge pull request #204 from github/hvitved/cfg-nodes-perf
...
Improve performance of `ExprChildMapping::reachesBasicBlock()`
2021-06-14 20:14:17 +02:00
Taus
068b980517
Update identical-files.json
...
As of https://github.com/github/codeql/pull/6063 we have now started using the shared type tracking library in Python as well. 🎉
2021-06-14 19:01:24 +02:00
Tom Hvitved
8aa337ab01
Initial taint-tracking library
2021-06-14 14:19:34 +02:00
Tom Hvitved
b154c936c3
Improve performance of ExprChildMapping::reachesBasicBlock()
...
Since all expressions are now post-order, the logic of `reachesBasicBlock` can
be simplified, and performance can be improved as well.
2021-06-14 11:58:24 +02:00
Arthur Baars
88fb3c7097
Merge pull request #203 from github/aibaars/pack-qhelp-samples
...
Query pack: include .rb and .erb sample files from queries directory
2021-06-11 13:50:17 +02:00
Arthur Baars
909e6d5a62
Query pack: include .rb and .erb sample files from queries directory
...
These are required by the qhelp files.
2021-06-11 13:42:43 +02:00
Arthur Baars
78a6ed43c3
Merge pull request #202 from github/aibaars-patch-2
...
HardCodedCredentials: fix query metadata comment
2021-06-11 12:05:44 +02:00
Arthur Baars
661d6e8e38
HardCodedCredentials: fix query metadata comment
2021-06-11 11:59:46 +02:00
Tom Hvitved
8860b8adf0
Merge pull request #198 from github/hvitved/desugar-compound-assignment
2021-06-10 19:39:54 +02:00
Alex Ford
f74dff560b
Merge pull request #187 from github/hardcoded-credentials
...
Add rb/hardcoded-credentials query
2021-06-10 16:12:32 +01:00
Alex Ford
8839d4c584
limit additional flow steps in rb/hardcoded-credentials to string concatenation
2021-06-10 14:59:28 +01:00
Alex Ford
fe45dadd55
set precision to high for rb/hardcoded-credentials
2021-06-10 14:52:26 +01:00
Alex Ford
e26afe91b5
move rb/hardcoded-credential alert location to the source
2021-06-07 14:53:04 +01:00
Alex Ford
5d79a8cec0
account for keyword args in rb/hardcoded-credentials and simplify query
2021-06-07 14:49:49 +01:00
Tom Hvitved
962768e7c0
Disambiguate toStrings for nested synthetic local variables
2021-06-04 19:20:11 +02:00
Tom Hvitved
82fbc03889
Merge pull request #200 from github/hvitved/dataflow/call-sensitivity
...
Data flow: Call-sensitive resolution of lambda/block calls
2021-06-04 16:25:13 +02:00
Alex Ford
ec326bfcb7
Merge pull request #201 from github/perm-file-report-source
...
Report rb/weak-file-permission alerts at source rather than sink and improve alert message
2021-06-04 14:52:48 +01:00
Alex Ford
8a3ffb6dca
add missing toString
2021-06-04 13:25:03 +01:00
Alex Ford
b2d36babc4
report rb/weak-file-permission alerts at source rather than sink and improve alert message
2021-06-04 13:10:18 +01:00
Nick Rolfe
523a0b1f12
Merge pull request #197 from github/upgrade-pack
2021-06-04 13:03:39 +01:00
Nick Rolfe
6203c9019a
Remove reference to deleted upgrades qlpack from manifest
2021-06-04 12:15:36 +01:00
Tom Hvitved
61e35ddae1
Data flow: Call-sensitive resolution of lambda/block calls
2021-06-04 12:58:38 +02:00
Tom Hvitved
77146e4e04
Data flow: Reduce caching
...
These predicates are now cached in the shared implementation.
2021-06-04 12:53:47 +02:00
Tom Hvitved
f9eecfb59f
Bump codeql submodule
2021-06-04 12:52:05 +02:00
Tom Hvitved
6678ac0347
Desugar compound assignments
2021-06-04 10:39:06 +02:00
Tom Hvitved
da9adfbab4
Improve performance of desugaring transformations
2021-06-04 10:34:00 +02:00
Tom Hvitved
57eee0368d
Add CFG tests for compound assignments
2021-06-04 10:34:00 +02:00
Tom Hvitved
dfcf4c90ab
Merge pull request #199 from github/hvitved/splat-expr
...
Rename `(Hash)SplatArgument` to `(Hash)SplatExpr` and make them `UnaryOperation`s
2021-06-04 10:33:42 +02:00
Tom Hvitved
1007f2aaff
Rename (Hash)SplatArgument to (Hash)SplatExpr and make them UnaryOperations
2021-06-04 10:04:06 +02:00
Tom Hvitved
372f8645a9
Add (hash)splat AST tests
2021-06-04 09:53:14 +02:00
Nick Rolfe
8b987757c6
Merge upgrades qlpack into ql/src
2021-06-03 18:28:20 +01:00
Tom Hvitved
2094aa983a
Merge pull request #194 from github/hvitved/desugar-child
2021-06-03 18:07:33 +02:00
Arthur Baars
03ef1261d3
Merge pull request #192 from github/aibaars/release-workflow
...
Build workflow: create release
2021-06-03 16:52:50 +02:00
Tom Hvitved
908e9ff3b5
Include desugared node in AstDesugar.ql
2021-06-03 14:46:32 +02:00
Arthur Baars
63475dc692
Merge pull request #195 from github/escape_field_name
...
Escape field names with table storage
2021-06-01 14:55:46 +02:00
Nick Rolfe
1388d82f1d
Escape field names with table storage
2021-06-01 13:32:13 +01:00
Nick Rolfe
9c199b6c2a
Merge pull request #193 from github/tausbn/autogenerate-qldoc
...
Autogenerate QLDoc for `TreeSitter.qll`
2021-06-01 13:31:32 +01:00
Tom Hvitved
5bafc0c708
Merge pull request #183 from github/hvitved/assign-op-desugar
...
Desugar setter assignments
2021-06-01 14:00:04 +02:00
Alex Ford
f27dd45e4c
run formatter
2021-06-01 12:29:45 +01:00
Alex Ford
907bb9b556
add a comment
2021-06-01 12:22:04 +01:00
Alex Ford
1f931d6f76
rb/hardcoded-credentials: fix bad bracketing
2021-06-01 12:22:04 +01:00
Alex Ford
fdd4f7f616
attempt to use typetracker in rb/hardcoded-credentials
2021-06-01 12:22:04 +01:00
Alex Ford
c530ba5b11
format ql
2021-06-01 12:22:04 +01:00
Alex Ford
f1303e0ced
remove WIP files
2021-06-01 12:22:04 +01:00
Alex Ford
10175e1398
remove WIP files
2021-06-01 12:22:04 +01:00
Alex Ford
4fdd072603
WIP: HardcodedCredentials query
2021-06-01 12:22:04 +01:00
Taus
53b7492aa3
Generate QLDoc for getChild
2021-06-01 10:57:39 +00:00
Taus
6cf7a12c8c
Undo field name escaping
2021-06-01 10:56:45 +00:00
Taus
d38520dc73
Escape field names correctly
...
This should make `field('unique', $.whatever)` valid again.
2021-05-31 20:56:29 +00:00
Taus
64090b086c
Autogenerate QLDoc for TreeSitter.qll
...
It's not quite perfect, as there's still some QLDoc missing on the
various `getChild` methods, but it wasn't immediately clear to me how
to get this working (especially since the QLDoc would ideally be
different depending on whether there was a child index or not).
Then again, `getChild` probably has a pretty intuitive meaning...
2021-05-31 20:54:10 +00:00
Tom Hvitved
3ffef634d7
More synthesis refactoring
...
- Join `TElementReferenceSynth` and `TMethodCallSynth`.
- Move arity and setter information into `MethodCallKind`.
- Add `Synthesis::methodCall` for specifying which method calls need synthesis.
2021-05-31 16:29:41 +02:00
Tom Hvitved
e8841e6482
Simplify getSynthChild
2021-05-27 10:20:31 +02:00
Tom Hvitved
f8b99291a7
Improve desugaring of setter assignments
2021-05-26 18:41:21 +02:00
Arthur Baars
af6f050d06
Merge pull request #189 from github/aibaars/fix-lgtm-suite
...
Fix LGTM suites
2021-05-26 16:02:14 +02:00
Arthur Baars
3f210865b2
Build workflow: create release
2021-05-26 15:55:34 +02:00
Arthur Baars
ec905e0866
Merge pull request #168 from github/aibaars/typetrack-method
...
Call graph
2021-05-26 14:19:21 +02:00
Arthur Baars
4dc182d4a4
Merge pull request #191 from github/fixCap
...
fix snake_casing of camelCased identifiers
2021-05-26 13:39:52 +02:00
Arthur Baars
bacbd5e997
Address comments
2021-05-26 13:35:45 +02:00
Erik Krogh Kristensen
9c1b237e3b
fix snake_casing of camelCased identifiers
2021-05-26 11:16:05 +00:00
Arthur Baars
a044f41aad
Merge pull request #188 from github/aibaars/qlpack
...
Build Ruby bundle
2021-05-26 12:18:51 +02:00
Tom Hvitved
abcabeef06
Remove *Real predicates and enable recursive desugaring
2021-05-25 21:27:39 +02:00
Tom Hvitved
3f412e4fad
Desugar setter assignment operations
2021-05-25 21:27:39 +02:00
Tom Hvitved
b173cc332a
Desugar setter assignments
2021-05-25 21:27:39 +02:00
Tom Hvitved
b812012b71
Add CFG setter assignment test
2021-05-25 21:27:39 +02:00
Tom Hvitved
e85677a040
Adjust locations of synthesized AST nodes
2021-05-25 21:27:34 +02:00
Arthur Baars
aea0c6fc64
Merge pull request #190 from github/aibaars/fix-heredoc-parent
...
Fix Scope::parentOf for HeredocBody nodes
2021-05-25 11:58:21 +02:00
Arthur Baars
ce23ae33e7
Fix Scope::parentOf for HereDocBody
2021-05-25 11:27:45 +02:00
Arthur Baars
bb62564c9e
Add test for heredoc with variables
2021-05-25 11:16:55 +02:00
Arthur Baars
86d57d3e26
Fix LGTM suites
2021-05-25 10:41:07 +02:00
Arthur Baars
73aae5dfd9
Use num_cpus-1 threads by default
2021-05-25 09:28:49 +02:00
Arthur Baars
4f404e9b11
Temporarily include some queries in the code scanning suite
...
This should be reverted once we have a decent set of default queries.
2021-05-25 09:21:40 +02:00
Arthur Baars
a02cfd27c9
Compile query packs with previous CodeQL versions too
2021-05-24 17:48:49 +02:00
Arthur Baars
78d9191526
Build query pack
2021-05-24 13:27:50 +02:00
Tom Hvitved
423a1b39e1
Improve call graph performance by forcing non-linear joins first
2021-05-20 14:36:56 +02:00
Tom Hvitved
492f41d399
Fix performance
2021-05-20 14:27:13 +02:00
Arthur Baars
0ccca47b01
Dataflow for implicit self argument of methods
2021-05-20 14:27:13 +02:00
Arthur Baars
eb8b2558da
Add types of lambdas and methods
2021-05-20 14:27:13 +02:00
Arthur Baars
e787d99cd1
Resolve yield calls to blocks
2021-05-20 14:27:13 +02:00
Arthur Baars
66b2c39985
More tests
2021-05-20 14:27:13 +02:00
Arthur Baars
578b94453d
Flow for captured local variables
2021-05-20 14:27:13 +02:00
Arthur Baars
e46755021b
Add data flow steps for optional parameter values
2021-05-20 14:27:13 +02:00
Arthur Baars
da88661746
Add SSA flow step for parameters
2021-05-20 14:27:13 +02:00
Arthur Baars
84da0cb2f3
Track type of Classes/Modules and and self in singleton methods
2021-05-20 14:27:13 +02:00
Arthur Baars
f157f1f359
Fix superclass of Class
2021-05-20 14:27:13 +02:00
Arthur Baars
1ba94beb01
Fix types of true/false
2021-05-20 14:27:13 +02:00
Tom Hvitved
f63f5aba15
Fix performance
2021-05-20 14:27:13 +02:00
Arthur Baars
af19cc5fae
Add test cases
2021-05-20 14:27:13 +02:00
Arthur Baars
a9806719f9
Toplevel 'self'
2021-05-20 14:27:13 +02:00
Arthur Baars
1a739b2fbf
Resolve super calls
2021-05-20 14:27:13 +02:00
Arthur Baars
7f520e7899
Add types of literals
2021-05-20 14:27:13 +02:00
Arthur Baars
4951b7d378
Treat methods defined in a singleton class similar to single methods
2021-05-20 14:27:13 +02:00
Arthur Baars
8815bb7dbe
Track calls to singleton methods
2021-05-20 14:27:13 +02:00
Arthur Baars
b13bae6a4e
Resolve instance method calls
2021-05-20 14:27:13 +02:00
Arthur Baars
3c80b32ba0
Merge pull request #186 from github/bump-codeql
...
Bump `codeql` sub module
2021-05-20 14:26:24 +02:00
Tom Hvitved
16d34c7cd4
Sync files
2021-05-20 14:15:54 +02:00
Tom Hvitved
c73e6ff390
Bump codeql sub module
2021-05-20 14:15:33 +02:00
Tom Hvitved
1509584e27
Merge pull request #185 from github/hvitved/resolve-expr-perf
...
Improve performance of `internal/Module.qll`
2021-05-19 14:53:46 +02:00
Tom Hvitved
6b6aeb10c7
Improve performance of internal/Module.qll
2021-05-19 14:33:52 +02:00
Tom Hvitved
4798a1a008
Merge pull request #184 from github/cfg/singleton-method-abnormal
...
CFG: Add missing `propagatesAbnormal` overrides
2021-05-19 12:45:59 +02:00
Tom Hvitved
c866f88410
CFG: Add missing propagatesAbnormal overrides
2021-05-18 20:39:46 +02:00
Tom Hvitved
9871698cee
Add more CFG tests
2021-05-18 20:39:08 +02:00
Nick Rolfe
b9b6ffe53e
Merge pull request #178 from github/cfg_cleanup
...
Clean up CFG implementation
2021-05-18 10:53:44 +01:00
Nick Rolfe
778de741d0
Merge remote-tracking branch 'origin/main' into cfg_cleanup
2021-05-17 16:26:28 +01:00
Nick Rolfe
f3d831c25e
Remove unnecessary superclass prefix
2021-05-17 15:26:53 +01:00
Nick Rolfe
9a2523e2f9
Make EndBlockTree extend StmtSequenceTree
2021-05-17 15:24:20 +01:00
Nick Rolfe
6d395230d4
Make BraceBlockTree extend StmtSequenceTree
2021-05-17 14:54:11 +01:00
Tom Hvitved
ad036f8af1
Merge pull request #179 from github/hvitved/synth-framework-take2
...
AST synthesis framework (take 2)
2021-05-17 15:36:56 +02:00
Tom Hvitved
25f226e9dc
Add comment to getVariableReal
2021-05-17 15:02:40 +02:00
Tom Hvitved
b434d42d05
Rename ParenthesizedExprSynth to StmtSequenceSynth
2021-05-17 13:39:44 +02:00
luchua-bc
7af1984348
Update the change note
2021-05-17 11:35:35 +00:00
luchua-bc
1a072f3bb9
Move APIs from predicates flagged auto-generated to the other section
2021-05-14 20:38:23 +00:00
Alex Ford
ca046c9af5
Merge pull request #182 from github/loc-query-tag
2021-05-14 17:42:21 +01:00
Alex Ford
1ba491a956
add lines-of-code tag to rb/summary/lines-of-code
2021-05-14 17:06:49 +01:00
Alex Ford
3c0f20cec8
Merge pull request #170 from github/weak-file-permissions
...
Add `rb/overly-permissive-file` query
2021-05-14 17:04:15 +01:00
Arthur Baars
6c382ccd4b
Merge pull request #169 from github/aibaars/codespace
...
Add CodeSpace container
2021-05-14 18:00:51 +02:00
Alex Ford
e9090cec70
Merge pull request #181 from github/loc-description-improvements
...
LOC summary query improvements
2021-05-14 16:13:42 +01:00
Alex Ford
65b0ce204d
restrict rb/summary/lines-of-code to the source root
2021-05-14 16:00:55 +01:00
Alex Ford
71234155b8
improve rb/summary/lines-of-code description
2021-05-14 15:59:07 +01:00
Alex Ford
7ff2ca4ffe
improve rb/summary/lines-of-user-code name and description
2021-05-14 15:56:59 +01:00
Alex Ford
6bd2e4e4b7
Merge pull request #175 from github/loc-summary-queries-1
...
Summary queries for total LOC and user-code LOC
2021-05-14 15:51:45 +01:00
luchua-bc
9ef58e378c
Remove the sample Java file in the src folder
2021-05-14 11:01:25 +00:00
Arthur Baars
66bf13e77a
Setup a CodeSpace
2021-05-13 21:03:40 +02:00
Arthur Baars
3547980f5b
Update reference to tree-sitter-embedded-template
2021-05-13 21:03:40 +02:00
Arthur Baars
498e760b21
Add consistency queries to codeqlmanifest
2021-05-13 21:03:40 +02:00
Nick Rolfe
a46f45440a
Create NamespaceTree to reduce duplication
2021-05-13 17:52:20 +01:00
Nick Rolfe
5e6dddad3e
Replace count(getReceiver()) with 1
2021-05-13 16:59:05 +01:00
Alex Ford
11949c6b77
Merge pull request #176 from github/diagnostics-entries
...
Start writing diagnostics to the DB, and some basic summary/diagnostics queries
2021-05-13 14:31:01 +01:00
Alex Ford
15712df717
update ruby.dbscheme.stats
2021-05-13 13:50:53 +01:00
Alex Ford
dc3c5926f5
add a db upgrade for the diagnostics table
2021-05-13 13:45:02 +01:00
Alex Ford
277a6a020a
diagnostics: use debug rather than hidden terminology, and leave gaps for other severities
2021-05-13 13:44:10 +01:00
Alex Ford
b2f2f786ac
allow the WeakFilePermissions access predicate to return multiple values
2021-05-13 13:22:14 +01:00
Alex Ford
0d1c4a1290
document that the WeakFilePermissions access predicate should return at most one value
2021-05-13 13:06:45 +01:00
Alex Ford
89be8d8710
Apply suggestions from code review
...
Co-authored-by: Arthur Baars <aibaars@github.com >
2021-05-13 12:59:16 +01:00
Tom Hvitved
ff06e724b1
AST synthesis framework
2021-05-12 19:58:52 +02:00
luchua-bc
4d014717b6
Add a change note and reset the qhelp file
2021-05-12 15:50:40 +00:00
Alex Ford
acdbd9859e
simplify ExtractionError class defn
2021-05-12 16:45:31 +01:00
Alex Ford
11376bc411
note that severity 3 corresponds to an error diagnostic level
2021-05-12 16:39:51 +01:00
Alex Ford
0dad1a4779
use a case-split for diagnostic severity levels
2021-05-12 16:38:37 +01:00
Tom Hvitved
ea1c7b51ef
Add more operator assignment tests
2021-05-12 17:24:11 +02:00
Alex Ford
0016146e11
limit summary queries to files from within the source directory
2021-05-11 21:07:08 +01:00
Alex Ford
49d9bb798c
revamp the diagnostics tests
2021-05-11 19:53:00 +01:00
Alex Ford
9b115129fe
move diagnostics queries to match other languages more closely
2021-05-11 19:53:00 +01:00
Alex Ford
1381d8d076
tidy up Diagnostics library
2021-05-11 19:28:31 +01:00
Alex Ford
9663b74e12
use severity level 3 to indicate an extraction error for a file
2021-05-11 19:23:05 +01:00
Alex Ford
d1d8cff915
tests for some more diagnostics queries
2021-05-11 19:14:22 +01:00
Alex Ford
de497dd1ba
tests for NumberOfFiles* summary queries
2021-05-11 19:14:22 +01:00
Nick Rolfe
004147984b
Simplify CFG classes for StmtSequences
2021-05-11 18:27:11 +01:00
Alex Ford
8ab95324eb
dedupe some error reporting code
2021-05-11 14:09:10 +01:00
Alex Ford
0f3168f293
record more parse errors
2021-05-10 21:23:24 +01:00
Alex Ford
2154b7df30
add doc for IntegerLiteral.getValue
2021-05-10 11:02:48 +01:00
Alex Ford
48add9ffbc
remove internal import in rb/overly-permissive-file
2021-05-10 11:00:59 +01:00
Alex Ford
269ae8331b
record 'unknown table type' extraction errors
2021-05-07 17:56:50 +01:00
Nick Rolfe
94ceb3f237
Remove unused class
2021-05-07 17:20:51 +01:00
Nick Rolfe
9def7c2dfe
Make CFG for TEnsure post-order
2021-05-07 17:15:10 +01:00
Nick Rolfe
7f6805c82f
Make CFG for TDo post-order
2021-05-07 17:00:30 +01:00
Nick Rolfe
46c9f858c4
Make CFG for TElse post-order
2021-05-07 16:47:19 +01:00
Nick Rolfe
2569bf257f
Make CFG for TThen post-order
2021-05-07 15:40:50 +01:00
luchua-bc
fc7d340a89
Query to detect hard-coded Azure credentials
2021-05-07 13:16:41 +00:00
Alex Ford
a7873f9023
rb/summary/number-of-files-extracted-with-errors
2021-05-07 00:24:13 +01:00
Alex Ford
31b8913ffd
rb/summary/number-of-successfully-extracted-files FIXUP
2021-05-07 00:23:56 +01:00
Alex Ford
804198cd37
rb/summary/number-of-successfully-extracted-files
2021-05-07 00:22:22 +01:00
Alex Ford
e7285babf0
rb/diagnostics/successfully-extracted-files
2021-05-07 00:17:58 +01:00
Alex Ford
54266eca33
rb/diagnostics/files-extracted-with-errors
2021-05-07 00:17:12 +01:00
Alex Ford
d223851429
add Diagnostics.qll
2021-05-07 00:15:09 +01:00
Alex Ford
272aec27f2
clean up the parse_error writing code
2021-05-07 00:15:09 +01:00
Alex Ford
3a1dff1c95
start writing diagnostics entries for parse errors
2021-05-06 23:09:43 +01:00
Alex Ford
c38453305f
add diagnostics table to dbscheme
2021-05-06 22:58:01 +01:00
Alex Ford
e5896047d8
summary LOC query tests
2021-05-06 19:54:23 +01:00
Alex Ford
98a4f4c5b9
rb/summary/lines-of-user-code
2021-05-06 19:54:23 +01:00
Alex Ford
f6c8b07f4f
rb/summary/lines-of-code
2021-05-06 19:54:23 +01:00
Nick Rolfe
4e80b548c1
Make BeginBlock CFG post-order
2021-05-06 16:45:27 +01:00
Nick Rolfe
2c7f1e0c11
Remove unused class
2021-05-06 16:28:36 +01:00
Nick Rolfe
9185a93312
Make SingletonClassDeclarationTree post-order
2021-05-06 16:20:50 +01:00
Nick Rolfe
fd3d50f340
Make ModuleDeclarationTree post-order
2021-05-06 15:54:11 +01:00
Nick Rolfe
d623f47ba0
Make ClassDeclarationTree post-order
2021-05-06 15:36:25 +01:00
Arthur Baars
07c059cb2e
Merge pull request #166 from github/type_tracking
...
Minimal implementation of shared type-tracking library
2021-05-06 10:59:45 +02:00
Nick Rolfe
a0084b7732
Simplify CFG tree classes for calls
2021-05-05 17:18:44 +01:00
Nick Rolfe
569063ca73
Make YieldCallTree post-order
2021-05-05 17:14:32 +01:00
Nick Rolfe
3a3586f14b
Restrict type to MethodCallCfgNode
2021-05-05 14:49:24 +01:00
Arthur Baars
73b5699f32
Merge pull request #174 from github/escape_file_keys
...
Escape keys for files and folders
2021-05-05 15:02:04 +02:00
Nick Rolfe
c37f390efc
Reserve more capacity for escaped key
2021-05-05 13:21:16 +01:00
Nick Rolfe
99ae17de03
Avoid copying key when it doesn't need escaping
2021-05-05 12:54:23 +01:00
Nick Rolfe
b16b95e2f7
Fix type-tracking load/store steps
2021-05-05 12:12:45 +01:00
Nick Rolfe
d2d5f31599
Escape keys for files and folders
2021-05-04 16:52:35 +01:00
Nick Rolfe
647c108c0b
Merge remote-tracking branch 'origin/main' into type_tracking
2021-05-04 12:38:16 +01:00
Arthur Baars
1a94fb47b6
Merge pull request #172 from github/update-testoutput
...
Update expected test output
2021-05-04 13:37:37 +02:00
Arthur Baars
27538cb11d
Update expected test output
2021-05-04 12:43:43 +02:00
Nick Rolfe
53deede8ab
Remove unnecessary local flow inside type-tracking store step
2021-05-04 11:32:57 +01:00
Nick Rolfe
35ee62c689
Use splitting-aware nodes for type-tracking store/load steps
2021-05-04 11:31:03 +01:00
Arthur Baars
6adff6f195
Merge pull request #171 from github/self_nodes
...
Create synthetic `self` nodes for calls without explicit receivers
2021-05-03 12:59:11 +02:00
Nick Rolfe
5dc910d0db
Move track predicate to LocalSourceNode
2021-04-30 15:05:12 +01:00
Nick Rolfe
37c8d8a252
Rename getCallable to getTarget
2021-04-30 14:41:50 +01:00
Nick Rolfe
fdccd5da7e
Add AstNode::isSynthesized()
2021-04-30 11:58:54 +01:00
Alex Ford
2c8a4f833f
make rb/overly-permissive-file a proper path-problem
2021-04-29 19:11:39 +01:00
Nick Rolfe
e87bf57bc5
Avoid recursion in IPA construction
2021-04-29 18:04:15 +01:00
Alex Ford
4375452866
more IntegerLiteral.getValue improvements
2021-04-29 17:08:33 +01:00
Alex Ford
05adfec03d
account for more patterns in IntegerLiteral.getValue
2021-04-29 17:02:54 +01:00
Alex Ford
35d5bae10e
run formatter
2021-04-29 16:16:09 +01:00
Alex Ford
efa323c304
rb/overly-permissive-file use QL bitwise operators
2021-04-29 16:08:42 +01:00
Alex Ford
46a14b2826
move parseInt logic into getValue method predicate on IntegerLiteral
2021-04-29 15:54:22 +01:00
Alex Ford
1c89bbe188
fix select format of rb/overly-permissive-file
2021-04-29 15:44:54 +01:00
Nick Rolfe
bd6fe41388
Merge IPA branches for implicit self
2021-04-29 15:38:58 +01:00
Alex Ford
2c0fc7d193
parse integer permission args as ints instead of using regex matches
2021-04-29 15:34:10 +01:00
Nick Rolfe
59c83b7b8f
Add clarifying comment
2021-04-29 14:00:27 +01:00
Nick Rolfe
9540125771
Remove fromGeneratedInclSynth predicate
2021-04-29 13:58:16 +01:00
Arthur Baars
300a54384f
Add TypeTracker to identical-files.json
2021-04-29 12:20:14 +02:00
Arthur Baars
f07c58ee07
Update codeql submodule
2021-04-29 12:13:11 +02:00
Nick Rolfe
96ddd55191
Apply suggestions from code review
...
Co-authored-by: Arthur Baars <aibaars@github.com >
2021-04-29 12:07:32 +02:00
Nick Rolfe
c1c437f020
Minimal implementation of shared type-tracking library
2021-04-29 12:07:32 +02:00
Nick Rolfe
f3852f9b56
Create synthetic self nodes for calls without explicit receivers
2021-04-28 16:43:40 +01:00
Alex Ford
0a6dc6f150
update WeakFilePermissions.expected
2021-04-28 16:31:07 +01:00
Alex Ford
7a72d8ec2f
add qhelp for rb/overly-permissive-file
2021-04-28 15:51:08 +01:00
Alex Ford
e3d393b7c1
use full dataflow for permission args in rb/overly-permissive-file
2021-04-28 15:40:58 +01:00
Alex Ford
e5862a942f
WIP rb/overly-permissive-file query
2021-04-27 21:22:17 +01:00
Arthur Baars
bc6aec7a99
Merge pull request #167 from github/alexrford/numlines
...
Implement FLines metrics queries
2021-04-21 14:42:18 +02:00
Alex Ford
240f0abf27
drop @tags from metrics queries
2021-04-21 13:00:48 +01:00
Alex Ford
15289dba34
simplify File.getNumberOfLines
2021-04-21 12:59:25 +01:00
Alex Ford
cc5bbfce0b
Get -> Gets
2021-04-21 12:57:55 +01:00
Alex Ford
5a191692df
Update ql/src/queries/metrics/FLinesOfComments.ql
...
Co-authored-by: Arthur Baars <aibaars@github.com >
2021-04-21 12:57:12 +01:00
Alex Ford
4e119cc085
consider empty files (no ruby tokens) to have 0 lines
2021-04-21 11:29:55 +01:00
Alex Ford
a8597025aa
fixed logic for line counting
2021-04-21 11:29:09 +01:00
Alex Ford
bcc1be05de
use explicit this prefixes in FileSystem.qll
2021-04-21 10:51:28 +01:00
Alex Ford
85ecacd858
make helper predicates private
2021-04-21 10:50:00 +01:00
Alex Ford
9d117d10b8
drop MetricFile class
2021-04-21 10:45:42 +01:00
Alex Ford
c6b6a83501
extend FLines* tests
2021-04-21 10:42:53 +01:00
Alex Ford
a1c91e28da
move FLines* tests to a common directory
2021-04-21 10:34:58 +01:00
Alex Ford
fcd46025fe
update metadata for FLines* queries
2021-04-21 10:28:20 +01:00
Arthur Baars
abb37e212a
Merge pull request #165 from github/aibaars/methods
...
Implement method lookup
2021-04-21 11:24:20 +02:00
Arthur Baars
549e5ab9d6
Revert "Rename Method -> MethodDeclaration"
...
This reverts commit d361ef37af .
2021-04-21 10:50:47 +02:00
Arthur Baars
1245674df8
Add missing @id properties
2021-04-21 10:50:47 +02:00
Alex Ford
50a0f282bf
add basic tests for FLines queries
2021-04-20 17:36:16 +01:00
Alex Ford
f0d1498c8c
Revert "WIP: populate numlines table"
...
This reverts commit 62bf58b289 .
2021-04-20 17:36:16 +01:00
Alex Ford
37cce23c26
add FLines.ql, FLinesOfComments.ql
2021-04-20 17:36:16 +01:00
Alex Ford
d6c7846089
put logic for determining line counts into MetricFile
2021-04-20 17:36:16 +01:00
Arthur Baars
122315db3f
Remove 'Method' class
2021-04-20 13:41:11 +02:00
Alex Ford
28e46c8915
add FLinesOfCode.ql metric query
2021-04-20 10:12:52 +01:00
Alex Ford
7bfc61789d
line count MetricFile predicates
2021-04-19 18:08:01 +01:00
Alex Ford
62bf58b289
WIP: populate numlines table
2021-04-19 18:06:35 +01:00
Arthur Baars
bf4f91e038
Address comments
2021-04-16 16:37:42 +02:00
Arthur Baars
07726fd979
Add some module and method tests
2021-04-16 11:07:57 +02:00
Arthur Baars
bf556a2b53
Implement method lookup
2021-04-15 11:32:43 +02:00
Arthur Baars
5837af0936
Add MethodBase::getMethod
2021-04-15 11:32:43 +02:00
Arthur Baars
d361ef37af
Rename Method -> MethodDeclaration
2021-04-15 11:32:43 +02:00
Arthur Baars
3590a2c2ac
Merge pull request #164 from github/aibaars/fix-modules
...
Improve module/class resolution
2021-04-15 11:32:28 +02:00
Arthur Baars
24bb11b20a
Improve module/class resolution
2021-04-14 17:14:38 +02:00
Arthur Baars
12ee957331
Add test cases
2021-04-14 17:12:39 +02:00
Arthur Baars
3b73d41cc4
Merge pull request #163 from github/aibaars/modules-2
...
Ignore include/prepend statements in blocks
2021-04-14 17:09:34 +02:00
Arthur Baars
9afda342bc
Address comments
2021-04-14 09:57:49 +02:00
Arthur Baars
754bfdd136
Ignore include/prepend statements in blocks
...
Include and prepend statements are rarely used in block in normal code and when
used in normal code they tend to be in blocks that are passed to methods like
`module_eval` which is a builtin method that evaluates a block in the context
of some other module (typically created with Module.new). We currently don't attempt
to track such "dynamically" constructed modules, and ignoring such modules
and the `module_eval` calls on them seems fine for now.
Another, much more frequent use of include/prepend statements in blocks is in Rspec.describe and
Rspec.context method calls in tests. Rspec also evaluates those blocks in the context of some
special Rspec class. Precisely tracking such calls during the initial construction of the module/class
hierarchy would be really hard and there would be little benefit because the interesting modules and classes of
an application are not defined in test files.
2021-04-14 09:53:19 +02:00
Arthur Baars
280fe73063
Add test case with 'module_eval' call with block containing 'prepend' statement
2021-04-14 09:53:19 +02:00
Arthur Baars
caef2c36c7
Merge pull request #162 from github/aibaars/modules
...
Basic implementation of module resolution
2021-04-09 20:50:54 +02:00
Arthur Baars
cdfabbc95d
Make Cached module private
2021-04-09 16:47:02 +02:00
Arthur Baars
a247544fc5
Add comments
2021-04-09 16:35:23 +02:00
Arthur Baars
7bc5be93ff
Module: make main predicates cached
2021-04-09 13:29:27 +02:00
Arthur Baars
2db999d0da
Improve module resolution
2021-04-09 09:51:24 +02:00
jorgectf
f02c2855ad
Generate .expected
2021-04-09 01:28:38 +02:00
jorgectf
632dc61d5e
Create qlref
2021-04-09 01:28:22 +02:00
jorgectf
e9c4574552
Apply structure
2021-04-09 01:26:53 +02:00
jorgectf
789c5857fa
Create qhelp example
2021-04-09 01:26:28 +02:00
jorgectf
ce3fb6be21
Improve qhelp
2021-04-09 01:26:16 +02:00
jorgectf
b0c498629a
Init restructuring
2021-04-09 01:02:03 +02:00
jorgectf
6158dd6bce
Finish Sinks
2021-04-09 01:02:02 +02:00
jorgectf
bd894ae8b3
Fix flask test
2021-04-09 01:02:02 +02:00
jorgectf
3be916e82b
Polish FlaskHeaderCall
2021-04-09 01:02:01 +02:00
jorgectf
46c5cb1136
Polish WerkzeugHeaderCall
2021-04-09 01:02:00 +02:00
jorgectf
6f89b3f3d9
Init Header Injection query
2021-04-09 01:02:00 +02:00
Arthur Baars
ceb2eb21d8
Address comments
2021-04-08 15:11:57 +02:00
Arthur Baars
039e8b36a5
Add some include/prepend tests
2021-04-07 17:27:33 +02:00
Arthur Baars
84f6e902ea
AST: move some scope related methods to AstNode
2021-04-07 17:16:10 +02:00
Arthur Baars
063b085078
Address comments
2021-04-07 15:57:13 +02:00
Arthur Baars
50b8b6b257
Also resolve constants with respect to the ancestors
...
of the enclosing module.
2021-04-06 15:47:13 +02:00
Arthur Baars
f12e6ea8ea
Avoid 'Object::' prefixes
2021-03-30 16:14:21 +02:00
Arthur Baars
b2c7185664
Add tests
2021-03-30 15:49:41 +02:00
Arthur Baars
201c1e4b81
Basic module resolution
2021-03-30 15:40:03 +02:00
Arthur Baars
ea9afcd4e1
AST: make some classes instance of Scope
2021-03-30 15:40:03 +02:00
Arthur Baars
eebbc7e505
AST: rename Class/Module to ClassDefinition/ModuleDefinition
2021-03-30 15:40:01 +02:00
Tom Hvitved
aad5d133d0
Merge pull request #161 from github/hvitved/cfg-remove-is-hidden
...
CFG: Remove `isHidden()` predicate
2021-03-25 15:08:17 +01:00
Tom Hvitved
0bb5007103
Reintroduce hidden then/else/do in AST; include all in CFG
2021-03-25 14:22:35 +01:00
Tom Hvitved
58ecd771d3
AST: Exclude empty then/else/do statements
2021-03-25 09:53:55 +01:00
Tom Hvitved
ca7c0584c7
CFG: Remove isHidden() predicate
2021-03-24 17:22:05 +01:00
Tom Hvitved
9472cef492
Merge pull request #160 from github/bump-codeql
...
Bump `codeql` sub module and implement new data-flow stubs
2021-03-24 15:34:42 +01:00
Tom Hvitved
6c00e66272
Update ql/src/codeql_ruby/dataflow/internal/DataFlowPrivate.qll
...
Co-authored-by: Nick Rolfe <nickrolfe@github.com >
2021-03-24 15:02:30 +01:00
Tom Hvitved
b8f65fb756
Bump codeql sub module and implement new data-flow stubs
2021-03-24 14:00:21 +01:00
Arthur Baars
d103acb04f
Merge pull request #158 from github/hvitved/vscode-hide-codeql-submodule
...
Hide `codeql` sub module in VS Code workspace
2021-03-23 10:41:32 +01:00
Arthur Baars
6a26483fc7
Merge pull request #159 from github/hvitved/herdoc-body-rank-performance
...
Improve performance of `HereDoc::getBody()`
2021-03-23 10:40:28 +01:00
Tom Hvitved
2891d94f99
Improve performance of HereDoc::getBody()
...
Gets rid of
```
[2021-03-23 10:07:49] (138s) Tuple counts for Literal::HereDoc::getBody_dispred#ff#shared#1/4@1cc5b9:
11294 ~0% {1} r1 = SCAN AST::Cached::THereDoc#ff@staged_ext OUTPUT In.0
11294 ~388% {1} r2 = JOIN r1 WITH Literal::HereDoc::getBody_dispred#ff#join_rhs ON FIRST 1 OUTPUT Rhs.1 'arg1'
95514613 ~2080% {4} r3 = JOIN r2 WITH locations_default_1023#join_rhs ON FIRST 1 OUTPUT Rhs.1 'arg0', Lhs.0 'arg1', Rhs.2 'arg2', Rhs.3 'arg3'
```
2021-03-23 10:31:48 +01:00
Tom Hvitved
1004363131
Hide codeql sub module in VS Code workspace
2021-03-23 09:55:56 +01:00
Nick Rolfe
b293522710
Merge pull request #150 from github/parent_child
...
Create `ast_node_parent` relation
2021-03-22 15:06:50 +00:00
Nick Rolfe
e7f1ae8c96
Merge remote-tracking branch 'origin/main' into parent_child
2021-03-22 14:58:33 +00:00
Nick Rolfe
3284a3fc1f
Merge pull request #157 from github/cfg_impl
...
Port CFG implementation to public AST interface
2021-03-22 14:57:43 +00:00
Nick Rolfe
cf7ce911bc
Combine CfgScope classes for BodyStmt ∩ Callable
2021-03-19 16:08:43 +00:00
Nick Rolfe
7667606b89
Replace some uses of Generated types
2021-03-19 14:31:17 +00:00
Nick Rolfe
21192bf43c
Remove outdated comment
2021-03-19 14:28:26 +00:00
Nick Rolfe
f37c862c92
Rename MandatoryParameterTree to NonDefaultValueParameterTree
2021-03-19 14:27:29 +00:00
Nick Rolfe
c6958f64e4
Make CFG for AssignExpr visit left operand before right
2021-03-19 14:25:38 +00:00
Nick Rolfe
f381f94bc2
Rename ProgramScope to ToplevelScope
2021-03-19 14:02:54 +00:00
Nick Rolfe
5cedf7ee86
Remove unused import
2021-03-19 13:59:02 +00:00
Tom Hvitved
e175513293
Remove duplicate tuple patterns
2021-03-19 10:52:29 +01:00
Nick Rolfe
c0636bef29
Make CfgScope extend Scope
2021-03-18 19:08:51 +00:00
Nick Rolfe
6bcc433af3
Uncomment empty class and module in CFG test
2021-03-18 19:02:32 +00:00
Nick Rolfe
9493997e9d
Make space in CFG test for two new lines in the middle
...
Commented out to make it easier to ignore the noise from line number
changes.
2021-03-18 19:01:11 +00:00
Nick Rolfe
37435764a0
Fix control-flow for empty classes and modules
2021-03-18 18:58:40 +00:00
Nick Rolfe
434d9e54a1
Fix complex symbols having multiple ControlFlowTree implementations
2021-03-18 14:48:08 +00:00
Nick Rolfe
4ce7faf868
Fix erroneous flow from 'raise' call to StmtSequence
2021-03-18 13:01:27 +00:00
Nick Rolfe
ceda7c8fd2
Generalise splitting of parenthesized exprs to all statement sequences
2021-03-18 11:21:11 +00:00
Nick Rolfe
c8eab42c1d
Minor comment fixes
2021-03-18 11:09:21 +00:00
Tom Hvitved
3bb2c529a5
CFG: Revert change to mandatory parameters
2021-03-18 10:43:10 +01:00
Arthur Baars
d4030c66d8
Update Consistency.qll
2021-03-18 09:54:44 +01:00
Tom Hvitved
c761ab6882
Merge pull request #156 from github/hvitved/ipa-ast
...
Make external `AstNode` an IPA type
2021-03-17 22:23:05 +01:00
Nick Rolfe
32e2b257bf
Port CFG implementation to public AST interface
2021-03-17 20:28:47 +00:00
Nick Rolfe
26c251f080
Order CFG nodes by column as well
2021-03-17 19:07:52 +00:00
Tom Hvitved
39aa2c6e53
Rework IPA injectors for constant accesses
2021-03-17 14:27:21 +01:00
Tom Hvitved
eb7610c55f
Rename (to|from)TreeSitter to (to|from)Generated
2021-03-17 09:28:23 +01:00
Tom Hvitved
5724112513
Address review comments
2021-03-17 09:28:18 +01:00
Tom Hvitved
7eaf02a0bf
Make external AstNode an IPA type
2021-03-16 12:50:20 +01:00
Arthur Baars
c672169621
Merge pull request #155 from github/aibaars/order-ast-test
...
AST: order edges by target node
2021-03-15 10:43:34 +01:00
Arthur Baars
d54db292f7
Move semmle.order property to printAst.qll
2021-03-15 10:33:10 +01:00
Arthur Baars
3e5ff1d042
AST: order edges by target node
...
When printing a tree CodeQL iterates over the nodes and
for each node prints the successor edges as children. If the
the successor edges are ordered by target node then the children
printe in the right order in the expected output.
2021-03-12 16:52:34 +01:00
Arthur Baars
cde496cc4c
Merge pull request #152 from github/aibaars/fix-vars
...
Fix VariableRead/WriteAcess for instance and class variables
2021-03-11 17:05:56 +01:00
Calum Grant
bf873c8ad1
Merge pull request #147 from github/calumgrant/use-detect
...
Ruby: New query UseDetect
2021-03-10 14:39:37 +00:00
Calum Grant
cb977cb290
Ruby: Use getAUniqueRead TC
2021-03-10 10:56:33 +00:00
Arthur Baars
3966de6b2b
Merge pull request #151 from github/aibaars/scopes-refactor
...
Add Scopes.qll and remove VariableScopes IPA type
2021-03-09 20:55:18 +01:00
Arthur Baars
6a284378d6
Update ql/src/codeql_ruby/ast/Scope.qll
...
Co-authored-by: Nick Rolfe <nickrolfe@github.com >
2021-03-09 18:57:24 +01:00
Arthur Baars
f28071ceb6
Fix VariableRead/WriteAcess for instance and class variables
2021-03-09 13:55:55 +01:00
Arthur Baars
600d9c66ae
Remove VariableScope
2021-03-09 11:56:17 +01:00
Arthur Baars
86a89ab1fe
Remove VariableScope IPA type
2021-03-09 11:48:18 +01:00
Calum Grant
855d190800
Ruby: Test local data flow
2021-03-09 10:25:24 +00:00
Calum Grant
5b4bf584a1
Ruby: Update qltest output for new select format
2021-03-09 10:20:23 +00:00
Calum Grant
0f829476f4
Ruby: Refactor EndCall to reduce number of classes
2021-03-09 10:13:07 +00:00
Arthur Baars
00260db58f
Add Scope.qll
2021-03-09 09:46:42 +01:00
Nick Rolfe
56e03d7ed4
Remove old upgrades
2021-03-08 18:28:23 +00:00
Nick Rolfe
be102e24f6
Update stats
2021-03-08 18:25:37 +00:00
Nick Rolfe
f691ec9e2a
Remove overrides of getParent[Index]
2021-03-08 18:25:37 +00:00
Nick Rolfe
9b96bc32cc
Add ast_node_parent relation
2021-03-08 18:25:37 +00:00
Nick Rolfe
61b3aa8f27
Merge pull request #149 from github/manual_stats_workflow
...
Enable manual dispatch of stats workflow
2021-03-08 14:28:27 +00:00
Nick Rolfe
df8f7a30d7
Enable manual dispatch of stats workflow
2021-03-08 14:10:37 +00:00
Nick Rolfe
1818b68ea2
Merge pull request #148 from github/calumgrant/readme-qltest
...
Update README.md
2021-03-04 19:36:42 +00:00
Calum Grant
67416a6440
Update README.md
...
Co-authored-by: Nick Rolfe <nickrolfe@github.com >
2021-03-04 17:19:34 +00:00
Calum Grant
0be5c529ee
Update README.md
2021-03-04 16:03:23 +00:00
Calum Grant
20a62d169a
Ruby: Update query description
2021-03-04 15:48:09 +00:00
Calum Grant
ca497479c2
Ruby: Finish the test for UseDetect
2021-03-04 15:44:05 +00:00
Calum Grant
522bcff79d
Ruby: Initial test case
2021-03-04 15:38:09 +00:00
Calum Grant
5854b831f3
Ruby: rb/use-detect query
2021-03-04 13:43:59 +00:00
Arthur Baars
ce69c912fd
Merge pull request #145 from github/aibaars/fix
...
Fix regression in rb/unused-parameter
2021-03-01 12:26:47 +01:00
Arthur Baars
c9f86743bd
Merge pull request #143 from github/aibaars/ast-test
...
AST: add printAST test case
2021-02-26 19:41:56 +01:00
Arthur Baars
b2fbeee794
CFG: hide all non-AstNodes
2021-02-26 19:04:33 +01:00
Arthur Baars
5f32b822e2
Remove use of AstNodes
2021-02-26 19:03:55 +01:00
Arthur Baars
dd4f297c37
Remove duplicate clause
2021-02-26 17:51:04 +01:00
Arthur Baars
39181ec871
AST: printAST: show all primary classes and method names
2021-02-25 15:25:49 +01:00
Arthur Baars
e2b2a450ac
AST: add printAST test case
2021-02-25 15:25:49 +01:00
Arthur Baars
75883b94cd
QLTest: ignore *.testproj folders
2021-02-25 15:25:42 +01:00
Arthur Baars
7ab147a7b8
Merge pull request #144 from github/aibaars/missing
...
AST: add missing getAPrimaryQlClass predicate
2021-02-25 15:18:29 +01:00
Arthur Baars
a6bb34c86d
AST: add missing getAPrimaryQlClass predicate
2021-02-25 14:59:39 +01:00
Arthur Baars
fa7adee245
Merge pull request #142 from github/aibaars/clean-up
...
Remove as many references to TreeSitter::Generated
2021-02-25 14:28:09 +01:00
Arthur Baars
9800e3f930
Add some TODO comments
2021-02-25 13:43:36 +01:00
Arthur Baars
f3d1c804be
Update test data
2021-02-25 12:57:18 +01:00
Arthur Baars
7c0ea7b3bc
CFG: add AstNode for @in
2021-02-25 12:57:18 +01:00
Arthur Baars
b16d6bf5b4
CFG: make isValidFor work for hidden nodes
2021-02-25 12:57:18 +01:00
Arthur Baars
9fc5c43412
Clean-up Completion.qll
2021-02-25 12:57:18 +01:00
Arthur Baars
999b82ca73
Remove imports of TreeSitter
2021-02-25 12:57:18 +01:00
Arthur Baars
d30912611b
Merge pull request #136 from github/aibaars/child-parent
...
Finish AST and add consistency query
2021-02-25 12:54:45 +01:00
Arthur Baars
27a2310840
CFG: sort expected output by file path and line
2021-02-25 12:27:11 +01:00
Arthur Baars
87b2c142bc
Update qldoc
2021-02-25 10:23:29 +01:00
Arthur Baars
4ba0f3088a
Use strictcount
2021-02-25 10:21:07 +01:00
Arthur Baars
0f940349ba
AST: rename getExpr predicates to more meaningful names
2021-02-25 10:11:29 +01:00
Arthur Baars
1a73cf6cc4
AST: add ArgumentList
2021-02-24 19:07:16 +01:00
Arthur Baars
336b310668
AST: improve AST for special parameters
2021-02-24 19:07:16 +01:00
Arthur Baars
8913810bf0
AST: change return type of Assignment LHS to Pattern
2021-02-24 19:07:16 +01:00
Arthur Baars
190978cc56
AST: add consistency query
2021-02-24 19:07:16 +01:00
Arthur Baars
cb21e8edda
CFG: hide nodes that are not proper AstNodes
2021-02-24 19:07:16 +01:00
Arthur Baars
14474d660b
AST: change types to Stmt
2021-02-24 19:07:16 +01:00
Arthur Baars
3288070279
Merge pull request #131 from github/aibaars/pattern
...
AST: split method call into normal and setter calls
2021-02-24 19:03:55 +01:00
Arthur Baars
a7408dd262
Merge pull request #140 from github/aibaars/namespace
...
AST: introduce 'Namespace' as super class of Class/Module
2021-02-24 13:22:02 +01:00
Arthur Baars
242481c701
Apply suggestions from code review
...
Co-authored-by: Nick Rolfe <nickrolfe@github.com >
2021-02-24 13:13:47 +01:00
Arthur Baars
d6c0049a7e
AST: make SetterMethodCall instance of MethodCall
2021-02-24 13:06:54 +01:00
Arthur Baars
7ae20f3b5b
AST: add SetterMethodCall as instance of LhsExpr
2021-02-24 13:06:54 +01:00
Arthur Baars
79bb20b31f
AST: add MethodCall as a subclass of Call
2021-02-24 13:06:53 +01:00
Arthur Baars
5fe7bd57fa
AST: calls without method name
2021-02-24 13:02:22 +01:00
Arthur Baars
eaeabf19bf
Merge pull request #141 from github/bump_ts
...
Add support for multiple statements in interpolations
2021-02-24 11:29:26 +01:00
Nick Rolfe
37253fd1f1
Update stats for dbscheme change to interpolation_child
2021-02-23 16:08:24 +00:00
Nick Rolfe
6c84f2c3dc
Add test case for multiple statements in interpolation
2021-02-23 15:52:11 +00:00
Nick Rolfe
672148e5b4
Add support for multiple statements in interpolations
2021-02-23 15:36:14 +00:00
Arthur Baars
a7ddd642ea
AST: introduce 'Namespace' as super class of Class/Module
2021-02-19 13:34:34 +01:00
Arthur Baars
098e0ac142
Merge pull request #139 from github/printast
...
printAst: use the user-facing AST library
2021-02-19 09:46:27 +01:00
Nick Rolfe
d52e439547
printAst: use the user-facing AST library
2021-02-18 18:25:57 +00:00
Arthur Baars
370135fab7
Merge pull request #138 from github/aibaars/part-1
...
AST: getChild/getParent
2021-02-18 19:00:08 +01:00
Arthur Baars
1c8a76f44a
AST: make Assignment::getLeftOperand a Pattern again
2021-02-18 18:14:55 +01:00
Arthur Baars
c877eb4642
AST: add additional token-types to variable patterns
2021-02-18 14:37:58 +01:00
Arthur Baars
3ee83870b6
AST: add begin expressions
2021-02-18 14:37:58 +01:00
Arthur Baars
5659388ec0
AST: implement AstNode::child
2021-02-18 14:37:58 +01:00
Arthur Baars
c0b5ac760a
AST: rename getLhs/getRhs to getLeftOperand/getRightOperand
2021-02-18 14:37:58 +01:00
Arthur Baars
095eb803b3
AST: improve type of getDefaultValue
2021-02-18 14:37:58 +01:00
Arthur Baars
e42d1ff936
Change Expr to LhsExpr for getVariableExpr
2021-02-18 14:37:58 +01:00
Arthur Baars
214f113016
AST: add getChild/getParent method
2021-02-18 14:37:53 +01:00
Nick Rolfe
ac3da22158
Merge pull request #137 from github/scope_tostring
...
Include file/class/method/module names in VariableScope::toString
2021-02-17 19:24:36 +00:00
Nick Rolfe
b8bbbe92f3
Include file/class/method/module names in VariableScope::toString
2021-02-17 18:10:03 +00:00
Nick Rolfe
aedf093e72
Merge pull request #135 from github/aibaars/heredoc
...
AST: HereDoc
2021-02-17 17:18:38 +00:00
Arthur Baars
cabe6df820
Add missing heredoc end token
2021-02-17 15:58:13 +01:00
Arthur Baars
e1047fad2c
CFG: remove intermediate HeredocBody nodes
2021-02-17 13:10:18 +01:00
Arthur Baars
167574d82f
AST: HereDoc
2021-02-17 13:10:18 +01:00
Arthur Baars
1e19904342
Merge pull request #134 from github/literals
...
Add and expand AST classes for literals
2021-02-17 13:09:02 +01:00
Nick Rolfe
c019da83f3
Address feedback on StringInterpolationComponent::getStmt
2021-02-17 10:57:01 +00:00
Nick Rolfe
97654eb338
Simplify bash script
2021-02-17 10:48:17 +00:00
Arthur Baars
4f5b1c06ac
Merge branch 'main' into literals
2021-02-16 19:30:03 +01:00
Arthur Baars
3f4b4b360e
Merge pull request #133 from github/aibaars/pattern-0
...
AST: RestAssignment and LhsExpr
2021-02-16 19:29:15 +01:00
Nick Rolfe
3978d6387e
Update tree-sitter-ruby revision used
2021-02-16 16:49:59 +00:00
Nick Rolfe
4537e5d6f8
Update expected test output to match truncation of long strings
2021-02-16 16:21:49 +00:00
Nick Rolfe
02f853b8fd
Add r suffix to RationalLiteral::getValueText()
2021-02-16 16:21:28 +00:00
Nick Rolfe
cd38b980a8
Update dbscheme stats
2021-02-16 16:13:00 +00:00
Nick Rolfe
fff5dad702
Truncate long strings in StringlikeLiteral::toString()
2021-02-16 16:11:41 +00:00
Arthur Baars
7dd429c945
Format Expr.qll
2021-02-16 15:41:44 +00:00
Nick Rolfe
1c869f6d85
Make merge_stats.py work in python3
2021-02-16 15:41:44 +00:00
Nick Rolfe
5e6ef5c8b5
Upgrade script for dbscheme changes to range_*
2021-02-16 15:41:44 +00:00
Nick Rolfe
2eb8757285
Update expected test output for toString changes
2021-02-16 15:41:05 +00:00
Nick Rolfe
f56f81f555
Add and expand AST classes for literals
2021-02-16 15:41:05 +00:00
Arthur Baars
c4b3c8bc28
More QLDoc for LhsExpr
2021-02-16 16:09:56 +01:00
Arthur Baars
e3cf226679
AST: make ConstantWriteAccess extend LhsExpr
2021-02-16 13:03:04 +01:00
Arthur Baars
9d449a90c2
AST: add LhsExpr
2021-02-16 13:02:02 +01:00
Arthur Baars
7778f1c21f
AST: make Pattern:Range abstract
2021-02-16 13:01:00 +01:00
Arthur Baars
9c5da197ed
AST: add Pattern::getRestIndex
2021-02-16 12:56:06 +01:00
Arthur Baars
eee12eecc9
Merge pull request #132 from github/rescue_naming
...
Rename {Rescue,RescueExpr} to {RescueExpr,RescueModifierExpr}
2021-02-16 12:54:19 +01:00
Nick Rolfe
04ad1f805a
Update rust auto-formatting for 1.50
2021-02-16 11:47:24 +00:00
Nick Rolfe
0fc19ea7a9
Rename RescueExpr to RescueClause
2021-02-16 11:46:30 +00:00
Nick Rolfe
cf50006d68
Rename {Rescue,RescueExpr} to {RescueExpr,RescueModifierExpr}
2021-02-16 11:09:25 +00:00
Arthur Baars
90f59de589
Merge pull request #130 from github/aibaars/ast-5
...
AST: add ElementReference as call
2021-02-15 14:59:34 +01:00
Arthur Baars
ad6c916f01
Merge pull request #129 from github/aibaars/ast-4
...
AST: rescue modifier
2021-02-15 14:59:22 +01:00
Arthur Baars
c6c39ad04d
Merge pull request #128 from github/aibaars/ast-3
...
AST: undef and alias
2021-02-15 14:59:12 +01:00
Arthur Baars
5b8c74eb5b
AST: add SingletonMethod::getObject
2021-02-15 13:53:50 +01:00
Arthur Baars
e3f54411d8
AST: add ElementReference
2021-02-15 13:51:16 +01:00
Arthur Baars
d69a1731f9
Fix QL doc
2021-02-15 12:53:13 +01:00
Arthur Baars
ddea74265d
AST: rescue modifier
2021-02-15 12:50:00 +01:00
Arthur Baars
9cb58be5cf
AST: avoid multivalued results for MethodName::getValueText
2021-02-15 10:39:21 +01:00
Arthur Baars
8a4f27c052
Add test case
2021-02-12 19:23:13 +01:00
Arthur Baars
5f1907efc4
AST: undef and alias
2021-02-12 19:22:51 +01:00
Arthur Baars
392af7fe76
Merge pull request #127 from github/aibaars/ast-2
...
Some more AST
2021-02-12 18:40:24 +01:00
Arthur Baars
c0c155361f
Address comments
2021-02-12 18:31:44 +01:00
Arthur Baars
874ac121d9
AST: Toplevel and BEGIN/ END blocks
2021-02-12 15:26:30 +01:00
Arthur Baars
015b581f57
AST: add redo, retry, empty-statement
2021-02-12 15:18:28 +01:00
Arthur Baars
64cba18c41
AST: add Self class
2021-02-12 14:09:00 +01:00
Arthur Baars
ce824f4adb
Merge pull request #126 from github/aibaars/rescue
...
AST: rescue clauses
2021-02-12 14:08:31 +01:00
Arthur Baars
63f67aa04e
AST: rename getVariable to getVariableExpr
2021-02-12 13:35:17 +01:00
Tom Hvitved
1aaebeea76
Merge pull request #125 from github/hvitved/cfg-to-string
...
CFG: Reintroduce `toString()`s
2021-02-11 18:46:26 +01:00
Arthur Baars
43b238f729
AST: rescue clauses
2021-02-11 18:40:29 +01:00
Tom Hvitved
c4ee79ed27
CFG: Reintroduce toString()s
2021-02-11 18:37:18 +01:00
Nick Rolfe
307db73c9c
Merge pull request #124 from github/aibaars/ast-stmt-expr
...
AST: make Expr extend Stmt and change ExprSequence to StmtSequence
2021-02-11 17:00:21 +00:00
Arthur Baars
f9e9dc2304
Address comment
...
Co-authored-by: Nick Rolfe <nickrolfe@github.com >
2021-02-11 17:53:28 +01:00
Arthur Baars
c4e2c87d82
AST: some statement tests
2021-02-11 17:20:11 +01:00
Arthur Baars
d42b6b651e
AST: rename ExprSequence to StmtSequence
2021-02-11 17:20:10 +01:00
Arthur Baars
fd6aeba9f5
AST: make Expr extend Stmt
2021-02-11 17:20:10 +01:00
Arthur Baars
f02d4a977d
AST: some statement tests
2021-02-11 17:20:10 +01:00
Arthur Baars
d02d359c51
Merge pull request #122 from github/constants_scopes
...
Rework handling of scope resolution nodes, and add `ConstantAccess` class
2021-02-11 17:19:47 +01:00
Arthur Baars
ada652b6f0
Merge branch 'main' into constants_scopes
2021-02-11 17:00:50 +01:00
Nick Rolfe
885137dca2
Simplify representation of calls that use scope resolution operator.
...
Now, `Foo::bar` is a call where the receiver expr is `Foo`.
2021-02-11 15:29:42 +00:00
Arthur Baars
f8ce7276a3
Merge pull request #123 from github/aibaars/ast-ensure
...
AST: ensure and else blocks
2021-02-11 15:17:30 +01:00
Arthur Baars
a908f2fe86
Merge pull request #121 from github/aibaars/dataflow-2
...
Dataflow: identify ReturnNodes
2021-02-11 15:10:27 +01:00
Arthur Baars
426bf30822
AST: ensure and else blocks
2021-02-11 14:27:23 +01:00
Arthur Baars
4f3412fff9
Address comments
2021-02-11 13:46:34 +01:00
Nick Rolfe
23998e5f99
Accept CFG test changes
...
Some generated ScopeResolution nodes are no longer represented in the
user-facing AST. These should go away when we port the CFG to the
user-facing AST.
2021-02-11 12:38:13 +00:00
Nick Rolfe
6ff0ebb94a
Add ConstantAccess class
2021-02-11 12:29:25 +00:00
Nick Rolfe
452a343e86
Remove ScopeResolution from AST
...
Now we handle it specially in calls and class/module names, so they have
predicate to get the scope expr.
2021-02-10 17:53:25 +00:00
Arthur Baars
0f6854301e
Dataflow: identify ReturnNodes
2021-02-10 18:26:11 +01:00
Arthur Baars
d69aa96f23
More tests
2021-02-10 18:26:11 +01:00
Arthur Baars
6c63bd2586
Merge pull request #120 from github/aibaars/ast
...
AST: lambda and block bodies
2021-02-10 18:25:37 +01:00
Arthur Baars
635b6fb45b
AST: lambda and brace block bodies
2021-02-10 14:45:14 +01:00
Arthur Baars
d4ebcbf18f
Merge pull request #118 from github/aibaars/dataflow
...
More dataflow steps
2021-02-09 20:36:28 +01:00
Tom Hvitved
9cfc08319d
Use Generated::AstNode in ExprChildMapping
2021-02-09 19:32:41 +01:00
Arthur Baars
1e64b264ba
Fix compilation errors after merge
2021-02-09 18:50:30 +01:00
Arthur Baars
3e0b7c491a
Merge remote-tracking branch 'origin/main' into aibaars/dataflow
2021-02-09 18:49:53 +01:00
Tom Hvitved
248f5cd648
Merge pull request #119 from github/hvitved/ast-range
...
Rangify `AstNode`
2021-02-09 16:47:50 +01:00
Tom Hvitved
85c13a1190
Make entries in RemoveWhenFullCoverage explicit
2021-02-09 16:34:25 +01:00
Arthur Baars
daa7bd7fd4
Move ReturningStmt::getValue implementation to internal library
2021-02-09 14:01:08 +01:00
Arthur Baars
e398837bdc
Rename Statement to Stmt
2021-02-09 13:55:06 +01:00
Arthur Baars
bb89e134c4
Address comments
2021-02-09 13:54:46 +01:00
Tom Hvitved
32daf28b34
Rangify AstNode
2021-02-09 12:17:21 +01:00
Arthur Baars
a752491c5f
Add flow steps for loop 'return' values
2021-02-08 19:06:07 +01:00
Arthur Baars
adb88df638
Add flow steps for conditional and case expressions
2021-02-08 19:00:47 +01:00
Arthur Baars
c991d550cd
AST: add Statement and ReturningStatement
2021-02-08 19:00:47 +01:00
Arthur Baars
bde04d48a2
Merge pull request #116 from github/aibaars/cfg-loop-post-order
...
CFG: make loop expressions post order
2021-02-08 09:53:25 +01:00
Arthur Baars
f2a6f3aadc
Update comments
2021-02-08 09:47:33 +01:00
Arthur Baars
37c4e6cbdf
Merge pull request #98 from github/aibaars/erb-extractor
...
Quick and dirty ERB extraction
2021-02-05 18:45:47 +01:00
Arthur Baars
b553eb6964
CFG: make 'for .. in' post-order
...
Use the 'in' as the intermediate node that checks whether the Enumerable
has more elements.
2021-02-05 18:23:31 +01:00
Arthur Baars
4ae55a718a
CFG: make 'while' post-order
2021-02-05 18:23:31 +01:00
Arthur Baars
5bb32b983c
Merge pull request #115 from github/aibaars/dataflow
...
My first dataflow step
2021-02-05 14:13:38 +01:00
Arthur Baars
846173732b
Add newline at the end of each code region in an ERB file
2021-02-05 09:49:25 +01:00
Arthur Baars
9d974bd56d
Extract ERB files
2021-02-05 09:48:54 +01:00
Arthur Baars
bc55fa861e
Merge pull request #114 from github/aibaars/fix-scopes
...
Correct the scope of class/method names etc.
2021-02-04 17:22:25 +01:00
Arthur Baars
83bcd26244
Add dataflow step tests
2021-02-04 16:09:50 +01:00
Arthur Baars
62802d53c8
Ensure module/class/methods and their headers belong to the right CfgScope
2021-02-04 15:32:20 +01:00
Arthur Baars
bfc5ee3149
Correct the scope of class/method names etc.
2021-02-04 15:30:58 +01:00
Arthur Baars
a998879897
Add local flow step for parenthesized expressions
2021-02-04 14:06:58 +01:00
Arthur Baars
f8cca01e6f
Restrict assigment flow to normal assignments only
2021-02-04 14:04:58 +01:00
Arthur Baars
8368a39f00
QLDoc updates
2021-02-04 13:40:06 +01:00
Arthur Baars
da565875df
Merge pull request #112 from github/hvitved/ssa/shared-sync
...
SSA: Sync with latest changes
2021-02-04 13:39:32 +01:00
Arthur Baars
8cec8699a7
Merge pull request #113 from github/aibaars/parenthesized-expr
...
AST: add ParenthesizedExpr
2021-02-04 13:36:47 +01:00
Arthur Baars
2035bc4d3a
AST: add ParenthesizedExpr
2021-02-04 11:51:05 +01:00
Nick Rolfe
61d9669655
Merge pull request #110 from github/class_ast
...
Add AST classes for classes and modules
2021-02-03 19:32:55 +00:00
Tom Hvitved
16c4faef6a
SSA: Sync with latest changes
...
Now that the shared SSA library supports uncertain/pseudo reads, we can simplify
the Ruby implementation.
2021-02-03 20:31:36 +01:00
Nick Rolfe
c5fca0cb6b
Add ModuleBase base class and combine class/module tests
2021-02-03 16:13:59 +00:00
Arthur Baars
3c0f822369
Merge pull request #111 from github/hvitved/dataflow
...
Initial data flow library
2021-02-03 13:43:08 +01:00
Tom Hvitved
de77a7f96d
Initial data-flow files
2021-02-03 10:57:14 +01:00
Nick Rolfe
8976cc556a
Update test to match removal of Module::getAClass()
2021-02-02 18:02:16 +00:00
Nick Rolfe
ee03e84d7f
Rename Class.qll to Module.qll
2021-02-02 18:00:29 +00:00
Nick Rolfe
645b8c2a8a
Apply suggestions from code review
...
Co-authored-by: Arthur Baars <aibaars@github.com >
2021-02-02 17:54:00 +00:00
Tom Hvitved
f71505c29c
Data flow: Sync files
2021-02-02 13:03:42 +01:00
Nick Rolfe
6331a33b23
Update dbscheme stats
2021-02-01 14:41:00 +00:00
Nick Rolfe
c667791bde
Update expected test output to match toString() for classes and modules
2021-02-01 14:23:47 +00:00
Nick Rolfe
0649e6c3b0
Update CFG to handle separate superclass node
2021-02-01 14:23:47 +00:00
Nick Rolfe
fbc1c5e8c0
Add test for Module
2021-02-01 14:23:47 +00:00
Nick Rolfe
86bb8a246b
Add test for Class and SingletonClass
2021-02-01 14:23:47 +00:00
Nick Rolfe
d26822ad23
Add upgrade script moving superclass exprs to own table
2021-02-01 14:23:47 +00:00
Nick Rolfe
443a992a90
Add AST classes for classes and modules
2021-02-01 14:23:41 +00:00
Arthur Baars
2770b4fef8
Merge pull request #104 from github/aibaars/variables
...
Simple implementation of class and instance variables
2021-01-29 18:28:25 +01:00
Arthur Baars
c33c3a1124
Address comments
2021-01-29 17:45:48 +01:00
Arthur Baars
6a7e3bfc10
Address comments
2021-01-29 17:45:48 +01:00
Arthur Baars
2921f72473
Implement class variables
2021-01-29 17:45:48 +01:00
Arthur Baars
a07e0fb0f7
Class variables boilerplate code
2021-01-29 17:45:44 +01:00
Arthur Baars
341bc5c888
Implement instance variables
2021-01-29 16:09:44 +01:00
Arthur Baars
e36795c82e
Instance variables boilerplate code
2021-01-29 15:41:23 +01:00
Arthur Baars
184d42efe0
Remove unnecessary clause
2021-01-29 15:39:31 +01:00
Arthur Baars
b04391636d
Fix qldoc comment
2021-01-29 15:39:31 +01:00
Tom Hvitved
f8790c81a8
Merge pull request #108 from github/hvitved/ssa
...
Add SSA library
2021-01-29 15:12:14 +01:00
Nick Rolfe
623ee59410
Merge pull request #106 from github/self
2021-01-28 20:16:48 +00:00
Nick Rolfe
30804f74e2
Remove redundant instanceof expression
2021-01-28 17:48:16 +00:00
Tom Hvitved
47fdee4bbe
Sync SsaImplCommon.qll with C# implementation
2021-01-28 09:09:37 +01:00
Tom Hvitved
05b8a6c27b
Apply suggestions from code review
...
Co-authored-by: Nick Rolfe <nickrolfe@github.com >
2021-01-28 08:49:42 +01:00
Nick Rolfe
640092352b
RegularSuperCallRange::getReceiver() never holds
2021-01-27 18:49:37 +00:00
Nick Rolfe
743e627a8d
Test calls to methods named 'super'
2021-01-27 18:45:08 +00:00
Nick Rolfe
70bbeaac3b
Simplify, since super tokens are never variable accesses
2021-01-27 18:28:01 +00:00
Tom Hvitved
b9b4325b84
Add initial mapping of CFG nodes to AST nodes
2021-01-27 15:38:49 +01:00
Tom Hvitved
edc6e7eba8
Add UnusedParameter.ql query
2021-01-27 10:47:42 +01:00
Tom Hvitved
9dfea8006d
Add UninitializedLocal.ql query
2021-01-27 10:44:49 +01:00
Tom Hvitved
8abedaee8a
Add DeadStoreOfLocal.ql query
2021-01-27 10:42:02 +01:00
Tom Hvitved
2077ba4a1f
Add SSA library
2021-01-27 10:39:19 +01:00
Nick Rolfe
6423ea3219
Merge pull request #107 from github/hvitved/index-files-working-dir
...
Add `--working-dir=.` to `index-files` call
2021-01-26 19:19:20 +00:00
Tom Hvitved
735eb24a33
Add --working-dir=. to index-files call
2021-01-26 19:31:16 +01:00
Nick Rolfe
7ac46bf8f8
Add SuperCall class for calls to super
2021-01-26 18:08:46 +00:00
Tom Hvitved
d19053deda
Merge pull request #105 from github/hvitved/vcall
2021-01-25 18:41:36 +01:00
Tom Hvitved
2c6b9eceda
Move vcall into internal/Variable.qll
2021-01-25 16:26:11 +01:00
Tom Hvitved
ce74208317
Merge pull request #97 from github/hvitved/var-access-categorization
...
Categorize variable accesses into reads and (implicit or explicit) writes
2021-01-25 16:25:35 +01:00
Tom Hvitved
979da623ed
Merge pull request #103 from github/hvitved/cfg/params
...
CFG: Replace special parameters with their identifiers
2021-01-25 16:24:10 +01:00
Tom Hvitved
3a0c9a8104
CFG: Replace special parameters with their identifiers
...
For example, instead of including `**kwargs` in the CFG, we include `kwargs`.
This means that all variable accesses belonging to parameter definitions will
be included in the CFG.
2021-01-25 10:02:21 +01:00
Nick Rolfe
12fc0b914b
Merge pull request #102 from github/hvitved/blocks-no-params
...
Recognize blocks without parameters
2021-01-22 15:44:14 +00:00
Tom Hvitved
586885f066
Recognize blocks without parameters
2021-01-22 16:16:01 +01:00
Tom Hvitved
0f3a4a1a60
Merge pull request #101 from github/stats
...
Update stats
2021-01-22 16:05:47 +01:00
Nick Rolfe
216b1de2dd
Update stats
2021-01-22 14:35:43 +00:00
Nick Rolfe
858ca0b3bc
Merge pull request #100 from github/call_ast
...
Add AST classes and tests for method calls
2021-01-22 14:33:10 +00:00
Nick Rolfe
243dfde72e
Create ComplexSymbolRange class to deduplicate some predicates
2021-01-22 14:21:39 +00:00
Tom Hvitved
7e374c416a
Categorize variable accesses into reads and (implicit or explicit) writes
2021-01-22 13:17:26 +01:00
Nick Rolfe
3939008fd5
Small tweaks based on PR feedback
2021-01-22 12:17:17 +00:00
Nick Rolfe
ccd8a2aae6
Merge remote-tracking branch 'origin/main' into call_ast
2021-01-22 11:48:32 +00:00
Tom Hvitved
08c655e4e3
Merge pull request #99 from github/hvitved/cfg/to-string
...
CFG: Use manual `toString()`s for `AstCfgNode` when available
2021-01-21 14:10:16 +01:00
Nick Rolfe
2e8d154f2b
Add AST classes and tests for method calls
2021-01-20 18:34:25 +00:00
Tom Hvitved
bf7eb022a0
CFG: Use manual toString()s for AstCfgNode when available
2021-01-20 19:15:03 +01:00
Arthur Baars
78771ba4c2
Merge pull request #96 from github/hvitved/codeql-submodule-sync
...
Add `github/codeql` submodule and functionality for synchronizing files
2021-01-19 11:16:38 +01:00
Tom Hvitved
c11df1fe8c
Add sync-identical-files.py
2021-01-18 17:34:51 +01:00
Tom Hvitved
a41eea4fd7
Merge pull request #95 from github/hvitved/cfg/not-bug
...
CFG: Fix bug in `LogicalNotTree`
2021-01-18 16:05:39 +01:00
Tom Hvitved
e9a8afe284
Add github/codeql as a sub module
2021-01-18 15:54:39 +01:00
Tom Hvitved
34fe416a85
CFG: Fix bug in LogicalNotTree
2021-01-18 15:03:58 +01:00
Tom Hvitved
3f31775252
CFG: Add test for constant condition
2021-01-18 15:01:41 +01:00
Arthur Baars
03d407e50d
Merge pull request #82 from github/more_exprs
...
Add AST library for control expressions (conditionals and loops)
2021-01-11 10:35:37 +01:00
Nick Rolfe
6d7efab820
Add ConditionalLoop base class
2021-01-08 12:20:08 +00:00
Arthur Baars
c68f6a7f2e
Merge pull request #84 from github/aibaars/codeql-threads
...
Actions: apply CODEQL_THREADS to all steps
2021-01-08 13:19:01 +01:00
Nick Rolfe
6465c90a16
Rename IfOrElsifExpr to IfExpr; remove child classes
2021-01-08 11:53:15 +00:00
Nick Rolfe
15785b4535
Add db base type for CaseExpr::Range
2021-01-08 11:31:43 +00:00
Arthur Baars
4ef4053385
Actions: apply CODEQL_THREADS to all steps
2021-01-08 10:25:25 +01:00
Nick Rolfe
6efebf1e36
Merge remote-tracking branch 'origin/main' into more_exprs
2021-01-07 19:02:50 +00:00
Nick Rolfe
6c0804c1af
Address feedback on CFG change
2021-01-07 19:02:37 +00:00
Nick Rolfe
8cb8ead48e
Address more feedback on ExprSequence
2021-01-07 19:02:14 +00:00
Nick Rolfe
19a4e63ac6
Move comment about getCondition from class to predicate
2021-01-07 18:01:38 +00:00
Nick Rolfe
9a71bdc993
Improvements from feedback on case/when classes.
2021-01-07 17:48:51 +00:00
Nick Rolfe
36c7d3fe5b
Replace ConditionalExpr::get{Then,Else} with getBranch(boolean cond).
2021-01-07 17:32:41 +00:00
Nick Rolfe
e245382057
Merge pull request #83 from github/threads
...
Parallelize extraction
2021-01-07 17:14:41 +00:00
Nick Rolfe
f4abe7f4a1
Remove ThenExpr, ElseExpr, and DoExpr from public API
2021-01-07 15:56:31 +00:00
Nick Rolfe
83a28786a0
Use 4 threads for extraction and TRAP import in stats job
2021-01-07 11:17:07 +00:00
Nick Rolfe
1d3f06aca1
Simplify propagation of errors
2021-01-07 11:11:15 +00:00
Nick Rolfe
92c78e2b2d
Simplify num_codeql_threads function slightly
2021-01-07 11:10:43 +00:00
Nick Rolfe
bb2bdc01b5
Have the extract function create the TS parser object
2021-01-07 10:56:23 +00:00
Nick Rolfe
bf4eac5113
Parallelize extraction
...
Use the Rayon library to do parallel iteration over the file list. The
number of threads used respects the CODEQL_THREADS environment variable.
2021-01-06 18:22:27 +00:00
Nick Rolfe
f484b573f2
update stats for dbscheme change
2021-01-05 16:25:46 +00:00
Nick Rolfe
7c503120ae
Add AST library for control expressions (conditionals and loops)
2021-01-05 16:08:33 +00:00
Arthur Baars
c35283cefb
Merge pull request #77 from github/aibaars/global-variables
...
Add global variables
2020-12-21 12:15:31 +01:00
Arthur Baars
f0ddeaa9f2
Merge pull request #81 from github/aibaars/revert-dup-code
...
Update ruby.dbscheme.stats
2020-12-21 12:15:10 +01:00
Arthur Baars
ad1782b620
Address comments
2020-12-21 11:01:46 +01:00
Arthur Baars
8469bd3688
Uncomment getAPrimaryQlClass()
2020-12-21 11:01:46 +01:00
Arthur Baars
dc0de9132e
Add GlobalVariable
2020-12-21 11:01:46 +01:00
Arthur Baars
1ada9feda7
Make VariableAccess "abstract"
2020-12-21 11:01:46 +01:00
Arthur Baars
ebacec41d5
Update ruby.dbscheme.stats
2020-12-21 10:58:25 +01:00
Nick Rolfe
b1b2815c26
Merge pull request #80 from github/aibaars/revert-dup-code
...
Updates after CodeQL upgrade to 2.4.1
2020-12-21 09:57:59 +00:00
Arthur Baars
d4874641a3
Revert "Add duplicate code tables to dbscheme"
...
This reverts commit 4c699fcb32 .
2020-12-21 10:45:59 +01:00
Arthur Baars
bf232f0582
Update formatting for CodeQL 2.4.1
2020-12-21 10:45:59 +01:00
Arthur Baars
ff8ea6d44f
Merge pull request #79 from github/test_checks
...
Add all the TRAP check flags in qltest workflow
2020-12-21 10:20:47 +01:00
Nick Rolfe
5a54026bcc
Add all the TRAP check flags in qltest workflow
2020-12-18 17:25:28 +00:00
Arthur Baars
dddf0a66d9
Merge pull request #78 from github/typo
...
fix typo in comment
2020-12-18 13:50:58 +01:00
Nick Rolfe
72319b538f
fix typo in comment
2020-12-18 12:47:31 +00:00
Arthur Baars
8f1c916242
Merge pull request #66 from github/aibaars/cfg-2
...
CFG: make all simple nodes instance of StandardLeftToRight{Pre,Post}Tree
2020-12-18 13:26:05 +01:00
Nick Rolfe
c4ca537574
Merge pull request #75 from github/stmts_exprs
...
Add AST classes and tests for operations
2020-12-18 10:40:27 +00:00
Nick Rolfe
6c828214f7
Make import private
2020-12-18 10:23:19 +00:00
Nick Rolfe
53fbfc369d
Make params test pass for now
...
- some toString improvements
- comment out getAPrimaryQlClass predicates that cause the test to fail
2020-12-18 10:13:13 +00:00
Nick Rolfe
4718de08b2
Address review feedback
2020-12-18 10:08:45 +00:00
Nick Rolfe
a87fe410af
Simplify examples for unary plus/minus
2020-12-17 18:35:01 +00:00
Nick Rolfe
8b7af665b4
Simplify imports
2020-12-17 18:33:49 +00:00
Tom Hvitved
6893f57978
Merge pull request #74 from github/hvitved/cfg/fix-join-order
...
CFG: Fix bad join-order
2020-12-17 16:58:23 +01:00
Tom Hvitved
07c464b753
CFG: Fix bad join-order
...
Before:
```
[2020-12-17 11:33:46] (211s) Tuple counts for ControlFlowGraphImpl::Trees::RescueEnsureBlockTree::nestedEnsure_dispred#ff/2@2ea588:
11409019 ~0% {2} r1 = SCAN ControlFlowGraphImpl::getScope#ff AS I OUTPUT I.<1>, I.<0> 'this'
3714296409 ~0% {3} r2 = JOIN r1 WITH ControlFlowGraphImpl::Trees::getAChildInScope#fff_102#join_rhs AS R ON FIRST 1 OUTPUT r1.<1> 'this', R.<1>, R.<2>
2359 ~0% {2} r3 = JOIN r2 WITH ControlFlowGraphImpl::Trees::RescueEnsureBlockTree::getAnEnsureDescendant#ff AS R ON FIRST 2 OUTPUT r2.<2>, r2.<0> 'this'
1 ~0% {2} r4 = JOIN r3 WITH ControlFlowGraphImpl::Trees::RescueEnsureBlockTree::getEnsure_dispred#ff_10#join_rhs AS R ON FIRST 1 OUTPUT r3.<1> 'this', R.<1> 'innerBlock'
return r4
```
After:
```
[2020-12-17 15:20:37] (51s) Tuple counts for ControlFlowGraphImpl::Trees::RescueEnsureBlockTree::nestedEnsure_dispred#ff/2@c4f57d:
635 ~1% {3} r1 = JOIN ControlFlowGraphImpl::Trees::RescueEnsureBlockTree::getEnsure_dispred#ff_10#join_rhs AS L WITH ControlFlowGraphImpl::Trees::getAChildInScope#fff_201#join_rhs AS R ON FIRST 1 OUTPUT R.<1>, L.<1> 'innerBlock', R.<2>
1 ~0% {3} r2 = JOIN r1 WITH ControlFlowGraphImpl::Trees::RescueEnsureBlockTree::getAnEnsureDescendant#ff_10#join_rhs AS R ON FIRST 1 OUTPUT R.<1> 'this', r1.<2>, r1.<1> 'innerBlock'
1 ~0% {2} r3 = JOIN r2 WITH ControlFlowGraphImpl::getScope#ff AS R ON FIRST 2 OUTPUT r2.<0> 'this', r2.<2> 'innerBlock'
return r3
```
2020-12-17 16:46:03 +01:00
Arthur Baars
ff751b97d2
CFG: make all simple nodes instance of StandardLeftToRight{Pre,Post}Tree
2020-12-17 16:39:54 +01:00
Arthur Baars
a15a066414
Merge pull request #72 from github/aibaars/fix-cfg
...
CFG improvements
2020-12-17 16:39:19 +01:00
Arthur Baars
b676c95218
Address comments
2020-12-17 16:35:51 +01:00
Nick Rolfe
73798312b9
Add classes and tests for operations
2020-12-17 15:16:37 +00:00
Tom Hvitved
46fc17da58
CFG: Fix multiple abnormal successors
2020-12-17 11:15:17 +01:00
Tom Hvitved
1033b8610a
CFG: Add more tests
2020-12-17 11:14:10 +01:00
Arthur Baars
91ae237434
Use latest CodeQL for CI
2020-12-17 11:04:57 +01:00
Arthur Baars
dd954ea943
CFG: correct flow for lambda bodies
...
Lambda bodies are parsed as nested do-blocks or normal blocks.
This is actually incorrect, as the body of a lambda can't have
parameters. However, we can "inline" such blocks to get the
desired control flow.
2020-12-17 10:04:01 +01:00
Arthur Baars
eafec4331b
CFG: add nodes for block arguments
2020-12-17 10:04:01 +01:00
Arthur Baars
d016e3cae0
CFG: methods are evaluated before their arguments
2020-12-17 10:04:01 +01:00
Arthur Baars
81c907a87a
CFG: fix BEGIN and END blocks
2020-12-17 10:04:01 +01:00
Arthur Baars
f2fd1c7931
CFG: make def nodes visible
2020-12-17 10:04:01 +01:00
Arthur Baars
f2effce786
CFG: improve handling of block and lambda
2020-12-17 10:04:01 +01:00
Arthur Baars
30895e634c
CFG: refactor CfgScope
2020-12-17 10:04:01 +01:00
Arthur Baars
bc47338b52
CFG: add test-case for conditional method declarations
2020-12-17 10:04:01 +01:00
Arthur Baars
69de81bdd5
CFG: have alternative flow for the definition and call of methods etc.
2020-12-17 10:04:01 +01:00
Arthur Baars
fd14770542
CFG: drop getObject from flow of singleton method
2020-12-17 09:59:30 +01:00
Arthur Baars
8501e30b6a
CFG: fix linking heredoc start to heredoc body
2020-12-17 09:59:30 +01:00
Arthur Baars
edbd997f15
Merge pull request #71 from github/kinds
...
Create disjoint db types for different operators
2020-12-17 09:58:52 +01:00
Nick Rolfe
282d20d766
Remove redundant field on ChildNode struct
2020-12-16 20:57:06 +00:00
Nick Rolfe
a873cb9f3d
Update dbscheme stats
2020-12-16 20:53:41 +00:00
Nick Rolfe
d1a9572b0e
Merge remote-tracking branch 'origin/main' into kinds
2020-12-16 17:55:20 +00:00
Nick Rolfe
f5282edfc1
Simplifications based on PR feedback
2020-12-16 17:54:40 +00:00
Arthur Baars
381d6aafaa
Merge pull request #73 from github/calls
...
Update tree-sitter-ruby to pick up improvements to calls
2020-12-16 14:00:53 +01:00
Nick Rolfe
0518d51b51
Update CFG: call receiers are evaluated before arguments
2020-12-16 12:40:57 +00:00
Nick Rolfe
e98a84c8b5
Update CFG to match changes to Call/MethodCall
2020-12-16 12:01:30 +00:00
Nick Rolfe
aa0c1491a6
Update tree-sitter-ruby to pick up improvements to calls
2020-12-16 10:13:45 +00:00
Arthur Baars
7971b243f1
Merge pull request #69 from github/hvitved/cfg/post-order-cond
...
CFG: Model `IfElsifAstNode` in post-order
2020-12-15 19:22:16 +01:00
Nick Rolfe
ddb71790e9
Fix formatting
2020-12-15 16:01:13 +00:00
Tom Hvitved
9aadeedeb9
CFG: Model IfElsifAstNode in post-order
2020-12-15 17:00:12 +01:00
Tom Hvitved
bb88858633
CFG: Add test for nested ifs
2020-12-15 16:46:55 +01:00
Nick Rolfe
3f5eab04b5
Create disjoint db types for different operators
2020-12-15 15:22:33 +00:00
Arthur Baars
ac9f439935
Merge pull request #70 from github/hvitved/cfg/rescue-part2
...
CFG: More adjustments for `rescue`/`ensure`
2020-12-15 16:06:26 +01:00
Tom Hvitved
16c25f2a4c
CFG: Handle ensure blocks without body/rescues
2020-12-15 13:49:14 +01:00
Tom Hvitved
489b406e2a
CFG: Change column order in succExit/hasExitScope
2020-12-15 13:45:22 +01:00
Tom Hvitved
e784640cca
CFG: Add more test cases
2020-12-15 13:45:22 +01:00
Arthur Baars
5108b369e1
Merge pull request #64 from github/hvitved/cfg/rescue
...
Implement CFG logic for `rescue-ensure`
2020-12-15 11:43:14 +01:00
Tom Hvitved
a76e6848c7
CFG: Address more review comments
2020-12-14 20:45:57 +01:00
Tom Hvitved
ec4ead2117
Apply suggestions from code review
...
Co-authored-by: Arthur Baars <aibaars@github.com >
2020-12-14 14:53:35 +01:00
Nick Rolfe
b76f97d337
Merge pull request #68 from github/bump_ts
...
Bump tree-sitter-ruby revision to get operator_assignment field
2020-12-14 12:40:36 +00:00
Tom Hvitved
89fb2f8498
CFG: Add @kind graph to Cfg.ql, and remove labels from ordinary successor edges
2020-12-14 11:00:26 +01:00
Nick Rolfe
6bacac7598
Bump tree-sitter-ruby revision to get operator_assignment field
2020-12-08 18:28:54 +00:00
Tom Hvitved
b14a889f5f
CFG: Use MatchingCompletion for parameters with default values
2020-12-08 13:47:32 +01:00
Tom Hvitved
80a59a81ed
CFG: Use MatchingCompletion for patterns
2020-12-08 13:47:32 +01:00
Tom Hvitved
31b8d33a7c
CFG: Mark redo edges out of for loops
2020-12-08 13:47:32 +01:00
Tom Hvitved
b6ea5c5eab
CFG: Implement logic for rescue-ensure blocks
2020-12-08 13:47:32 +01:00
Nick Rolfe
53a1cbc492
Merge pull request #67 from github/getAPrimaryQlClass
...
Rename describeQlClass to getAPrimaryQlClass
2020-12-08 12:16:18 +00:00
Nick Rolfe
3145b3dde7
Rename describeQlClass to getAPrimaryQlClass
2020-12-08 11:09:18 +00:00
Tom Hvitved
5a0376f67e
CFG: More tests
2020-12-08 11:06:15 +01:00
Arthur Baars
990ed34c02
Merge pull request #55 from github/aibaars/cfg
...
Control flow graph
2020-12-07 16:51:33 +01:00
Arthur Baars
9390cf0401
CFG: add test case for if-in-case
2020-12-07 16:46:52 +01:00
Arthur Baars
86e73afc74
CFG: extract HeredocBeginning::getName predicate
2020-12-07 16:31:17 +01:00
Arthur Baars
9883d7124e
CFG: improve handling of redo
2020-12-07 16:20:42 +01:00
Arthur Baars
003f7230b2
Apply suggestions from code review
...
Co-authored-by: Tom Hvitved <hvitved@github.com >
2020-12-07 16:02:19 +01:00
Arthur Baars
024150b04b
CFG: hide 'begin'
2020-12-07 16:02:19 +01:00
Arthur Baars
87451fd999
CFG: specialise return type instead of instanceof check
2020-12-07 15:36:09 +01:00
Arthur Baars
6aea3eff3e
CFG: rename getBody{=>Node} and getCondition{=>Node}
2020-12-07 15:30:57 +01:00
Arthur Baars
6d12bcc2fe
Make ConditionalSuccessor not abstract
2020-12-07 15:19:14 +01:00
Arthur Baars
044d14c8b4
Use private imports in generated code
2020-12-07 15:14:34 +01:00
Arthur Baars
ed3b102ecc
Improve formatting
2020-12-07 15:12:43 +01:00
Arthur Baars
d25835c7d2
Merge pull request #61 from github/aibaars/code-nav
...
Add basic code navigation queries
2020-12-07 14:47:43 +01:00
Arthur Baars
2394b26636
CFG: skip Uninterpreted nodes
2020-12-07 13:11:21 +01:00
Arthur Baars
36f5a63c18
Improve handling of class, module, block and method
2020-12-07 13:11:21 +01:00
Arthur Baars
2124247d5e
CFG: add samples of all syntactical constructs to cfg.rb
2020-12-07 13:11:21 +01:00
Arthur Baars
ebf3a31224
CFG: don't handle rescue, else, ensure for now
2020-12-07 13:11:21 +01:00
Arthur Baars
97d0220ffd
CFG: Model nodes with simple flow
2020-12-07 13:11:21 +01:00
Arthur Baars
3807e1be38
CFG: flow for rescue-modifier
2020-12-07 13:11:21 +01:00
Arthur Baars
d619bdd8f9
CFG: Completions: fix definition of boolean constants
2020-12-07 13:11:21 +01:00
Arthur Baars
6c579ff608
CFG: link heredoc start to its body
2020-12-07 13:11:21 +01:00
Arthur Baars
49d11b1e09
CFG: don't hide Class and Module nodes
2020-12-07 13:11:21 +01:00
Arthur Baars
0852068bcd
CFG: make lambda a CFG entry point
2020-12-07 13:11:21 +01:00
Arthur Baars
01066ea3bb
CFG: case expression
2020-12-07 13:11:21 +01:00
Arthur Baars
2f238280dc
CFG: model if-modifier and unless
2020-12-07 13:11:21 +01:00
Arthur Baars
5d6e77be28
CFG: model while, until and variants
2020-12-07 13:11:21 +01:00
Arthur Baars
6660cb4417
CFG: for-in loop
2020-12-07 13:11:21 +01:00
Arthur Baars
165b2b37dc
Treat for variables and exception variables as declarations
2020-12-07 13:11:21 +01:00
Arthur Baars
b60ea74e8a
Treat conditional expressions as if-then-else
2020-12-07 13:11:21 +01:00
Arthur Baars
97fab0d18b
Assignments evaluate right-hand-side first
2020-12-07 13:11:21 +01:00
Arthur Baars
465c266b8a
Classes and module are not CfgScopes
2020-12-07 13:11:21 +01:00
Arthur Baars
0959a4675f
Merge pull request #65 from github/aibaars/dup-code
...
Add duplicate code tables to dbscheme
2020-12-07 13:10:52 +01:00
Arthur Baars
4c699fcb32
Add duplicate code tables to dbscheme
2020-12-07 13:06:26 +01:00
Arthur Baars
0a38d6801c
Address review comments
2020-12-07 12:53:45 +01:00
Arthur Baars
d92d635103
Add basic code navigation queries
2020-12-04 15:01:43 +01:00
Arthur Baars
1d502cb40d
Merge pull request #63 from github/aibaars/fix-warnings
...
Fix warnings and make imports private
2020-12-04 10:43:01 +01:00
Arthur Baars
c1f1efb16b
Merge pull request #62 from github/aibaars/update-grammar
...
Update tree-sitter grammar
2020-12-03 19:14:13 +01:00
Arthur Baars
22fd8908c5
Use private imports
...
No need to have everyting re-export the entire AST
2020-12-03 19:13:05 +01:00
Arthur Baars
582b00ef07
Fix warnings
2020-12-03 19:05:49 +01:00
Arthur Baars
dd3f94a3e2
Update tree-sitter grammar
2020-12-03 18:50:47 +01:00
Nick Rolfe
b0227a7ee1
Merge pull request #60 from github/aibaars/osx-gnutar
...
Workaround for broken cache on OSX
2020-12-03 16:10:10 +00:00
Arthur Baars
c69f64fb4f
Workaround for broken cache on OSX
2020-12-03 16:40:37 +01:00
Nick Rolfe
492f7d1987
Merge pull request #59 from github/bump_ts
...
Bump to latest tree-sitter-ruby revision
2020-12-02 20:04:12 +00:00
Nick Rolfe
d7c1231020
Bump to latest tree-sitter-ruby revision
2020-12-02 16:11:07 +00:00
Tom Hvitved
86a2cbc773
Merge pull request #58 from github/hvitved/pattern-get-a-variable
...
Add `Pattern::getAVariable()` and use `self` range field throughout
2020-12-02 12:57:52 +01:00
Tom Hvitved
9129e886b2
Update ql/src/codeql_ruby/ast/Parameter.qll
...
Co-authored-by: Arthur Baars <aibaars@github.com >
2020-12-02 12:07:13 +01:00
Tom Hvitved
77129e473a
Adhere to ::Range pattern
2020-12-02 11:27:00 +01:00
Tom Hvitved
b2483069e0
Add Pattern::getAVariable() and use self range field througout
2020-12-02 10:36:33 +01:00
Arthur Baars
59263650b1
Merge pull request #57 from github/hvitved/rename-generated-qll
...
Move `Generated.qll` to `ast/internal/TreeSitter.qll`
2020-12-02 10:32:38 +01:00
Tom Hvitved
a370cd8bdf
Move Generated.qll to ast/internal/TreeSitter.qll
2020-12-01 20:53:41 +01:00
Tom Hvitved
ba7a42328d
Merge pull request #56 from github/hvitved/parameter-get-a-variable
...
Introduce `Parameter::getAVariable()`
2020-12-01 18:32:34 +01:00
Tom Hvitved
d50f5cc785
Address review comments
2020-12-01 15:14:14 +01:00
Tom Hvitved
9820dcb363
Generate VariableAccesses also for defining accesses
2020-12-01 14:39:41 +01:00
Tom Hvitved
bde9f59e0e
Introduce Parameter::getAVariable()
2020-12-01 13:18:06 +01:00
Tom Hvitved
965b351cde
Merge pull request #54 from github/hvitved/ast-final
...
Mark more AST predicates as `final`
2020-12-01 12:38:28 +01:00
Tom Hvitved
311a0b6b20
Mark more AST predicates as final
2020-12-01 10:24:33 +01:00
Tom Hvitved
11927a930f
Merge pull request #53 from github/user-facing
...
Add some user-facing AST classes
2020-12-01 10:23:37 +01:00
Nick Rolfe
baf29ae56b
Add qldoc comment and isOptional predicate to KeywordParameter
2020-11-30 13:42:02 +00:00
Tom Hvitved
c0dd89122c
Handle parameters with overlapping names
2020-11-28 19:23:08 +01:00
Tom Hvitved
58baa33a3f
Various changes to user-facing library
...
- Remove `abstract` classes from public API.
- Align `Variable.qll` with rest of library.
- Introduce `Callable` class.
- Make `Pattern` class cover everything that can be on the LHS of an assignment
and in a pattern (except special parameters such as `**param`).
2020-11-27 17:07:03 +01:00
Tom Hvitved
59d45de118
Move AST files into ast folder
2020-11-27 14:45:15 +01:00
Tom Hvitved
00f3daabfe
Rename Variables.qll to Variable.qll
2020-11-27 14:39:20 +01:00
Nick Rolfe
38b401f04f
Fix import
2020-11-26 16:04:46 +00:00
Arthur Baars
f9c7ae78fe
Merge pull request #52 from github/aibaars/db-stats
...
Collect database stats
2020-11-26 17:03:34 +01:00
Nick Rolfe
399170fd58
Add getParent(Index) to user-facing AstNode
2020-11-26 15:33:50 +00:00
Arthur Baars
c7986442d0
Update ruby.dbscheme.stats
2020-11-26 15:07:13 +01:00
Arthur Baars
49c97bd157
Collect database stats
2020-11-26 14:53:30 +01:00
Nick Rolfe
c598dc6b5c
Initial work on user-facing AST library
2020-11-26 13:45:45 +00:00
Arthur Baars
2082171bdf
Merge pull request #51 from github/aibaars/cfg-scopes
...
CFG: add more CfgScopeRanges
2020-11-26 12:13:53 +01:00
Tom Hvitved
8632cbec71
CFG: Do not descend into nested scopes
2020-11-26 10:58:23 +01:00
Arthur Baars
30cb2cc3e0
CFG: add more CfgScopeRanges
2020-11-26 10:58:23 +01:00
Arthur Baars
e181666a37
Merge pull request #49 from github/aibaars/parent
...
Add parent ref and parent_index fields to all AstNodes
2020-11-25 18:25:03 +01:00
Arthur Baars
083672744e
Remove @file from @astnode
2020-11-25 17:37:58 +01:00
Arthur Baars
735aec9d34
Ensure top-level nodes have distinct parent_index values
2020-11-25 13:48:25 +01:00
Arthur Baars
00015b0022
Add #keyset[parent, parent_index]
2020-11-25 13:48:25 +01:00
Arthur Baars
89953fd87c
Add parent_index field to @astnode
2020-11-25 13:48:25 +01:00
Arthur Baars
b72db8b6f1
Add parent field to AstNode
2020-11-25 13:48:25 +01:00
Arthur Baars
c7b07b7821
Merge pull request #47 from github/aibaars/name-resolution
...
Name resolution: handle the different types of parameters better
2020-11-25 13:44:42 +01:00
Arthur Baars
64ebf5b909
Address comments
2020-11-25 12:55:53 +01:00
Arthur Baars
7a13e8549b
Merge pull request #50 from github/pin_ts_rev
...
Pin tree-sitter-ruby revision
2020-11-24 20:46:53 +01:00
Nick Rolfe
f612e05b34
Pin tree-sitter-ruby revision
2020-11-24 19:22:30 +00:00
Arthur Baars
bc5d7a3b74
Change modelling of Parameters
2020-11-24 19:22:40 +01:00
Arthur Baars
c745978ebb
Fix inconsistent variable references
2020-11-24 19:22:40 +01:00
Arthur Baars
290d3decc8
Add consistency query for Variables
...
Test that VariableAccess.getVariable returns a unique Variable
2020-11-24 19:19:15 +01:00
Tom Hvitved
0616040f3c
Merge pull request #48 from github/hvitved/ci-check-queries
...
Check query compilation and formatting in `qltest.yml`
2020-11-24 11:51:54 +01:00
Tom Hvitved
eceeb6a5fd
Break up QL CI tests into separatly named steps
2020-11-24 11:47:59 +01:00
Tom Hvitved
966e1cdcd0
Apply old formatter to make CI check pass
2020-11-24 11:26:47 +01:00
Tom Hvitved
74f0a8fdb7
Check query compilation and formatting in qltest.yml
2020-11-24 11:20:16 +01:00
Tom Hvitved
d5582f3f48
Merge pull request #46 from github/hvitved/unique-parent
...
Add `unique` wrapper to `AstNode::getParent()`
2020-11-23 16:16:02 +01:00
Tom Hvitved
8132c4cafb
Update generator/src/ql.rs
...
Co-authored-by: Arthur Baars <aibaars@github.com >
2020-11-23 16:12:31 +01:00
Tom Hvitved
d0257dda36
Add unique wrapper to AstNode::getParent()
2020-11-23 15:23:21 +01:00
Arthur Baars
41a76eeb01
Merge pull request #42 from github/aibaars/name-resolution
...
Local variable binding
2020-11-23 15:22:43 +01:00
Arthur Baars
3ea6cb40f8
Merge pull request #45 from github/hvitved/name-resolution-suggestions
...
Suggested changes to Variables.qll
2020-11-23 13:28:40 +01:00
Tom Hvitved
59624454d1
Suggested changes to Variables.qll
...
- Remove `abstract` predicates from public API.
- Cache core computations.
- Redefine `VariableScope::get[A]Variable` to only include variables declared
directly in the scope.
2020-11-23 10:33:34 +01:00
Arthur Baars
bc423000ca
Add variable to varaccess tests
2020-11-23 09:58:31 +01:00
Arthur Baars
49f1143133
Make Variable an IPA type and speed things up on large databases
2020-11-23 09:58:31 +01:00
Tom Hvitved
bb06c1ffeb
Various minor changes to Variables.qll
2020-11-23 09:58:31 +01:00
Arthur Baars
c16a2e77d8
Model local variables
2020-11-23 09:58:31 +01:00
Arthur Baars
6bd476ff30
Add AstNode::getParent
2020-11-23 09:58:31 +01:00
Nick Rolfe
10411ef49e
Merge pull request #43 from github/hvitved/unbreak-print-ast
...
Unbreak PrintAST query
2020-11-19 13:58:43 +00:00
Tom Hvitved
7716d53552
Unbreak PrintAST query
2020-11-19 14:48:14 +01:00
Tom Hvitved
100daacb94
Merge pull request #39 from github/hvitved/cfg-skeleton
...
Initial CFG skeleton code
2020-11-19 14:41:16 +01:00
Tom Hvitved
06a6a3feb0
Address review comments
2020-11-19 14:31:08 +01:00
Tom Hvitved
4626168969
CFG: Separate scope for method blocks
2020-11-19 09:29:15 +01:00
Tom Hvitved
4dd4373b53
Initial CFG skeleton code
2020-11-18 20:12:42 +01:00
Arthur Baars
f9c1bbd8f9
Merge pull request #41 from github/gitignore
...
Update .gitignore
2020-11-17 18:31:35 +01:00
Nick Rolfe
9d1eec8fe8
Update .gitignore
2020-11-17 16:45:10 +00:00
Nick Rolfe
12d4224e8e
Merge pull request #40 from github/refactor
...
Move all naming decisions to shared library
2020-11-17 11:19:18 +00:00
Nick Rolfe
1a9663ff7d
Replace single-branch match with if let
2020-11-16 18:43:54 +00:00
Nick Rolfe
68c97a2d13
Use .. to ignore fields
...
Co-authored-by: Arthur Baars <aibaars@github.com >
2020-11-16 18:41:18 +00:00
Nick Rolfe
ad61f7a0a6
Use references instead of owned strings in generator
2020-11-16 17:54:16 +00:00
Nick Rolfe
bbe7c70d34
more refactoring of names
2020-11-16 17:54:16 +00:00
Nick Rolfe
83a0e5fea6
Refactor to move naming decisions to shared library
2020-11-16 17:54:14 +00:00
Nick Rolfe
505d5c04d8
Merge pull request #31 from github/aibaars/drop-classes
...
Simplify generated QL classes
2020-11-16 14:16:02 +00:00
Arthur Baars
043c3fd2eb
Simplify generated QL classes
2020-11-13 12:59:22 +01:00
Arthur Baars
f57d20f5c6
Merge pull request #36 from github/readme-build-dbs
...
Add README instructions for building databases
2020-11-13 12:57:09 +01:00
Nick Rolfe
c16390fd05
Merge remote-tracking branch 'origin/main' into readme-build-dbs
2020-11-13 11:37:28 +00:00
Nick Rolfe
8d46151a10
Merge pull request #37 from github/aibaars-patch-1
...
Change cache key
2020-11-13 11:33:31 +00:00
Arthur Baars
5fe3bf138c
Change cache key
2020-11-12 19:11:04 +01:00
Arthur Baars
402c348e37
Merge pull request #33 from github/aibaars/qltest
...
Add QL test support
2020-11-12 15:10:39 +01:00
Nick Rolfe
0e1b54f061
Add instructions for building databases
2020-11-12 13:33:32 +00:00
Nick Rolfe
bb1d6f3bb8
Merge pull request #34 from github/aibaars/osx-fmt
...
Remove cargo fmt workaround on OSX
2020-11-12 13:03:41 +00:00
Nick Rolfe
056879eb97
Merge pull request #35 from github/aibaars/cargo-update
...
Run: cargo update
2020-11-12 10:34:50 +00:00
Arthur Baars
8d1ed4bf89
Run: cargo update
...
This pulls in improvements to the tree-sitter-ruby repository.
2020-11-12 10:25:40 +01:00
Arthur Baars
557d990a0d
Remove cargo fmt workaround on OSX
...
The `fmt` component is now installed by default on OSX.
2020-11-12 09:29:26 +01:00
Arthur Baars
44150600ab
Add QLTest workflow
2020-11-11 21:57:50 +01:00
Arthur Baars
080c56c9eb
Add QL test support
2020-11-11 16:32:44 +01:00
Arthur Baars
db35abdf17
Merge pull request #32 from github/getFileBySourceArchiveName
...
Replace getEncodedFile with getFileBySourceArchiveName predicate
2020-11-11 13:46:10 +01:00
Nick Rolfe
5771e4790e
Replace getEncodedFile with getFileBySourceArchiveName predicate
...
While also making it work with paths for databases created on Windows.
2020-11-10 16:50:10 +00:00
Arthur Baars
5f1e373355
Merge pull request #30 from github/string_contents
...
Get latest fixes from tree-sitter-ruby repo
2020-11-09 15:05:50 +01:00
Arthur Baars
81ceb22b14
Restore cache before running cargo fmt
...
It appears cargo fmt also downloads the git dependencies which takes quite a while. The cache should contain a copy of the cloned repo, so restoring the cache early should speed things up.
2020-11-09 14:25:54 +01:00
Nick Rolfe
6f72ba106e
Get latest fixes from tree-sitter-ruby repo
2020-11-06 17:15:22 +00:00
Nick Rolfe
aec99746d6
Merge pull request #29 from github/aibaars/dedup
...
Deduplicate and sort union members
2020-11-05 18:00:07 +00:00
Arthur Baars
222af90790
Deduplicate and sort union members
2020-11-05 18:50:12 +01:00
Arthur Baars
f514655231
Merge pull request #28 from github/token_classes
...
Add classes for token kinds
2020-11-05 17:27:22 +01:00
Nick Rolfe
510621f018
Don't add 'Token' prefix to token subclass names
2020-11-05 16:21:33 +00:00
Nick Rolfe
4bda204118
Add classes for token kinds
2020-11-05 13:06:46 +00:00
Arthur Baars
296d4d0f47
Merge pull request #26 from github/aibaars/tokens
...
Store tokens into separate table
2020-11-05 14:03:26 +01:00
Arthur Baars
c565f323f6
Don't register extra tokens as children of the parent node
2020-11-05 12:53:58 +01:00
Arthur Baars
180df8a63d
Make classes non-abstract
2020-11-04 18:18:45 +01:00
Nick Rolfe
69b1d7c0dc
Make union-wrapping classes abstract to fix results for toString/describeQlClass
2020-11-04 16:01:51 +00:00
Arthur Baars
86aa05e3cb
Address comments
2020-11-04 14:49:47 +01:00
Arthur Baars
c3e8d85f0b
Tolerate tokens containing invalid UTF-8
2020-11-04 14:46:31 +01:00
Arthur Baars
8056186c3c
Hide disconnected tokens
2020-11-04 13:35:24 +01:00
Arthur Baars
96423d2e8e
Remove describeQlClass from union types
...
The descriptions of the underlying types are more interesting.
2020-11-04 13:35:24 +01:00
Arthur Baars
053c9f60a4
Store tokens in a separate table
2020-11-04 13:35:24 +01:00
Nick Rolfe
9e49991859
Merge pull request #27 from github/extractor-pack-script
...
Add scripts to create extractor pack locally
2020-11-04 12:20:45 +00:00
Nick Rolfe
b16588f058
Add powershell script to create extractor pack locally
2020-11-04 12:09:52 +00:00
Nick Rolfe
a83ac24652
Add bash script to create extractor pack locally
2020-11-04 11:59:17 +00:00
Arthur Baars
b92d789598
Merge pull request #25 from github/printAST
...
Implement basic `printAst` query
2020-11-03 19:13:44 +01:00
Nick Rolfe
41dcb19cd5
Implement basic printAst query
2020-11-03 13:47:54 +00:00
Arthur Baars
65c1f2c359
Merge pull request #20 from github/aibaars/extract-extra
...
Extract 'extra' nodes and their subtrees
2020-11-03 13:45:33 +01:00
Arthur Baars
d7e9178cda
Merge pull request #24 from github/gzip
...
Add buffered writing and gzip compression for trap files
2020-11-03 13:45:19 +01:00
Arthur Baars
bfc05539ec
Update library and dbscheme
2020-11-03 10:07:05 +01:00
Arthur Baars
25205a09a3
Update tree-sitter-ruby
2020-11-03 10:06:59 +01:00
Arthur Baars
dc3459de8e
Extract 'extra' nodes and their subtrees
2020-11-03 10:03:11 +01:00
Nick Rolfe
27c3c88b3c
Add buffered writing and gzip compression for trap files
2020-11-02 16:14:19 +00:00
Arthur Baars
0156de12ea
Merge pull request #22 from github/aibaars/trapwriter
...
Add a TrapWriter
2020-11-02 15:00:38 +01:00
Arthur Baars
0ccd97639b
Address comments
2020-11-02 13:30:46 +01:00
Arthur Baars
0ecab93d09
Merge pull request #23 from github/aibaars/locations-lib
...
Add Locations.qll and import FileSystem and Locations libraries in generated AST
2020-11-02 13:08:15 +01:00
Arthur Baars
f94b5ae412
Update QL code generator
2020-10-31 14:03:26 +01:00
Arthur Baars
1b502c161e
Add Locations library and move language independent files to 'codeql'
2020-10-31 11:51:01 +01:00
Arthur Baars
63ca8212f6
Limit string sizes to 1MB
2020-10-31 11:36:01 +01:00
Arthur Baars
f265ccef59
TrapWriter: add global ID caching and populate folders
2020-10-31 11:35:57 +01:00
Arthur Baars
0de8b0c069
Add TrapWriter::comment
2020-10-31 11:35:22 +01:00
Arthur Baars
748dee64ae
Escape label keys
2020-10-31 11:35:22 +01:00
Arthur Baars
57842e8a87
Add TrapWriter
2020-10-31 11:35:16 +01:00
Nick Rolfe
83667ab89a
Merge pull request #19 from github/locations
...
Fix location handling to match common db schema requirements
2020-10-30 16:56:34 +00:00
Arthur Baars
c2c197dba5
Merge pull request #21 from github/aibaars/files-qll
...
Basic FileSystem.qll
2020-10-30 17:50:54 +01:00
Nick Rolfe
075c72e6ef
Iterate through path components to 'normalize' paths on windows
2020-10-30 15:26:46 +00:00
Arthur Baars
3e12aa457f
Basic FileSystem.qll
2020-10-30 15:40:29 +01:00
Nick Rolfe
e73500ef7c
Cope with empty filenames/extensions
2020-10-30 14:38:24 +00:00
Nick Rolfe
0a754334cf
Don't generate the QL File class
2020-10-30 13:41:27 +00:00
Nick Rolfe
35cb379db7
Fix name of table for locations
2020-10-30 13:24:16 +00:00
Nick Rolfe
a54f923a73
Normalize the absolute path in the files table
2020-10-30 13:22:58 +00:00
Nick Rolfe
4b8bbd101c
Give locations full ids matching the common spec
2020-10-30 13:06:21 +00:00
Nick Rolfe
79d15051be
Fix full ids for files to match common spec
2020-10-30 12:45:23 +00:00
Nick Rolfe
7f03206b52
Use a key id for file entities
2020-10-30 11:29:04 +00:00
Nick Rolfe
826b4571a0
Canonicalize source file paths in main
2020-10-30 11:21:51 +00:00
Nick Rolfe
d47bd32b58
Now that we also generate conjunctions, use parentheses in disjunctions
2020-10-30 10:34:42 +00:00
Nick Rolfe
f198dc530f
Use fromSource = 1
...
Co-authored-by: Arthur Baars <aibaars@github.com >
2020-10-30 10:25:09 +00:00
Nick Rolfe
2232700428
Correct comment
...
Co-authored-by: Arthur Baars <aibaars@github.com >
2020-10-30 10:24:24 +00:00
Nick Rolfe
4d5d80c749
Fix location handling to match common db schema requirements
2020-10-29 19:44:16 +00:00
Nick Rolfe
556507cec7
Merge pull request #18 from github/optional_fields
...
Don't generate an index for optional fields that occur at most once
2020-10-29 15:35:27 +00:00
Nick Rolfe
547d12ca58
Add more info to error message
2020-10-29 15:13:04 +00:00
Nick Rolfe
11c9c18de4
Don't generate an index for optional fields that occur at most once
2020-10-29 13:04:26 +00:00
Arthur Baars
fbb075b477
Merge pull request #17 from github/aibaars/locations-2
...
TRAP locations: always fix-up empty ranges
2020-10-29 12:15:52 +01:00
Arthur Baars
3350d9d3d4
TRAP locations: always fix-up empty ranges
2020-10-29 10:45:07 +01:00
Arthur Baars
ca91e15a4b
Merge pull request #16 from github/aibaars/locations
...
Fix locations in the
2020-10-28 18:09:58 +01:00
Arthur Baars
4c04b8bb15
Add comment
2020-10-28 17:40:01 +01:00
Arthur Baars
d2f42552f6
Adjust source locations
...
Tree-sitter row and column numbers are 0-based while CodeQL expects 1-based.
In addition tree-sitter location ranges end-points are exclusive while
CodeQL's ranges are inclusive.
2020-10-28 17:30:03 +01:00
Nick Rolfe
743eca7992
Merge pull request #15 from github/aibaars/ql-folder
...
Add QL folder structure
2020-10-28 13:11:50 +00:00
Arthur Baars
638fd91e50
Update generator to write the ast.qll file directly into ql/src
2020-10-28 14:04:36 +01:00
Arthur Baars
28a99cfe83
Update path of generated dbscheme
2020-10-28 14:04:36 +01:00
Arthur Baars
88acbc883c
Copy dbscheme stats into extractor pack
2020-10-28 14:04:36 +01:00
Arthur Baars
030d957535
Update stats with values measured on bunch of ruby databases
2020-10-28 14:04:36 +01:00
Arthur Baars
5d3f2de685
Add dbscheme to QL folder
2020-10-28 14:04:36 +01:00
Arthur Baars
2e102b8cdf
Add folder structure for QL code
2020-10-28 14:04:36 +01:00
Arthur Baars
553e1ab465
Merge pull request #13 from github/aibaars/improve-workflow
...
Check formatting and cache builds
2020-10-28 14:04:05 +01:00
Arthur Baars
7e6c30b121
Check formatting and cache builds
2020-10-28 13:55:52 +01:00
Nick Rolfe
29899485c7
Merge pull request #11 from github/ql_gen
...
Generate QL classes
2020-10-28 12:25:53 +00:00
Nick Rolfe
e03d5da8cd
Rename a field to avoid using raw identifiers
2020-10-28 12:14:54 +00:00
Nick Rolfe
f4b9c0c71a
Merge remote-tracking branch 'origin/main' into ql_gen
2020-10-28 11:41:18 +00:00
Nick Rolfe
24b4586ddd
Merge pull request #14 from github/aibaars/remove-storage-index
...
Extractor: fix child index values
2020-10-28 11:37:38 +00:00
Nick Rolfe
11152583d5
Add get_name() method to simplify logic in field handling
2020-10-28 11:30:50 +00:00
Nick Rolfe
53de99e6af
Regenerate QL with fix to Top::getAFieldOrChild
2020-10-28 11:22:21 +00:00
Nick Rolfe
7b51030dd4
Merge remote-tracking branch 'origin/ql_gen' into ql_gen
2020-10-28 11:20:58 +00:00
Nick Rolfe
b4f9599dd9
Simplify hashmap insertion
2020-10-28 11:20:47 +00:00
Nick Rolfe
679ca6d0f1
Update Actions workflow to generate ruby_ast.qll
2020-10-28 11:04:09 +00:00
Nick Rolfe
17820e017c
Fix Top::getAFieldOrChild() so it doesn't take an index arg
...
Co-authored-by: Arthur Baars <aibaars@github.com >
2020-10-28 11:02:42 +00:00
Nick Rolfe
bc22631c32
Simplify QL model following review feedback
2020-10-28 11:00:40 +00:00
Nick Rolfe
77fdafdc95
Simplify error handling with if let
2020-10-28 10:35:33 +00:00
Nick Rolfe
59580d51bb
Merge remote-tracking branch 'origin/main' into ql_gen
2020-10-28 10:30:36 +00:00
Arthur Baars
fe1d8ec15f
Extractor: fix child index values
2020-10-27 22:32:53 +01:00
Arthur Baars
0c15783f2b
Merge pull request #12 from github/crates-language
...
Use tree-sitter-ruby crate instead of vendoring it
2020-10-27 20:53:48 +01:00
Nick Rolfe
a41c3e36f9
Give node_types a static lifetime.
2020-10-27 19:11:05 +00:00
Nick Rolfe
5484ff3dcf
Use tree_sitter_ruby crate in generator
2020-10-27 18:13:40 +00:00
Douglas Creager
2663de86fb
Don't clone submodules in Actions workflow
...
Since we don't have any submodules anymore!
2020-10-27 14:02:15 -04:00
Nick Rolfe
ce8de3feba
Update generator binary name in Actions workflow
2020-10-27 17:56:37 +00:00
Douglas Creager
5f985be2d9
Use tree-sitter-ruby crate instead of vendoring it
2020-10-27 13:54:56 -04:00
Nick Rolfe
e05bcf9fb7
Generate QL classes
2020-10-27 17:46:11 +00:00
Arthur Baars
3e1c378aba
Merge pull request #8 from github/aibaars/actions
...
Improve extractor build and add GitHub Actions configuration
2020-10-27 18:21:20 +01:00
Arthur Baars
4b46a75c24
Merge pull request #10 from github/github/aibaars/escape-uppercase
...
DB scheme: convert uppercase to lowercase + underscore
2020-10-27 18:21:00 +01:00
Arthur Baars
bb2e7d841f
DB scheme: convert uppercase to lowercase + underscore
2020-10-27 18:15:48 +01:00
Arthur Baars
53b97ff0fa
Use release builds for the CodeQL package
2020-10-27 17:48:11 +01:00
Arthur Baars
bdff1fe9f4
Merge pull request #9 from github/aibaars/escape-column-names
...
DB scheme generator: escape column names
2020-10-27 17:44:39 +01:00
Arthur Baars
e3a1d426b8
DB scheme generator: escape column names
2020-10-27 17:31:10 +01:00
Arthur Baars
9e6ccf558e
Preserve permissions of Linux and OSX binaries
...
The {upload,download}-artifact actions do not preserve
file permissions, so we need to patch things up.
2020-10-27 17:17:44 +01:00
Arthur Baars
048f19edc1
Build a CodeQL extractor pack
2020-10-27 17:02:08 +01:00
Arthur Baars
73a090501a
Add GitHub actions configuration
2020-10-27 16:34:17 +01:00
Arthur Baars
7555141246
Extractor: include contents node-types.json as constant
2020-10-27 16:34:17 +01:00
Arthur Baars
74dd4dcc2c
Build parser.c and scanner.cc separately
2020-10-27 16:34:17 +01:00
Arthur Baars
74e9829609
Merge pull request #7 from github/aibaars/refactor
...
Refactor dbscheme generator to use intermediate representation
2020-10-27 14:12:05 +01:00
Arthur Baars
1fd6fdd652
Address review comment from earlier pull-request
2020-10-27 13:43:59 +01:00
Arthur Baars
a50f79b401
Add logging to dbscheme generator
2020-10-27 13:36:58 +01:00
Arthur Baars
0439d4f674
Refactor dbscheme generator to use intermediate representation
...
* merge extractor/node_types.rs into node-types/lib.rs
* use intermediate representation in dbscheme generator
* move dbscheme naming and escaping functions to node-types so they can be shared
2020-10-27 13:27:45 +01:00
Arthur Baars
4c1682ef2e
Merge pull request #5 from github/aibaars/logger
...
Add logging based on the tracing library
2020-10-27 13:24:34 +01:00
Nick Rolfe
63282eac60
Merge pull request #6 from github/windows_paths
...
Handle Windows path prefixes
2020-10-27 12:20:54 +00:00
Nick Rolfe
c02b735eec
Handle Windows path prefixes
2020-10-27 12:09:46 +00:00
Arthur Baars
52035ef672
Add tracing logger
2020-10-27 11:29:21 +01:00
Arthur Baars
9c534209f7
Add tracing:0.1
2020-10-27 11:26:35 +01:00
Arthur Baars
467e32ade4
Merge pull request #2 from github/aibaars/extractor-rust
...
Rewrite extractor in rust
2020-10-27 10:16:58 +01:00
Arthur Baars
0f576fe29a
Address review comments
2020-10-26 19:10:44 +01:00
Arthur Baars
1d36b5085a
Do not recurse into 'extra' nodes for now
2020-10-26 18:39:10 +01:00
Arthur Baars
fd39524c5e
Improve error messages
...
Include file path and line number and emit better descriptions
2020-10-26 18:37:29 +01:00
Arthur Baars
47ccc33ab3
Initial version of extractor based on tree-sitter grammar
2020-10-24 13:22:39 +02:00
Arthur Baars
d00c956028
Build with clang for non-windows platforms
2020-10-24 13:22:39 +02:00
Arthur Baars
f6292e437e
Merge pull request #4 from github/shared_lib
...
Add library package for shared code
2020-10-23 14:18:42 +02:00
Nick Rolfe
849e109583
Add library package for shared code
2020-10-23 13:01:17 +01:00
Arthur Baars
305fd566a8
Merge pull request #3 from github/aibaars/codeql-extractor-yaml
...
Basic CodeQL extractor configuration and autobuild scripts
2020-10-22 22:23:44 +02:00
Arthur Baars
e16b85e511
Add codeql-extractor config
2020-10-22 18:30:57 +02:00
Nick Rolfe
12571dbe42
Merge pull request #1 from github/dbscheme
...
Basic dbscheme generation from `node-types.json`
2020-10-22 12:29:44 +01:00
Nick Rolfe
36823d7804
Move deserialization to node_types module; propagate errors to caller
2020-10-22 11:10:05 +01:00
Nick Rolfe
e018f3f20b
Use if let instead of iterating over Option
2020-10-21 12:51:10 +01:00
Nick Rolfe
5e3544fcc3
Use fmt::Display trait for writing dbscheme
2020-10-21 12:45:54 +01:00
Nick Rolfe
a7a18b8b0f
Gather all hard-coded Ruby-specific names/paths in one struct.
2020-10-21 11:29:25 +01:00
Nick Rolfe
47c8a3d6fb
Simplify to std::io::Result
2020-10-21 11:26:23 +01:00
Nick Rolfe
fd1f8b22e2
Simplify keysets to Option<Vec<String>>
2020-10-21 11:06:53 +01:00
Nick Rolfe
97181d1c21
Basic dbscheme generation from node-types.json
2020-10-20 17:49:55 +01:00
Nick Rolfe
735fde7a22
Add README
2020-10-15 13:26:13 +01:00
Nick Rolfe
a837c65bc4
Add VSCode build task for cargo build
2020-10-15 13:21:12 +01:00
Nick Rolfe
ffbb57a8e2
Make VSCode default to unix line endings
2020-10-15 13:20:37 +01:00
Nick Rolfe
6c697bf9b5
Split into generator and extractor packages
2020-10-15 13:20:11 +01:00
Nick Rolfe
b677a91fea
Add VSCode workspace
2020-10-14 11:16:28 +01:00
Nick Rolfe
89959b2e0d
Add tree-sitter-ruby submodule
2020-10-14 11:15:59 +01:00
Nick Rolfe
d3ccb49273
Initial commit: cargo-generated boilerplate
2020-10-13 18:42:13 +01:00