Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Noncompliant Code Example

The following This noncompliant code example simply shows the standard string-handling function strlen() being called with a plain character string, a signed character string, and an unsigned character string. The strlen() function takes a single argument of type const char *:

...

Failing to use plain char for characters in the basic character set can lead to excessive casts and less effective compiler diagnostics.

Recommendation

Severity

Likelihood

Remediation Cost

Priority

Level

STR04-C

low

Low

unlikely

Unlikely

low

Low

P3

L3

Automated Detection

Tool

Version

Checker

Description

Astrée
Include Page
Astrée_V
Astrée_V

Supported indirectly via MISRA C:2004 rule 6.1.
Axivion Bauhaus Suite

Include Page
Axivion Bauhaus Suite_V
Axivion Bauhaus Suite_V

CertC-STR04
CodeSonar
Include Page
CodeSonar_V
CodeSonar_V
LANG.TYPE.IAT
LANG.TYPE.ICA
LANG.TYPE.IOT
LANG.TYPE.MOT
Inappropriate assignment type
Inappropriate character arithmetic
Inappropriate operand type
Mismatched operand types
Compass/ROSE

 

 

 




ECLAIR
Include Page
ECLAIR_V
ECLAIR_V

CC2.STR04

Fully implemented

EDG

 

 

 

Fortify SCA

5.0

 

Can detect violations of this rule with CERT C Rule Pack, except cases involving signed char




Helix QAC

Include Page
Helix QAC_V
Helix QAC_V

C0432, C0674, C0699
LDRA tool suite
Include Page
LDRA_V
LDRA_V
93 S, 101 S, 329 S, 432 S, 458 SPartially implemented
Parasoft C/C++test
Include Page
Parasoft_V
Parasoft_V
CERT_C-STR04-a

The plain char type shall be used only for the storage and use of character values

RuleChecker
Include Page
RuleChecker_V
RuleChecker_V

Supported indirectly via MISRA C:2004 rule 6.1.
SonarQube C/C++ Plugin
Include Page
SonarQube C/C++ Plugin_V
SonarQube C/C++ Plugin_V
S810
PRQA QA-C Include PagePRQA_VPRQA_V0432 (C)Partially implemented

Related Vulnerabilities

Search for vulnerabilities resulting from the violation of this rule on the CERT website.

Related Guidelines

SEI CERT C++
Secure
Coding StandardVOID STR04-CPP. Use plain char for characters in the basic character set
MISRA C:2012

Rule 10.1

through

(required)
Rule 10.2 (required)
Rule 10.3 (required)
Rule 10.4 (required)

...


...

Image Modified Image Modified Image Modified