astyle formatting
This commit is contained in:
parent
8ead23fc91
commit
5789eb116d
|
@ -1525,13 +1525,13 @@ void CheckBufferOverrun::checkInsecureCmdLineArgs()
|
||||||
}
|
}
|
||||||
if (varid == 0)
|
if (varid == 0)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
// Jump to the opening curly brace
|
// Jump to the opening curly brace
|
||||||
tok = tok->next()->link();
|
tok = tok->next()->link();
|
||||||
if (!tok || !tok->next())
|
if (!tok || !tok->next())
|
||||||
continue;
|
continue;
|
||||||
tok = tok->next();
|
tok = tok->next();
|
||||||
|
|
||||||
// Search within main() for possible buffer overruns involving argv
|
// Search within main() for possible buffer overruns involving argv
|
||||||
int indentlevel = -1;
|
int indentlevel = -1;
|
||||||
for (; tok && tok->next(); tok = tok->next())
|
for (; tok && tok->next(); tok = tok->next())
|
||||||
|
@ -1560,16 +1560,16 @@ void CheckBufferOverrun::checkInsecureCmdLineArgs()
|
||||||
cmdLineArgsError(tok);
|
cmdLineArgsError(tok);
|
||||||
}
|
}
|
||||||
else if (Token::Match(tok, "sprintf ( %var% , %str% , %varid% [", varid) &&
|
else if (Token::Match(tok, "sprintf ( %var% , %str% , %varid% [", varid) &&
|
||||||
tok->tokAt(4)->str().find("%s") != std::string::npos)
|
tok->tokAt(4)->str().find("%s") != std::string::npos)
|
||||||
{
|
{
|
||||||
cmdLineArgsError(tok);
|
cmdLineArgsError(tok);
|
||||||
}
|
}
|
||||||
else if (Token::Match(tok, "sprintf ( %var% , %str% , * %varid%", varid) &&
|
else if (Token::Match(tok, "sprintf ( %var% , %str% , * %varid%", varid) &&
|
||||||
tok->tokAt(4)->str().find("%s") != std::string::npos)
|
tok->tokAt(4)->str().find("%s") != std::string::npos)
|
||||||
{
|
{
|
||||||
cmdLineArgsError(tok);
|
cmdLineArgsError(tok);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -97,7 +97,7 @@ public:
|
||||||
|
|
||||||
/** Check for buffer overruns due to allocating strlen(src) bytes instead of (strlen(src)+1) bytes before copying a string */
|
/** Check for buffer overruns due to allocating strlen(src) bytes instead of (strlen(src)+1) bytes before copying a string */
|
||||||
void checkBufferAllocatedWithStrlen();
|
void checkBufferAllocatedWithStrlen();
|
||||||
|
|
||||||
/** Check for buffer overruns due to copying command-line args to fixed-sized buffers without bounds checking */
|
/** Check for buffer overruns due to copying command-line args to fixed-sized buffers without bounds checking */
|
||||||
void checkInsecureCmdLineArgs();
|
void checkInsecureCmdLineArgs();
|
||||||
|
|
||||||
|
|
|
@ -170,7 +170,7 @@ private:
|
||||||
TEST_CASE(crash); // Ticket #1587 - crash
|
TEST_CASE(crash); // Ticket #1587 - crash
|
||||||
|
|
||||||
TEST_CASE(executionPaths1);
|
TEST_CASE(executionPaths1);
|
||||||
|
|
||||||
TEST_CASE(cmdLineArgs1);
|
TEST_CASE(cmdLineArgs1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2293,114 +2293,114 @@ private:
|
||||||
"}\n");
|
"}\n");
|
||||||
ASSERT_EQUALS("[test.cpp:7]: (error) Array 'buf[10][5]' index 1000 out of bounds\n", errout.str());
|
ASSERT_EQUALS("[test.cpp:7]: (error) Array 'buf[10][5]' index 1000 out of bounds\n", errout.str());
|
||||||
}
|
}
|
||||||
|
|
||||||
void cmdLineArgs1()
|
void cmdLineArgs1()
|
||||||
{
|
{
|
||||||
check("int main(int argc, char* argv[])\n"
|
check("int main(int argc, char* argv[])\n"
|
||||||
"{\n"
|
"{\n"
|
||||||
" char prog[10];\n"
|
" char prog[10];\n"
|
||||||
" strcpy(prog, argv[0]);\n"
|
" strcpy(prog, argv[0]);\n"
|
||||||
"}\n");
|
"}\n");
|
||||||
|
|
||||||
ASSERT_EQUALS("[test.cpp:4]: (error) Buffer overrun possible for long cmd-line args\n", errout.str());
|
ASSERT_EQUALS("[test.cpp:4]: (error) Buffer overrun possible for long cmd-line args\n", errout.str());
|
||||||
|
|
||||||
check("int main(int argc, char* argv[])\n"
|
check("int main(int argc, char* argv[])\n"
|
||||||
"{\n"
|
"{\n"
|
||||||
" char prog[10] = {'\\0'};\n"
|
" char prog[10] = {'\\0'};\n"
|
||||||
" strcat(prog, argv[0]);\n"
|
" strcat(prog, argv[0]);\n"
|
||||||
"}\n");
|
"}\n");
|
||||||
|
|
||||||
ASSERT_EQUALS("[test.cpp:4]: (error) Buffer overrun possible for long cmd-line args\n", errout.str());
|
ASSERT_EQUALS("[test.cpp:4]: (error) Buffer overrun possible for long cmd-line args\n", errout.str());
|
||||||
|
|
||||||
check("int main(int argc, char* argv[])\n"
|
check("int main(int argc, char* argv[])\n"
|
||||||
"{\n"
|
"{\n"
|
||||||
" char prog[10];\n"
|
" char prog[10];\n"
|
||||||
" sprintf(prog, \"%s\", argv[0]);\n"
|
" sprintf(prog, \"%s\", argv[0]);\n"
|
||||||
"}\n");
|
"}\n");
|
||||||
|
|
||||||
ASSERT_EQUALS("[test.cpp:4]: (error) Buffer overrun possible for long cmd-line args\n", errout.str());
|
ASSERT_EQUALS("[test.cpp:4]: (error) Buffer overrun possible for long cmd-line args\n", errout.str());
|
||||||
|
|
||||||
check("int main(int argc, char **argv, char **envp)\n"
|
check("int main(int argc, char **argv, char **envp)\n"
|
||||||
"{\n"
|
"{\n"
|
||||||
" char prog[10];\n"
|
" char prog[10];\n"
|
||||||
" strcpy(prog, argv[0]);\n"
|
" strcpy(prog, argv[0]);\n"
|
||||||
"}\n");
|
"}\n");
|
||||||
|
|
||||||
ASSERT_EQUALS("[test.cpp:4]: (error) Buffer overrun possible for long cmd-line args\n", errout.str());
|
ASSERT_EQUALS("[test.cpp:4]: (error) Buffer overrun possible for long cmd-line args\n", errout.str());
|
||||||
|
|
||||||
check("int main(int argc, char **argv, char **envp)\n"
|
check("int main(int argc, char **argv, char **envp)\n"
|
||||||
"{\n"
|
"{\n"
|
||||||
" char prog[10] = {'\\0'};\n"
|
" char prog[10] = {'\\0'};\n"
|
||||||
" strcat(prog, argv[0]);\n"
|
" strcat(prog, argv[0]);\n"
|
||||||
"}\n");
|
"}\n");
|
||||||
|
|
||||||
ASSERT_EQUALS("[test.cpp:4]: (error) Buffer overrun possible for long cmd-line args\n", errout.str());
|
ASSERT_EQUALS("[test.cpp:4]: (error) Buffer overrun possible for long cmd-line args\n", errout.str());
|
||||||
|
|
||||||
check("int main(int argc, char **argv, char **envp)\n"
|
check("int main(int argc, char **argv, char **envp)\n"
|
||||||
"{\n"
|
"{\n"
|
||||||
" char prog[10];\n"
|
" char prog[10];\n"
|
||||||
" sprintf(prog, \"%s\", argv[0]);\n"
|
" sprintf(prog, \"%s\", argv[0]);\n"
|
||||||
"}\n");
|
"}\n");
|
||||||
|
|
||||||
ASSERT_EQUALS("[test.cpp:4]: (error) Buffer overrun possible for long cmd-line args\n", errout.str());
|
ASSERT_EQUALS("[test.cpp:4]: (error) Buffer overrun possible for long cmd-line args\n", errout.str());
|
||||||
|
|
||||||
check("int main(int argc, char **options)\n"
|
check("int main(int argc, char **options)\n"
|
||||||
"{\n"
|
"{\n"
|
||||||
" char prog[10];\n"
|
" char prog[10];\n"
|
||||||
" strcpy(prog, options[0]);\n"
|
" strcpy(prog, options[0]);\n"
|
||||||
"}\n");
|
"}\n");
|
||||||
|
|
||||||
ASSERT_EQUALS("[test.cpp:4]: (error) Buffer overrun possible for long cmd-line args\n", errout.str());
|
ASSERT_EQUALS("[test.cpp:4]: (error) Buffer overrun possible for long cmd-line args\n", errout.str());
|
||||||
|
|
||||||
check("int main(int argc, char **options)\n"
|
check("int main(int argc, char **options)\n"
|
||||||
"{\n"
|
"{\n"
|
||||||
" char prog[10] = {'\\0'};\n"
|
" char prog[10] = {'\\0'};\n"
|
||||||
" strcat(prog, options[0]);\n"
|
" strcat(prog, options[0]);\n"
|
||||||
"}\n");
|
"}\n");
|
||||||
|
|
||||||
ASSERT_EQUALS("[test.cpp:4]: (error) Buffer overrun possible for long cmd-line args\n", errout.str());
|
ASSERT_EQUALS("[test.cpp:4]: (error) Buffer overrun possible for long cmd-line args\n", errout.str());
|
||||||
|
|
||||||
check("int main(int argc, char **options)\n"
|
check("int main(int argc, char **options)\n"
|
||||||
"{\n"
|
"{\n"
|
||||||
" char prog[10];\n"
|
" char prog[10];\n"
|
||||||
" sprintf(prog, \"%s\", *options);\n"
|
" sprintf(prog, \"%s\", *options);\n"
|
||||||
"}\n");
|
"}\n");
|
||||||
|
|
||||||
ASSERT_EQUALS("[test.cpp:4]: (error) Buffer overrun possible for long cmd-line args\n", errout.str());
|
ASSERT_EQUALS("[test.cpp:4]: (error) Buffer overrun possible for long cmd-line args\n", errout.str());
|
||||||
|
|
||||||
check("int main(int argc, char **argv, char **envp)\n"
|
check("int main(int argc, char **argv, char **envp)\n"
|
||||||
"{\n"
|
"{\n"
|
||||||
" char prog[10];\n"
|
" char prog[10];\n"
|
||||||
" if (strlen(argv[0]) < 10)\n"
|
" if (strlen(argv[0]) < 10)\n"
|
||||||
" strcpy(prog, argv[0]);\n"
|
" strcpy(prog, argv[0]);\n"
|
||||||
"}\n");
|
"}\n");
|
||||||
|
|
||||||
ASSERT_EQUALS("", errout.str());
|
ASSERT_EQUALS("", errout.str());
|
||||||
|
|
||||||
check("int main(int argc, char **argv, char **envp)\n"
|
check("int main(int argc, char **argv, char **envp)\n"
|
||||||
"{\n"
|
"{\n"
|
||||||
" char prog[10] = {'\\0'};\n"
|
" char prog[10] = {'\\0'};\n"
|
||||||
" if (10 > strlen(argv[0]))\n"
|
" if (10 > strlen(argv[0]))\n"
|
||||||
" strcat(prog, argv[0]);\n"
|
" strcat(prog, argv[0]);\n"
|
||||||
"}\n");
|
"}\n");
|
||||||
|
|
||||||
ASSERT_EQUALS("", errout.str());
|
ASSERT_EQUALS("", errout.str());
|
||||||
|
|
||||||
check("int main(int argc, char **argv, char **envp)\n"
|
check("int main(int argc, char **argv, char **envp)\n"
|
||||||
"{\n"
|
"{\n"
|
||||||
" char prog[10];\n"
|
" char prog[10];\n"
|
||||||
" sprintf(prog, \"%p\", argv[0]);\n"
|
" sprintf(prog, \"%p\", argv[0]);\n"
|
||||||
"}\n");
|
"}\n");
|
||||||
|
|
||||||
ASSERT_EQUALS("", errout.str());
|
ASSERT_EQUALS("", errout.str());
|
||||||
|
|
||||||
check("int main(int argc, char **argv, char **envp)\n"
|
check("int main(int argc, char **argv, char **envp)\n"
|
||||||
"{\n"
|
"{\n"
|
||||||
" char prog[10];\n"
|
" char prog[10];\n"
|
||||||
" argv[0][0] = '\\0';\n"
|
" argv[0][0] = '\\0';\n"
|
||||||
" strcpy(prog, argv[0]);\n"
|
" strcpy(prog, argv[0]);\n"
|
||||||
"}\n");
|
"}\n");
|
||||||
|
|
||||||
ASSERT_EQUALS("", errout.str());
|
ASSERT_EQUALS("", errout.str());
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue