Author: weiden Date: Sun Oct 15 16:41:48 2006 New Revision: 24520
URL: http://svn.reactos.org/svn/reactos?rev=24520&view=rev Log: Fix buffer overflow in KiGetCpuVendor, thanks to Michael Fritscher for reporting this bug.
Modified: trunk/reactos/ntoskrnl/ke/i386/cpu.c
Modified: trunk/reactos/ntoskrnl/ke/i386/cpu.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ke/i386/cpu.c?rev=... ============================================================================== --- trunk/reactos/ntoskrnl/ke/i386/cpu.c (original) +++ trunk/reactos/ntoskrnl/ke/i386/cpu.c Sun Oct 15 16:41:48 2006 @@ -183,6 +183,7 @@ { PKPRCB Prcb = KeGetCurrentPrcb(); ULONG Vendor[5]; + ULONG Temp;
/* Assume no Vendor ID and fail if no CPUID Support. */ Prcb->VendorString[0] = 0; @@ -193,13 +194,13 @@ Vendor[4] = 0;
/* Re-arrange vendor string */ - Vendor[5] = Vendor[2]; + Temp = Vendor[2]; Vendor[2] = Vendor[3]; - Vendor[3] = Vendor[5]; + Vendor[3] = Temp;
/* Copy it to the PRCB and null-terminate it again */ RtlCopyMemory(Prcb->VendorString, - &Vendor[1], + &Vendor[0], sizeof(Prcb->VendorString) - sizeof(CHAR)); Prcb->VendorString[sizeof(Prcb->VendorString) - sizeof(CHAR)] = ANSI_NULL;