coverity#706158 Copy into fixed size buffer
Change-Id: I5d540e6e3a21b0563febb70696882439a10b9b86
This commit is contained in:
@@ -91,11 +91,30 @@ struct inclist *inc_path(char *file, char *include, boolean dot, struct Includes
|
|||||||
if (*p == '/')
|
if (*p == '/')
|
||||||
break;
|
break;
|
||||||
if (p == file)
|
if (p == file)
|
||||||
strcpy(path, include);
|
{
|
||||||
else {
|
if(strlen(include) >= BUFSIZ )
|
||||||
strncpy(path, file, (p-file) + 1);
|
{
|
||||||
path[ (p-file) + 1 ] = '\0';
|
fatalerr("include filename too long \"%s\"\n", include);
|
||||||
strcpy(path + (p-file) + 1, include);
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
strcpy(path, include);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
int partial = (p - file);
|
||||||
|
int inc_len = strlen(include);
|
||||||
|
if(inc_len + partial >= BUFSIZ )
|
||||||
|
{
|
||||||
|
fatalerr("include filename too long \"%s\"\n", include);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
memcpy(path, file, partial);
|
||||||
|
memcpy(path + partial, include, inc_len);
|
||||||
|
path[partial + inc_len] = 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
remove_dotdot(path);
|
remove_dotdot(path);
|
||||||
if ((exists_path(incCollection, path)) && stat(path, &st) == 0 && !( st.st_mode & S_IFDIR)) {
|
if ((exists_path(incCollection, path)) && stat(path, &st) == 0 && !( st.st_mode & S_IFDIR)) {
|
||||||
|
Reference in New Issue
Block a user