From 124fb7c5f510571f465c51d2244397c59ea07af3 Mon Sep 17 00:00:00 2001 From: Brice Goglin Date: Fri, 22 Mar 2019 13:29:57 +0100 Subject: [PATCH] contrib/ci.inria.fr: filter-out more cppcheck warnings Signed-off-by: Brice Goglin (cherry picked from commit ea098938cc3f359fde8f9e742ae58b3b4b976976) --- contrib/ci.inria.fr/job-3-sonarscanner.sh | 120 ++++++++++++++-------- 1 file changed, 77 insertions(+), 43 deletions(-) diff --git a/contrib/ci.inria.fr/job-3-sonarscanner.sh b/contrib/ci.inria.fr/job-3-sonarscanner.sh index caa4d773d5..b41347e5f3 100755 --- a/contrib/ci.inria.fr/job-3-sonarscanner.sh +++ b/contrib/ci.inria.fr/job-3-sonarscanner.sh @@ -1,6 +1,6 @@ #!/bin/bash # -# Copyright © 2012-2018 Inria. All rights reserved. +# Copyright © 2012-2019 Inria. All rights reserved. # See COPYING in top-level directory. # @@ -160,53 +160,87 @@ sonar.c.cppcheck.reportPath=${CPPCHECK_XMLS} sonar.c.includeDirectories=$(echo | gcc -E -Wp,-v - 2>&1 | grep "^ " | tr '\n' ',')include,hwloc,utils/lstopo,utils/hwloc sonar.c.rats.reportPath=${RATS_XMLS} sonar.c.valgrind.reportPath=${VALGRIND_XMLS} -sonar.issue.ignore.multicriteria=e1,e2,e3,e4,e5,e6,e7,e8,e9,e10,e11,e12,e13,e14,e15 -# Complete the task associated to this TODO comment. -sonar.issue.ignore.multicriteria.e1.ruleKey=c:TodoTagPresence -sonar.issue.ignore.multicriteria.e1.resourceKey=** -# Missing curly brace. -sonar.issue.ignore.multicriteria.e2.ruleKey=c:MissingCurlyBraces -sonar.issue.ignore.multicriteria.e2.resourceKey=** +sonar.issue.ignore.multicriteria=c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16,c17,c18,c19,r1,r2,r3,r4,r5,r6,r7 +# Sharing some naming conventions is a key point to make it possible for a team to efficiently collaborate. This rule allows to check that all class names match a provided regular expression. +sonar.issue.ignore.multicriteria.c1.ruleKey=c:ClassName +sonar.issue.ignore.multicriteria.c1.resourceKey=**/* +# The file is too complex (392 while maximum allowed is set to 200). +sonar.issue.ignore.multicriteria.c2.ruleKey=c:FileComplexity +sonar.issue.ignore.multicriteria.c2.resourceKey=**/* +# Add or update the header of this file. +sonar.issue.ignore.multicriteria.c3.ruleKey=c:FileHeader +sonar.issue.ignore.multicriteria.c3.resourceKey=**/* +# Rename this file to match this regular expression: "(([a-z_][a-z0-9_]*)|([A-Z][a-zA-Z0-9]+))$". +sonar.issue.ignore.multicriteria.c4.ruleKey=c:FileName +sonar.issue.ignore.multicriteria.c4.resourceKey=**/* +# The Cognitive Complexity of this function is 17 which is greater than 15 authorized. +sonar.issue.ignore.multicriteria.c5.ruleKey=c:FunctionCognitiveComplexity +sonar.issue.ignore.multicriteria.c5.resourceKey=**/* +# The Cyclomatic Complexity of this function is 30 which is greater than 10 authorized. +sonar.issue.ignore.multicriteria.c6.ruleKey=c:FunctionComplexity +sonar.issue.ignore.multicriteria.c6.resourceKey=**/* +# Rename function "hwloc_get_proc_last_cpu_location" to match the regular expression ^[a-z_][a-z0-9_]{2,30}$. +sonar.issue.ignore.multicriteria.c7.ruleKey=c:FunctionName +sonar.issue.ignore.multicriteria.c7.resourceKey=**/* +# 197 more comment lines need to be written to reach the minimum threshold of 25.0% comment density. +# BUG: this rule doesn't work, either with no prefix or "c" or "common-c" +sonar.issue.ignore.multicriteria.c8.ruleKey=common-c:InsufficientCommentDensity +sonar.issue.ignore.multicriteria.c8.resourceKey=**/* +# 3 more lines of code need to be covered by tests to reach the minimum threshold of 65.0% lines coverage. +# BUG: this rule doesn't work, either with no prefix or "c" or "common-c" +sonar.issue.ignore.multicriteria.c9.ruleKey=common-c:InsufficientLineCoverage +sonar.issue.ignore.multicriteria.c9.resourceKey=**/* # Extract this magic number '3' into a constant, variable declaration or an enum. -sonar.issue.ignore.multicriteria.e3.ruleKey=c:MagicNumber -sonar.issue.ignore.multicriteria.e3.resourceKey=** -# Undocumented API: hwloc_noos_component -sonar.issue.ignore.multicriteria.e4.ruleKey=c:UndocumentedApi -sonar.issue.ignore.multicriteria.e4.resourceKey=** -# At most one statement is allowed per line, but 2 statements were found on this line. -sonar.issue.ignore.multicriteria.e5.ruleKey=c:TooManyStatementsPerLine -sonar.issue.ignore.multicriteria.e5.resourceKey=** +sonar.issue.ignore.multicriteria.c10.ruleKey=c:MagicNumber +sonar.issue.ignore.multicriteria.c10.resourceKey=**/* +# Missing curly brace. +sonar.issue.ignore.multicriteria.c11.ruleKey=c:MissingCurlyBraces +sonar.issue.ignore.multicriteria.c11.resourceKey=**/* +# Refactor this code to not nest more than 3 if/switch/try/for/while/do statements. +sonar.issue.ignore.multicriteria.c12.ruleKey=c:NestedStatements +sonar.issue.ignore.multicriteria.c12.resourceKey=**/* +# Define a constant instead of duplicating this literal "linuxpci" 2 times. +sonar.issue.ignore.multicriteria.c13.ruleKey=c:StringLiteralDuplicated +sonar.issue.ignore.multicriteria.c13.resourceKey=**/* +# Replace all tab characters in this file by sequences of white-spaces. +sonar.issue.ignore.multicriteria.c14.ruleKey=c:TabCharacter +sonar.issue.ignore.multicriteria.c14.resourceKey=**/* +# Complete the task associated to this TODO comment. +sonar.issue.ignore.multicriteria.c15.ruleKey=c:TodoTagPresence +sonar.issue.ignore.multicriteria.c15.resourceKey=**/* # Split this 166 characters long line (which is greater than 160 authorized). -sonar.issue.ignore.multicriteria.e6.ruleKey=c:TooLongLine -sonar.issue.ignore.multicriteria.e6.resourceKey=** -# Sharing some naming conventions is a key point to make it possible for a team to efficiently collaborate. This rule allows to check that all class names match a provided regular expression. -sonar.issue.ignore.multicriteria.e15.ruleKey=c:ClassName -sonar.issue.ignore.multicriteria.e15.resourceKey=** -# 196 more comment lines need to be written to reach the minimum threshold of 25.0% comment density. -# BUG: doesn't seem to match properly, even with * or so on instead of ++ -sonar.issue.ignore.multicriteria.e7.ruleKey=common-c++:InsufficientCommentDensity -sonar.issue.ignore.multicriteria.e7.resourceKey=** -# Double check that your buffer is as big as you specify. When using functions that accept a number n of bytes to copy, such as strncpy, be aware that if the dest buffer size = n it may not NULL-terminate the string. -sonar.issue.ignore.multicriteria.e8.ruleKey=rats:snprintf -sonar.issue.ignore.multicriteria.e8.resourceKey=** +sonar.issue.ignore.multicriteria.c16.ruleKey=c:TooLongLine +sonar.issue.ignore.multicriteria.c16.resourceKey=**/* +# At most one statement is allowed per line, but 2 statements were found on this line. +sonar.issue.ignore.multicriteria.c17.ruleKey=c:TooManyStatementsPerLine +sonar.issue.ignore.multicriteria.c17.resourceKey=**/* +# parameter list has 9 parameters, which is greater than the 7 authorized. +sonar.issue.ignore.multicriteria.c18.ruleKey=c:TooManyParameters +sonar.issue.ignore.multicriteria.c18.resourceKey=**/* +# Undocumented API: hwloc_noos_component +sonar.issue.ignore.multicriteria.c19.ruleKey=c:UndocumentedApi +sonar.issue.ignore.multicriteria.c19.resourceKey=**/* +# Extra care should be taken to ensure that character arrays that are allocated on the stack are used safely. They are prime targets for buffer overflow attacks. +sonar.issue.ignore.multicriteria.r1.ruleKey=rats-c:fixed size global buffer +sonar.issue.ignore.multicriteria.r1.resourceKey=**/* +# A potential race condition vulnerability exists here. Normally a call to this function is vulnerable only when a match check precedes it. No check was detected, however one could still exist that could not be detected. +sonar.issue.ignore.multicriteria.r2.ruleKey=rats-c:fixed size local buffer +sonar.issue.ignore.multicriteria.r2.resourceKey=**/* # Double check that your buffer is as big as you specify. When using functions that accept a number n of bytes to copy, such as strncpy, be aware that if the dest buffer size = n it may not NULL-terminate the string.sonar.issue.ignore.multicriteria.e8.ruleKey=rats:snprintf -sonar.issue.ignore.multicriteria.e9.ruleKey=rats:memcpy -sonar.issue.ignore.multicriteria.e9.resourceKey=** +sonar.issue.ignore.multicriteria.r3.ruleKey=rats-c:memcpy +sonar.issue.ignore.multicriteria.r3.resourceKey=**/* # Don't use on memory intended to be secure, because the old structure will not be zeroed out -sonar.issue.ignore.multicriteria.e10.ruleKey=rats:realloc -sonar.issue.ignore.multicriteria.e10.resourceKey=** -# This function does not properly handle non-NULL terminated strings. This does not result in exploitable code, but can lead to access violations. -sonar.issue.ignore.multicriteria.e11.ruleKey=rats:strlen -sonar.issue.ignore.multicriteria.e11.resourceKey=** +sonar.issue.ignore.multicriteria.r4.ruleKey=rats-c:realloc +sonar.issue.ignore.multicriteria.r4.resourceKey=**/* +# Double check that your buffer is as big as you specify. When using functions that accept a number n of bytes to copy, such as strncpy, be aware that if the dest buffer size = n it may not NULL-terminate the string. +sonar.issue.ignore.multicriteria.r5.ruleKey=rats-c:snprintf +sonar.issue.ignore.multicriteria.r5.resourceKey=**/* # Check to be sure that the format string passed as argument 2 to this function call does not come from an untrusted source that could have added formatting characters that the code is not prepared to handle. Additionally, the format string could contain '%s' without precision that could result in a buffer overflow. -sonar.issue.ignore.multicriteria.e12.ruleKey=rats:sprintf -sonar.issue.ignore.multicriteria.e12.resourceKey=** -# Extra care should be taken to ensure that character arrays that are allocated on the stack are used safely. They are prime targets for buffer overflow attacks. -sonar.issue.ignore.multicriteria.e13.ruleKey=rats:fixed size global buffer -sonar.issue.ignore.multicriteria.e13.resourceKey=** -# A potential race condition vulnerability exists here. Normally a call to this function is vulnerable only when a match check precedes it. No check was detected, however one could still exist that could not be detected. -sonar.issue.ignore.multicriteria.e14.ruleKey=rats:fixed size local buffer -sonar.issue.ignore.multicriteria.e14.resourceKey=** +sonar.issue.ignore.multicriteria.r6.ruleKey=rats-c:sprintf +sonar.issue.ignore.multicriteria.r6.resourceKey=**/* +# This function does not properly handle non-NULL terminated strings. This does not result in exploitable code, but can lead to access violations. +sonar.issue.ignore.multicriteria.r7.ruleKey=rats-c:strlen +sonar.issue.ignore.multicriteria.r7.resourceKey=**/* EOF # Run the sonar-scanner analysis and submit to SonarQube server