You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 34 Next »

Lowercase letter l (ell) can easily be confused with the digit 1 (one). This can be particularly confusing when indicating that an integer literal constant is a long value. This recommendation is similar to DCL02-C. Use visually distinct identifiers.

Likewise, you should use uppercase LL rather than lowercase ll when indicating that an integer literal constant is a long long value.

Noncompliant Code Example

This noncompliant example highlights the result of adding an integer and a long value even though it appears that two integers 1111 are being added.

	printf("Sum is %ld\n", 1111 + 111l);

Compliant Solution

The compliant solution improvises by using an uppercase L instead of lowercase l to disambiguate the visual appearance.

	printf("Sum is %ld\n", 1111 + 111L);

Risk Assessment

Confusing a lowercase letter l (ell) with a digit 1 (one) when indicating that an integer denotation is a long value could lead to an incorrect value being written into code.

Recommendation

Severity

Likelihood

Remediation Cost

Priority

Level

DCL16-C

low

unlikely

low

P3

L3

Automated Detection

Tool

Version

Checker

Description

ECLAIR

1.2

ltrlsynt

Fully implemented

PRQA QA·C
Unable to render {include} The included page could not be found.
 Fully implemented

Related Vulnerabilities

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

Related Guidelines

CERT C++ Secure Coding Standard: DCL16-CPP. Use 'L', not 'l', to indicate a long value

Bibliography

Lockheed Martin 2005 AV Rule 14, Literal suffixes shall use uppercase rather than lowercase letters.


  • No labels