Aditya Sharad
28329562a7
Merge rc/1.18 into master.
2018-09-25 14:31:45 +01:00
Jonas Jensen
8f19efe2e8
Merge pull request #211 from raulgarciamsft/users/raulga/HESULT
...
Cast between semantically different integer types: HRESULT to/from bool
2018-09-25 09:01:35 +02:00
Sauyon Lee
614a8ef091
Allow void* pointer arithmetic with sizeof
...
Technically this isn't allowed by the C spec, but it's been seen in the wild:
see 3763c7b338/files/src/csp_buffer.c \#x1d04047d2bb68c21:1
2018-09-24 11:05:40 -07:00
Raul Garcia
a566ffae4a
Fixed the test .expected file
2018-09-24 10:18:39 -07:00
Pavel Avgustinov
fa698380e2
C++ definitions: Ignore type mentions of class inatantiations.
...
We currently erroneously keep mentions of class instantiations, which
can lead to bad performance on template-heavy code bases. We never
want to link those anyway, so we can simply suppress them.
2018-09-24 18:18:30 +01:00
Raul Garcia
c75019726c
Removing tabs & reformatting
2018-09-24 10:10:58 -07:00
Raul Garcia
c3b523cdc4
Fixing a missed reference to renamed file.
2018-09-24 10:02:52 -07:00
Geoffrey White
4edc54df0c
CPP: Use unspecified types everywhere (for simplicity and robustness).
2018-09-24 17:17:41 +01:00
Geoffrey White
b15db5d1e5
CPP: Add a test case that we handle poorly.
2018-09-24 17:17:41 +01:00
Jonas Jensen
a56376a2df
C++: rename effectivelyConstant to likelySmall
...
This reflects the existing QLDoc better and makes it more clear why it
includes char-typed expressions.
2018-09-24 14:37:11 +02:00
Jonas Jensen
4d2e4c53f1
C++: Suppress IntMultToLong alert on char
2018-09-24 14:37:09 +02:00
Jonas Jensen
2b5d150829
C++: Test for IntMultToLong on char-typed numbers
2018-09-24 14:36:36 +02:00
Dave Bartolomeo
1f36f5552f
Normalize all text files to LF
...
Use `* text=auto eol=lf`
2018-09-23 16:24:31 -07:00
Dave Bartolomeo
26abf5d4a2
Force LF for basically everything.
2018-09-23 16:24:31 -07:00
Dave Bartolomeo
aa267c8302
C++: Force LF for .c,.cpp,.h,.hpp
2018-09-23 16:23:52 -07:00
Jonas Jensen
caf4a767ad
Merge pull request #219 from geoffw0/resource-not-released
...
C++: Exclude placement new from AV Rule 79.ql
2018-09-22 17:41:36 +02:00
Raul Garcia
242ee10806
Major change in order to support the rule for C as well as cpp
2018-09-21 16:47:31 -07:00
Raul Garcia
925c3b51f9
Adding semmle-extractor-options: --microsoft to test
2018-09-21 15:21:07 -07:00
Raul Garcia
8519f1a9e1
Fixing tabs replaced to spaces
2018-09-21 13:07:39 -07:00
Geoffrey White
3922082e7d
CPP: Tidy and simplify AV Rule 79.ql.
2018-09-21 19:35:23 +01:00
Raul Garcia
75ef377ac1
Replace Unicode apostrophe with ANSI single quote
2018-09-21 11:34:22 -07:00
Raul Garcia
94f752c59c
Merge branch 'users/raulga/HESULT' of https://github.com/raulgarciamsft/ql into users/raulga/HESULT
2018-09-21 11:14:49 -07:00
Raul Garcia
783be15a45
Fixing typos & ID.
...
NOTE: There is an ongoing discussion on the proper CWE we should use
2018-09-21 11:14:14 -07:00
Geoffrey White
d5a48ad63e
CPP: Additional test cases.
2018-09-21 15:55:29 +01:00
Geoffrey White
84f9900c8c
CPP: Exclude placement new.
2018-09-21 10:53:42 +01:00
Geoffrey White
c7aa5c169b
CPP: Add a test of placement new for AV Rule 79.ql.
2018-09-21 10:47:00 +01:00
Jonas Jensen
e2a17e9740
Merge remote-tracking branch 'upstream/rc/1.18' into mergeback-20180921_104253
2018-09-21 10:45:54 +02:00
Raul Garcia
5ccc1a32aa
Merge branch 'master' into master
2018-09-20 16:30:48 -07:00
Raul Garcia
48c99fb1d1
Setting a SECURITY_DESCRIPTOR’s DACL to NULL
...
Closing the gap between Semmle & PreFAST
This rule is equivalent to C6248
2018-09-20 16:28:37 -07:00
Raul Garcia
64b8a5ba01
Merge branch 'master' into users/raulga/HESULT
2018-09-20 16:20:26 -07:00
Raul Garcia
b0ec929aad
Cast between semantically different integer types: HRESULT to/from a Boolean type.
...
Closing the gap between Semmle and PreFast.
Covers C6214, C6215, C6216, C6217, C6230
2018-09-20 16:16:32 -07:00
Robert Marsh
e2d24a2743
C++: fix comment
2018-09-20 13:07:36 -07:00
Robert Marsh
9011e1381b
C++: handle conversions in IR to AST translation
2018-09-20 12:56:43 -07:00
Robert Marsh
cc97cf9297
C++: add isReachableFromFunctionEntry
2018-09-20 10:06:19 -07:00
Robert Marsh
4c94144089
C++: remove abstract classes in IR
2018-09-20 10:06:18 -07:00
Robert Marsh
755e21d355
C++: improve conversion handling in IRGuards.qll
2018-09-20 10:06:18 -07:00
Robert Marsh
e40ce91e7e
C++: document new IR class and predicates
2018-09-20 10:06:18 -07:00
Robert Marsh
d6cea1b203
C++: Add class and predicates to other IR stages
2018-09-20 10:06:17 -07:00
Robert Marsh
b5cd48d819
C++: comments on new classes and predicates
2018-09-20 10:06:17 -07:00
Robert Marsh
0273b20743
C++: make internal classes private
2018-09-20 10:06:17 -07:00
Robert Marsh
ad8f30d2f7
C++: accept test output and add IR guards tests
2018-09-20 10:06:17 -07:00
Robert Marsh
d7e630b3c6
C++: Add IR-based port of Guards library
...
For ease of reviewing, I've checked in the .expected files from the
AST-based guards library. The next commit accepts output for these tests
and adds tests that use getAST rather than the translation layer.
2018-09-20 10:06:16 -07:00
Robert Marsh
4e1a37cd6e
C++: add isStrict to RelationalInstruction
2018-09-20 10:06:16 -07:00
Robert Marsh
27a83e65b2
C++: add RelationalOpcode and RelationalInstruction
2018-09-20 10:06:16 -07:00
Robert Marsh
69962bd06c
Merge pull request #203 from dave-bartolomeo/dave/GVN
...
C++: Initial attempt at IR-based value numbering
2018-09-20 10:00:45 -07:00
Dave Bartolomeo
5a25602c28
C++: Move GVN out of "internal" directory
2018-09-20 08:21:15 -07:00
Dave Bartolomeo
27cee9bd80
C++: Handle inheritance conversions in IR GVN
2018-09-20 08:00:38 -07:00
Dave Bartolomeo
bd156757d3
C++: Remove accidental add of IR.md
2018-09-19 14:26:17 -07:00
ian-semmle
4b0ab602e7
Merge pull request #202 from jbj/resolveClass-conservative
...
C++: more conservative resolveClass
2018-09-19 11:35:45 +01:00
Nick Rolfe
017e3a390f
C++: stats for is_standard_layout_class
2018-09-19 10:26:11 +01:00