Fix #419 (missleading buffer overrun)
http://sourceforge.net/apps/trac/cppcheck/ticket/419
This commit is contained in:
parent
37fb0d8c8a
commit
d4a97eb2b4
|
@ -67,6 +67,11 @@ void CheckBufferOverrun::bufferOverrun(const Token *tok)
|
|||
reportError(tok, Severity::possibleError, "bufferOverrun", "Buffer overrun");
|
||||
}
|
||||
|
||||
void CheckBufferOverrun::dangerousStdCin(const Token *tok)
|
||||
{
|
||||
reportError(tok, Severity::possibleError, "dangerousStdCin", "Dangerous usage of std::cin, possible buffer overrun");
|
||||
}
|
||||
|
||||
void CheckBufferOverrun::strncatUsage(const Token *tok)
|
||||
{
|
||||
reportError(tok, Severity::possibleError, "strncatUsage", "Dangerous usage of strncat. Tip: the 3rd parameter means maximum number of characters to append");
|
||||
|
@ -514,7 +519,7 @@ void CheckBufferOverrun::checkScope(const Token *tok, const char *varname[], con
|
|||
// cin..
|
||||
if (varid > 0 && Token::Match(tok, "cin >> %varid% ;", varid))
|
||||
{
|
||||
bufferOverrun(tok);
|
||||
dangerousStdCin(tok);
|
||||
}
|
||||
|
||||
// Function call..
|
||||
|
|
|
@ -75,6 +75,7 @@ private:
|
|||
void arrayIndexOutOfBounds(const Token *tok);
|
||||
void arrayIndexOutOfBounds();
|
||||
void bufferOverrun(const Token *tok);
|
||||
void dangerousStdCin(const Token *tok);
|
||||
void strncatUsage(const Token *tok);
|
||||
void outOfBounds(const Token *tok, const std::string &what);
|
||||
void sizeArgumentAsChar(const Token *tok);
|
||||
|
@ -83,6 +84,7 @@ private:
|
|||
{
|
||||
arrayIndexOutOfBounds(0);
|
||||
bufferOverrun(0);
|
||||
dangerousStdCin(0);
|
||||
strncatUsage(0);
|
||||
outOfBounds(0, "index");
|
||||
sizeArgumentAsChar(0);
|
||||
|
|
|
@ -827,7 +827,7 @@ private:
|
|||
" char str[10];\n"
|
||||
" cin >> str;\n"
|
||||
"}\n");
|
||||
ASSERT_EQUALS("[test.cpp:4]: (possible error) Buffer overrun\n", errout.str());
|
||||
ASSERT_EQUALS("[test.cpp:4]: (possible error) Dangerous usage of std::cin, possible buffer overrun\n", errout.str());
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue