Versions Compared

Key

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

...

C identifies two conditions under which division and modulo operations result in undefined behavior:

UBDescription

45

The value of the second operand of the / or % operator is zero (6.5.5).

n/aIf the quotient a/b is not representable, the behavior of both a/b and a%b is undefined (6.5.5).

...

Tool

Version

Checker

Description

Compass/ROSE

  

Can detect some violations of this rule. In particular, it ensures that all operations involving division or modulo are preceded by a check ensuring that the second operand is nonzero.

Coverity6.5DIVIDE_BY_ZEROFully Implemented
Fortify SCA5.0 

Can detect violations of this rule with CERT C Rule Pack.

LDRA tool suite

Include Page
LDRA_V
LDRA_V

43 D
248 S

Partially implemented.
PRQA QA-C
Include Page
PRQA_V
PRQA_V

2830 (C)
2831 (D)
2832 (A)
2833 (S)
2834 (P)

Fully implemented.

...

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

Related Guidelines

Bibliography

[Seacord 2005]Chapter 5, "Integers"
[Warren 2002]Chapter 2, "Basics"

...