Fixed a crash associated with demo listings.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@3083 fc73d0e0-1445-4013-8a0c-d673dee63da5
This commit is contained in:
parent
a9a4e664f6
commit
f01514060e
1 changed files with 6 additions and 14 deletions
|
@ -2498,7 +2498,7 @@ void SV_MVDList_f (void)
|
|||
Con_Printf("no demos\n");
|
||||
}
|
||||
|
||||
for (i = 1; list->name[0]; i++, list++)
|
||||
for (i = 1; i <= dir->numfiles; i++, list++)
|
||||
{
|
||||
for (j = 1; j < Cmd_Argc(); j++)
|
||||
if (strstr(list->name, Cmd_Argv(j)) == NULL)
|
||||
|
@ -2548,7 +2548,7 @@ void SV_UserCmdMVDList_f (void)
|
|||
Con_Printf("no demos\n");
|
||||
}
|
||||
|
||||
for (i = 1; list->name[0]; i++, list++)
|
||||
for (i = 1; i <= dir->numfiles; i++, list++)
|
||||
{
|
||||
for (j = 1; j < Cmd_Argc(); j++)
|
||||
if (strstr(list->name, Cmd_Argv(j)) == NULL)
|
||||
|
@ -2590,24 +2590,16 @@ char *SV_MVDNum(char *buffer, int bufferlen, int num)
|
|||
dir = Sys_listdir(va("%s/%s", com_gamedir, sv_demoDir.string), ".mvd", SORT_BY_DATE);
|
||||
list = dir->files;
|
||||
|
||||
if (num <= 0)
|
||||
if (num > dir->numfiles || num <= 0)
|
||||
{
|
||||
Sys_freedir(dir);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
num--;
|
||||
|
||||
while (list->name[0] && num) {list++; num--;};
|
||||
|
||||
if (list->name[0])
|
||||
{
|
||||
Q_strncpyz(buffer, list->name, bufferlen);
|
||||
return list->name;
|
||||
}
|
||||
else
|
||||
buffer = NULL;
|
||||
list += num;
|
||||
|
||||
Q_strncpyz(buffer, list->name, bufferlen);
|
||||
Sys_freedir(dir);
|
||||
return buffer;
|
||||
}
|
||||
|
@ -2657,7 +2649,7 @@ void SV_MVDRemove_f (void)
|
|||
|
||||
dir = Sys_listdir(va("%s/%s", com_gamedir, sv_demoDir.string), ".mvd", SORT_BY_DATE);
|
||||
list = dir->files;
|
||||
for (i = 0;list->name[0]; list++)
|
||||
for (i = 0;i < dir->numfiles; list++)
|
||||
{
|
||||
if (strstr(list->name, ptr))
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue