JavaScript is not currently enabled, but is required for full CodeSonar manual search and browse functionality.
If you are viewing this file in your hub's Web GUI, enable JavaScript in your browser: you will also need it for GUI functionality.
If you opened this file directly from disk, your browser may be directly suppressing JavaScript functionality: certain browsers perform this suppression on local files (but not files delivered by web servers) for security reasons.
| CodeSonar® 9.0p0 Hot Tips | CONFIDENTIAL | CodeSecure Inc |
The minimum CodeSonar version for direct upgrade to CodeSonar 7.0 or later is 4.1p0. If you have a hub that is running CodeSonar 4.0p2 or earlier, contact CodeSecure support for assistance in upgrading.
If you have made changes to any of your CodeSonar configuration files, you will need to upgrade those files as part of the upgrade process.
If you have previously installed the CodeSonar plug-in for Visual Studio or CodeSonar plug-in for Eclipse, upgrade those installations after upgrading CodeSonar.
| C# Analysis Improvements | There are several improvements to the C# build/analysis. |
|---|---|
| Build/Analysis For Java 20, 21, 22 | The CodeSonar Java build/analysis can now be applied to Java 20, 21, and 22. |
| Warning Classes | There are many new warning classes and one modified class for C/C++. |
| GUI | The Management Report Template Editor now includes functionality for inserting and customizing a Warning Categories table. |
| Management Reports |
Management
reports have added support for warning
categories.
|
| Configuration Changes | There is one new configuration preset and one preset has been modified. There are also six new configuration parameters. |
| CWE |
This version of CodeSonar uses CWE v4.15, released July
16, 2024.
CWE mappings are now provided for the Kotlin warning classes corresponding to detekt rules. |
| LDAP Authentication Plug-In Changes |
The LDAP
(Active Directory) authentication plug-in has several
improvements.
Note that automatic role mapping is available for Microsoft Active Directory only. |
| API Changes | There are some changes to CodeSonar C/C++ ASTs. |
| Support Warning | CodeSonar 8.3 is the final CodeSonar release to support the
CodeSonar plug-in for Visual Studio 2015. The CodeSonar plug-in for Visual Studio 2017 and Visual Studio 2019 and the CodeSonar plug-in for Visual Studio 2022 will still be supported. |
| Release Status | For full information about release status for all current and past CodeSonar versions, see the Supported Product Versions page on the CodeSecure support site. |
There are several improvements to the C# build/analysis.
The CodeSonar Java build/analysis can now be applied to Java 20, 21, and 22. You can specify these frameworks with, respectively:
Features that are still in preview status as of a particular Java version are not parsed when that version (or earlier) is specified.
Support and handling for new permanent features in Java 21 and 22
are described in the following table. Java 20 has no new permanent
features.
| Feature | State of support | Notes |
|---|---|---|
| Unnamed Variables and Patterns JEP 456 |
parsed, IR generated |
Minimum specified framework for parsing: Java 22.
Unnamed variables and patterns are parsed but currently analyzed as classical named local variables. Using them will cause CodeSonar to issue a false positive Unused Value: Variable (Java) warning for each use. |
| Record Patterns JEP 440 |
parsed, partial IR generated |
Minimum specified framework for parsing: Java 21.
Using these will cause CodeSonar to issue false positive warnings of the following classes.
|
| Pattern Matching for switch JEP 441 |
Parsed only |
Minimum specified framework for parsing: Java 21.
CodeSonar will parse code using this feature, but not generate IR or apply any additional handling.
|
A new manual page summarises CodeSonar support for specific Java versions.
There are many new C/C++ warning classes, and one modified C/C++ warning class.
| Warning Class | Changes |
|---|---|
| Commented-out Code | Checks can now be configured with new configuration parameters COMMENTED_OUT_CODE_SIZE_THRESHOLD, COMMENTED_OUT_CODE_MIN_RATIO, COMMENTED_OUT_CODE_MAX_RATIO. |
There is one new configuration preset and one preset has been modified. There are also six new configuration parameters.
| Preset | Description |
|---|---|
| csharp_no_roslyn | Disables all Roslyn-detected C# warning classes (those with mnemonic ROSLYN.*). |
| Preset | Changes |
|---|---|
| csharp_complete | Now also enables all warning classes detected in C# code,
including Roslyn-detected C# warning
classes. (Previously enabled only CodeSonar-detected C# warning classes). |
There are six new configuration parameters:
| COMMENTED_OUT_CODE_SIZE_THRESHOLD | Specifies a comment size threshold for reporting Commented-out Code warnings. |
|
COMMENTED_OUT_CODE_MAX_RATIO COMMENTED_OUT_CODE_MIN_RATIO |
Specify upper and lower bounds on the "operator"/"non-operator" character ratio that will be treated as indicating the presence of code for Commented-out Code checks. |
| LOG_COMPILER_ARGUMENT_FILES | Specifies whether or not to log the contents of argument files processed by compiler models to the Native Compilation Details Log. |
| SWITCH_LABEL_CARDINALITY_THRESHOLD | The threshold below which a switch statement has too few cases to trigger a switch With Non-enum Expression warning. |
| SWITCH_LABEL_DENSITY_THRESHOLD | The threshold below which the cases in a switch statement are too sparse to trigger a switch With Non-enum Expression warning. |
There are some changes to CodeSonar C/C++ ASTs.
| NAME | NUMBER | NOTES |
|---|---|---|
| Error message 'The metric "None" does not exist' when previewing edits to a copy of the standard "Analysis Report" template | ZD-28659, ZD-30448, ZD-31281, CSO-3143 | fixed |
| Roslyn parse errors in C# analysis | ZD-28835, ZD-29981, ZD-31028, CSO-3931 | fixed |
| C++ parse errors in a mixed C++/C# project | ZD-30581, CSO-4449 | fixed |
| Parse errors when using musllib stdio | ZD-30861, ZD-31075, CSO-4516, BZ:72096 | Additional modeling added. |
| LDAP role mapping not working when there are multiples of the same DN being mapped to different hub roles | ZD-30895, CSO-4569 | fixed |
| C# analysis message "The number of constants 65536 is over the size of the constant pool: 65535" | ZD-31028, ZD-31150, CSO-4631 | fixed |
| parse error for ecomppc: cannot open source file "string.h" #include_next <string.h> | ZD-31134, CSO-4725 | fixed |
| cl compiler model needs to handle /EXTERNAL argument | ZD-31155, CSO-4705 | fixed |
| Error: "Bad Request: This hub only speaks HTTPS, but that was an HTTP request. Use https:// in the URL" | ZD-31181, CSO-4720 | fixed |
| Relative dates broken; Exception Type:TypeError Exception Value:list indices must be integers or slices, not float | ZD-31197, CSO-4723 | fixed |
| Improved mapping for OWASP top ten 2017/2021 and related CWE categories | ZD-31226, CSO-4729 | Improvements to warning category broad mappings, in particular for OWASP-2017, OWASP-2021, and CWE. |
| config tool option 1, permission denied when trying to create a new hub user | ZD-31337, CSO-4806 | fixed |
| C# build problems when using -msbuild-solution with VS 2022 17.11 and later | ZD-31349, CSO-4880 | fixed |
| Extend documentation for two warning classes | ZD-31354, CSO-4811 | Documentation for Macro Does Not End With } or ) and Macro Does Not Start With { or ( extended. |
| FP: Unused Parameter | ZD-31336, CSO-4807 | fixed |