Skip to content

Commit 1a07f21

Browse files
authored
Merge pull request github#2436 from felicitymay/1.23/SD-4095-finalize-change-notes-java
1.23: SD-4095 finalize change notes for Java
2 parents 1d26d4c + 49bdf7e commit 1a07f21

File tree

1 file changed

+12
-14
lines changed

1 file changed

+12
-14
lines changed

change-notes/1.23/analysis-java.md

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -6,25 +6,23 @@ The following changes in version 1.23 affect Java analysis in all applications.
66

77
| **Query** | **Tags** | **Purpose** |
88
|-----------------------------|-----------|--------------------------------------------------------------------|
9-
| Continue statement that does not continue (`java/continue-in-false-loop`) | correctness | Finds `continue` statements in `do { ... } while (false)` loops. |
9+
| Continue statement that does not continue (`java/continue-in-false-loop`) | correctness | Finds `continue` statements in `do { ... } while (false)` loops. Results are shown on LGTM by default. |
1010

1111
## Changes to existing queries
1212

1313
| **Query** | **Expected impact** | **Change** |
1414
|------------------------------|------------------------|-----------------------------------|
15-
| Dereferenced variable may be null (`java/dereferenced-value-may-be-null`) | Fewer false positives | Certain indirect null guards involving two auxiliary variables known to be equal can now be detected. |
16-
| Non-synchronized override of synchronized method (`java/non-sync-override`) | Fewer false positives | Results are now only reported if the immediately overridden method is synchronized. |
17-
| Query built from user-controlled sources (`java/sql-injection`) | More results | The query now identifies arguments to `Statement.executeLargeUpdate` and `Connection.prepareCall` as SQL expressions sinks. |
18-
| Query built from local-user-controlled sources (`java/sql-injection-local`) | More results | The query now identifies arguments to `Statement.executeLargeUpdate` and `Connection.prepareCall` as SQL expressions sinks. |
19-
| Query built without neutralizing special characters (`java/concatenated-sql-query`) | More results | The query now identifies arguments to `Statement.executeLargeUpdate` and `Connection.prepareCall` as SQL expressions sinks. |
20-
| Useless comparison test (`java/constant-comparison`) | Fewer false positives | Additional overflow check patterns are now recognized and no longer reported. Also, a few bug fixes in the range analysis for floating-point variables means a further reduction in false positives. |
15+
| Dereferenced variable may be null (`java/dereferenced-value-may-be-null`) | Fewer false positive results | Additional indirect null guards are detected, where two auxiliary variables are known to be equal. |
16+
| Non-synchronized override of synchronized method (`java/non-sync-override`) | Fewer false positive results | Results are now only reported if the immediately overridden method is synchronized. |
17+
| Query built from local-user-controlled sources (`java/sql-injection-local`) | More results | The query now identifies arguments to `Statement.executeLargeUpdate` and `Connection.prepareCall` as sinks for SQL expressions. |
18+
| Query built from user-controlled sources (`java/sql-injection`) | More results | The query now identifies arguments to `Statement.executeLargeUpdate` and `Connection.prepareCall` as sinks for SQL expressions. |
19+
| Query built without neutralizing special characters (`java/concatenated-sql-query`) | More results | The query now identifies arguments to `Statement.executeLargeUpdate` and `Connection.prepareCall` as sinks for SQL expressions. |
20+
| Useless comparison test (`java/constant-comparison`) | Fewer false positive results | Additional overflow check patterns are now recognized and no longer reported. Also, a few bug fixes in the range analysis for floating-point variables gives a further reduction in false positive results. |
2121

2222
## Changes to libraries
2323

24-
* The data-flow library has been extended with a new feature to aid debugging.
25-
Instead of specifying `isSink(Node n) { any() }` on a configuration to
26-
explore the possible flow from a source, it is recommended to use the new
27-
`Configuration::hasPartialFlow` predicate, as this gives a more complete
28-
picture of the partial flow paths from a given source. The feature is
29-
disabled by default and can be enabled for individual configurations by
30-
overriding `int explorationLimit()`.
24+
The data-flow library has been extended with a new feature to aid debugging.
25+
If you want to explore the possible flow from a source, replace
26+
`isSink(Node n) { any() }` with the new `Configuration::hasPartialFlow` predicate.
27+
This gives a more complete picture of the partial flow paths from a given source.
28+
The feature is disabled by default and can be enabled for individual configurations by overriding `int explorationLimit()`.

0 commit comments

Comments
 (0)