mirror of
https://github.com/reactos/reactos.git
synced 2024-12-28 18:15:11 +00:00
Fix bug which causes a crash in RtlpCheckFileNameExtension() if the file doesn't have an extension.
svn path=/trunk/; revision=4468
This commit is contained in:
parent
1d1253f734
commit
1fb9958a68
1 changed files with 24 additions and 21 deletions
|
@ -16,7 +16,7 @@
|
||||||
* along with this program; if not, write to the Free Software
|
* along with this program; if not, write to the Free Software
|
||||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
*/
|
*/
|
||||||
/* $Id: main.c,v 1.149 2003/03/22 22:32:17 ekohl Exp $
|
/* $Id: main.c,v 1.150 2003/04/01 16:35:22 ekohl Exp $
|
||||||
*
|
*
|
||||||
* PROJECT: ReactOS kernel
|
* PROJECT: ReactOS kernel
|
||||||
* FILE: ntoskrnl/ke/main.c
|
* FILE: ntoskrnl/ke/main.c
|
||||||
|
@ -85,23 +85,24 @@ static BOOLEAN
|
||||||
RtlpCheckFileNameExtension(PCHAR FileName,
|
RtlpCheckFileNameExtension(PCHAR FileName,
|
||||||
PCHAR Extension)
|
PCHAR Extension)
|
||||||
{
|
{
|
||||||
PCHAR Ext;
|
PCHAR Ext;
|
||||||
|
|
||||||
Ext = strrchr(FileName, '.');
|
Ext = strrchr(FileName, '.');
|
||||||
if ((Extension == NULL) || (*Extension == 0))
|
if (Ext == NULL)
|
||||||
{
|
{
|
||||||
if (Ext == NULL)
|
if ((Extension == NULL) || (*Extension == 0))
|
||||||
return TRUE;
|
return TRUE;
|
||||||
else
|
else
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
if (*Extension != '.')
|
|
||||||
Ext++;
|
if (*Extension != '.')
|
||||||
|
Ext++;
|
||||||
if (_stricmp(Ext, Extension) == 0)
|
|
||||||
return TRUE;
|
if (_stricmp(Ext, Extension) == 0)
|
||||||
else
|
return TRUE;
|
||||||
return FALSE;
|
else
|
||||||
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -479,12 +480,14 @@ ExpInitializeExecutive(VOID)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Pass 2: import system registry chunk */
|
/* Pass 2: import system hive registry chunk */
|
||||||
SetupBoot = TRUE;
|
SetupBoot = TRUE;
|
||||||
for (i = 1; i < KeLoaderBlock.ModsCount; i++)
|
for (i = 1; i < KeLoaderBlock.ModsCount; i++)
|
||||||
{
|
{
|
||||||
start = KeLoaderModules[i].ModStart;
|
start = KeLoaderModules[i].ModStart;
|
||||||
length = KeLoaderModules[i].ModEnd - start;
|
length = KeLoaderModules[i].ModEnd - start;
|
||||||
|
|
||||||
|
DPRINT("Module: '%s'\n", (PCHAR)KeLoaderModules[i].String);
|
||||||
name = strrchr((PCHAR)KeLoaderModules[i].String, '\\');
|
name = strrchr((PCHAR)KeLoaderModules[i].String, '\\');
|
||||||
if (name == NULL)
|
if (name == NULL)
|
||||||
{
|
{
|
||||||
|
@ -498,13 +501,13 @@ ExpInitializeExecutive(VOID)
|
||||||
if (!_stricmp (name, "system") ||
|
if (!_stricmp (name, "system") ||
|
||||||
!_stricmp (name, "system.hiv"))
|
!_stricmp (name, "system.hiv"))
|
||||||
{
|
{
|
||||||
CPRINT("Process 'system' registry chunk at %08lx\n", start);
|
CPRINT("Process system hive registry chunk at %08lx\n", start);
|
||||||
SetupBoot = FALSE;
|
SetupBoot = FALSE;
|
||||||
CmImportSystemHive((PCHAR)start, length);
|
CmImportSystemHive((PCHAR)start, length);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Pass 3: import hardware registry chunk */
|
/* Pass 3: import hardware hive registry chunk */
|
||||||
for (i = 1; i < KeLoaderBlock.ModsCount; i++)
|
for (i = 1; i < KeLoaderBlock.ModsCount; i++)
|
||||||
{
|
{
|
||||||
start = KeLoaderModules[i].ModStart;
|
start = KeLoaderModules[i].ModStart;
|
||||||
|
@ -513,7 +516,7 @@ ExpInitializeExecutive(VOID)
|
||||||
if (!_stricmp (name, "hardware") ||
|
if (!_stricmp (name, "hardware") ||
|
||||||
!_stricmp (name, "hardware.hiv"))
|
!_stricmp (name, "hardware.hiv"))
|
||||||
{
|
{
|
||||||
CPRINT("Process 'hardware' registry chunk at %08lx\n", start);
|
CPRINT("Process hardware hive registry chunk at %08lx\n", start);
|
||||||
CmImportHardwareHive((PCHAR)start, length);
|
CmImportHardwareHive((PCHAR)start, length);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue