[Bug ada/49334] New: [cppcheck] possible index out of bounds in gcc/ada/adaint.c
ettl.martin at gmx dot de
gcc-bugzilla@gcc.gnu.org
Wed Jun 8 22:24:00 GMT 2011
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49334
Summary: [cppcheck] possible index out of bounds in
gcc/ada/adaint.c
Product: gcc
Version: unknown
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: ada
AssignedTo: unassigned@gcc.gnu.org
ReportedBy: ettl.martin@gmx.de
During a check with the static code analysis tool cppcheck, the tool discoverd
a possible buffer access out of bounds issue. The tool printed the following
output:
[gcc/ada/adaint.c][error] Array index -1 is out of bounds at line 3139
After further investiating, i reduced the code to following snipped and indeed
cppcheck is right. Please take a look at the reduced testcase:
#define MAXPATH 256
static char new_canonical_dirspec [MAXPATH];
char * f (char *dirspec)
{
int len;
strcpy (new_canonical_dirspec, "");
len = strlen (new_canonical_dirspec);
if (new_canonical_dirspec [len-1] != '/') // <-- if len == 0 --> Acces out
of bounds
strncat (new_canonical_dirspec, "/", MAXPATH);
new_canonical_dirspec [MAXPATH - 1] = (char) 0;
return new_canonical_dirspec;
}
Best regards from the cppcheck team
Ettl Martin
More information about the Gcc-bugs
mailing list