Commit Graph

41418 Commits

Author SHA1 Message Date
Rasmus Wriedt Larsen
b895641a83 Merge pull request #4464 from tausbn/python-remove-dataflowcfgnode
Python: Get rid of `DataFlowCfgNode`
2020-10-13 15:08:28 +02:00
Rasmus Wriedt Larsen
76c9b8c49f Python: Expose importNode instead of importModule/importMember
Since predicate name `import` is not allowed, I adopted `importNode` as it sort
of matches what `exprNode` does.

---

Due to only using `importMember` in `os_attr` we previously didn't handle
`import os.path as alias` :|

I did creat a hotfix for this (https://github.com/github/codeql/pull/4446), but
in doing so I realized the core of the problem: We're exposing ourselves to
making these kinds of mistakes by having BOTH importModule and importMember, and
we don't really gain anything from doing this!

We do loose the ability to easily only modeling `from mod import val` and not
`import mod.val`, but I don't think that will ever be relevant.

This change will also make us to recognize some invalid code, for example in

    import os.system as runtime_error

we would now model that `runtime_error` is a reference to the `os.system`
function (although the actual import would result in a runtime error).

Overall these are tradeoffs I'm willing to make, as it does makes things simpler
from a QL modeling point of view, and THAT sounds nice 👍
2020-10-13 15:03:22 +02:00
Tamas Vajk
ce9624e61d C#: Remove unneeded vscode settings from settings.json 2020-10-13 14:50:46 +02:00
Rasmus Wriedt Larsen
4bfd55f1af Python: Show problem with os.path modeling
This is not a very good test for showing that we don't handle direct imports,
but it was the best I had available without inventing something new. It's very
fragile, since any of these would propagate taint (due to handling all `join`
calls as if the qualifier was a string):

    ospath_alias.join(ts)
    ospath_alias.join(ts, "foo", "bar")

But this test DOES serve the purpose of illustrating that my fix works :D
2020-10-13 14:50:00 +02:00
Tamas Vajk
ce793c357f C#: Adjust parameters of DefinitionField ctor 2020-10-13 14:45:38 +02:00
Tamas Vajk
ea53ea0994 C#: Prefer keywords over type names 2020-10-13 14:45:38 +02:00
Tamas Vajk
8afac25120 C#: Add params modifier on override 2020-10-13 14:45:38 +02:00
Tamas Vajk
63e173198d C#: Make static member on generic class private 2020-10-13 14:45:38 +02:00
Tamas Vajk
6cf20d569d C#: Remove overrides that do nothing 2020-10-13 14:45:38 +02:00
Tamas Vajk
9b349eb844 C#: Use Contains instead of IndexOf 2020-10-13 14:45:38 +02:00
Tamas Vajk
5b33f43b78 C#: Use nameof 2020-10-13 14:45:38 +02:00
Tamas Vajk
f84669904b C#: Fix typo 2020-10-13 14:45:38 +02:00
Tamas Vajk
7075c6f8ca C#: Fix public property naming 2020-10-13 14:45:38 +02:00
Tamas Vajk
a4fec39c11 C#: Move fields to locals where possible 2020-10-13 14:45:38 +02:00
Tamas Vajk
b07aceff6b C#: Fix exception throwing 2020-10-13 14:45:37 +02:00
Tamas Vajk
6dfe90e479 C#: Change array-returning properties 2020-10-13 14:45:37 +02:00
Tamas Vajk
7721c7bba7 C#: Remove redundant conditions 2020-10-13 14:45:37 +02:00
Tamas Vajk
cbdd13127e C#: Convert publicly visible fields to properties 2020-10-13 14:45:37 +02:00
Tamas Vajk
d5382f2cfd C#: Fix modifier orders 2020-10-13 14:45:37 +02:00
Tamas Vajk
fbc128fcc7 C#: Fix type parameter names 2020-10-13 14:45:37 +02:00
Tamas Vajk
2e350caf9f C#: Fix private field and local variable naming 2020-10-13 14:45:37 +02:00
Tamas Vajk
ecb29a267b C#: Add editor config naming rules 2020-10-13 14:45:37 +02:00
Tamas Vajk
baf6f59bfc C#: Add braces to multiline block statements 2020-10-13 14:45:37 +02:00
Tamas Vajk
28694513a1 C#: Use pattern matching 2020-10-13 14:45:37 +02:00
Tamas Vajk
155453d9cb C#: Format single line if statements 2020-10-13 14:45:37 +02:00
Tamas Vajk
aec4481cfb C#: Use var everywhere 2020-10-13 14:45:37 +02:00
Tamas Vajk
7d544e34af C#: Add declaration visibility modifiers 2020-10-13 14:45:37 +02:00
Tamas Vajk
466e0cf085 C#: Remove naming styles from editor config, add IDE diagnostic severities 2020-10-13 13:27:46 +02:00
Tamas Vajk
ec6ed90c49 C#: Add final new line to files 2020-10-13 13:27:46 +02:00
Tamas Vajk
2e21564032 C#: Fix formatting with 'dotnet format' 2020-10-13 13:27:46 +02:00
Tamas Vajk
7f86768a49 C#: Reformat LINQ extension method call-chains 2020-10-13 13:27:46 +02:00
Tamas Vajk
115a216ea9 C#: Format nested ternary operators 2020-10-13 13:27:46 +02:00
Tamas Vajk
c38bf5ee5b C#: Reduce nesting and fix some formatting 2020-10-13 13:27:46 +02:00
Tamas Vajk
e73ced2275 C#: Add sealed modifier to classes to fix dispose-pattern, remove explicit IDisposable implementations 2020-10-13 13:27:46 +02:00
Tamas Vajk
397be7e98f C#: Change constructor visibility to protected in abstract classes 2020-10-13 13:27:46 +02:00
Tamas Vajk
71faa51270 C#: Dispose IDisposables 2020-10-13 13:27:46 +02:00
Tamas Vajk
e208f3d21d C#: Simplify null checks with pattern matching, ??, and ?: 2020-10-13 13:27:46 +02:00
Tamas Vajk
504f56adeb C#: Simplify object initialization 2020-10-13 13:27:46 +02:00
Tamas Vajk
b793af571e C#: Remove unnecessary usings 2020-10-13 13:27:45 +02:00
Tamas Vajk
ec63acfb0c C#: Inline out variable declarations 2020-10-13 13:27:45 +02:00
Tamas Vajk
f2e6b42aa4 C#: Add type parameter in/out 2020-10-13 13:27:45 +02:00
Tamas Vajk
33672a4058 C#: Simplify using statements 2020-10-13 13:27:45 +02:00
Tamas Vajk
412b87c5c7 C#: Fix loop that iterates only once 2020-10-13 13:27:45 +02:00
Tamas Vajk
79eff06828 C#: Remove unused out argument 2020-10-13 13:27:45 +02:00
Tamas Vajk
921d3eeaec C#: Mark members static (remove unused members) 2020-10-13 13:27:45 +02:00
Tamas Vajk
68a45e7e9d C: Remove unused fields 2020-10-13 13:27:45 +02:00
Tamas Vajk
0c9aaa3dce C#: Remove unused parameters 2020-10-13 13:27:45 +02:00
Tamas Vajk
93c6d5ea58 C#: Fix empty array creation 2020-10-13 13:27:45 +02:00
Tamas Vajk
2d3985742f C#: Fix length/emptiness checks 2020-10-13 13:27:45 +02:00
Rasmus Lerchedahl Petersen
b7e8b48e9e Python: Move concept tests out
These tests should be fleshed out at some point, but currently
they test all that we model.
2020-10-13 13:06:47 +02:00