Fixed #3034 (Cppcheck crash on specific file (truecrypt).)
This commit is contained in:
parent
7775934492
commit
ef30da51bf
|
@ -720,6 +720,8 @@ void CheckBufferOverrun::checkFunctionParameter(const Token &tok, unsigned int p
|
||||||
ftok = ftok->next()->link()->next()->link();
|
ftok = ftok->next()->link()->next()->link();
|
||||||
if (Token::simpleMatch(ftok, "} else {"))
|
if (Token::simpleMatch(ftok, "} else {"))
|
||||||
ftok = ftok->tokAt(2)->link();
|
ftok = ftok->tokAt(2)->link();
|
||||||
|
if (!ftok)
|
||||||
|
break;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -209,6 +209,7 @@ private:
|
||||||
|
|
||||||
TEST_CASE(crash1); // Ticket #1587 - crash
|
TEST_CASE(crash1); // Ticket #1587 - crash
|
||||||
TEST_CASE(crash2); // Ticket #2607 - crash
|
TEST_CASE(crash2); // Ticket #2607 - crash
|
||||||
|
TEST_CASE(crash3); // Ticket #3034 - crash
|
||||||
|
|
||||||
TEST_CASE(executionPaths1);
|
TEST_CASE(executionPaths1);
|
||||||
TEST_CASE(executionPaths2);
|
TEST_CASE(executionPaths2);
|
||||||
|
@ -2900,6 +2901,18 @@ private:
|
||||||
check("struct C {} {} x");
|
check("struct C {} {} x");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void crash3()
|
||||||
|
{
|
||||||
|
check("void a(char *p) {\n"
|
||||||
|
" f( { if(finally_arg); } );\n"
|
||||||
|
"}\n"
|
||||||
|
"\n"
|
||||||
|
"void b() {\n"
|
||||||
|
" char arr[64];\n"
|
||||||
|
" a(arr);\n"
|
||||||
|
"}");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void epcheck(const char code[])
|
void epcheck(const char code[])
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue