Disallow ".." to appear in paths from the updater.
This commit is contained in:
parent
3d7b0db114
commit
ed51d5cf84
@ -127,6 +127,12 @@ static void PumpUpdate(void *data)
|
|||||||
UpdatePart *part = (UpdatePart*)data;
|
UpdatePart *part = (UpdatePart*)data;
|
||||||
while (part != NULL)
|
while (part != NULL)
|
||||||
{
|
{
|
||||||
|
if (strstr(part->file, "..") != NULL)
|
||||||
|
{
|
||||||
|
/* Naughty naughty */
|
||||||
|
AddUpdateError("Detected invalid path escape (..): %s", part->file);
|
||||||
|
goto skip_create;
|
||||||
|
}
|
||||||
if (part->data == NULL)
|
if (part->data == NULL)
|
||||||
{
|
{
|
||||||
smutils->BuildPath(Path_SM, path, sizeof(path), "gamedata/%s", part->file);
|
smutils->BuildPath(Path_SM, path, sizeof(path), "gamedata/%s", part->file);
|
||||||
@ -158,6 +164,7 @@ static void PumpUpdate(void *data)
|
|||||||
"Successfully updated gamedata file \"%s\"",
|
"Successfully updated gamedata file \"%s\"",
|
||||||
part->file);
|
part->file);
|
||||||
}
|
}
|
||||||
|
skip_create:
|
||||||
temp = part->next;
|
temp = part->next;
|
||||||
free(part->data);
|
free(part->data);
|
||||||
free(part->file);
|
free(part->file);
|
||||||
|
Loading…
Reference in New Issue
Block a user