Versions Compared

Key

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

Copying data to a buffer that is not large enough to hold that data results in a buffer overflow. Buffer overflows occur frequently when manipulating strings [Seacord 2013b]. To prevent such errors, either limit copies through truncation or, preferably, ensure that the destination is of sufficient size to hold the character data to be copied and the null-termination character. This rule is a C++-specific instance of STR31-C. Guarantee that storage for strings has sufficient space for character data and the null terminator.

Noncompliant Code Example

...

Rule

Severity

Likelihood

Remediation Cost

Priority

Level

STR35STR50-CPP

High

Likely

Medium

P18

L1

...

Bibliography

[ISO/IEC 14882-2014]

27.7.2.2.3, "basic_istream::operator>>"
27.7.2.3, "Unformatted Input Functions" 

[Seacord 2013b]Chapter 2, "Strings"

...