Merge tristan's patch:

while compiling with GCC I have found two issues in PcatPciRootBridge.c:

* when vendor id is read, the code read 2 * 2 bytes into a buffer of 2 bytes.
  The 'buffer overflow' crashed efi.

* when pci configuration header is read, the code read by chunks of 4 bytes,
  but the buffer is aligned on 2 bytes.  According to the compilation options,
  the reads may fail (and the failure is ignored).


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7602 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
klu2 2009-02-23 14:05:41 +00:00
parent dae93068cb
commit 1d0cab2ec2
1 changed files with 3 additions and 3 deletions

View File

@ -183,7 +183,7 @@ Returns:
&PrivateData->Io,
EfiPciWidthUint16,
Address,
sizeof (VendorId),
sizeof (VendorId) / sizeof (UINT16),
&VendorId
);
if ((EFI_ERROR (Status)) || ((VendorId == 0xffff) && (Function == 0))) {
@ -205,9 +205,9 @@ Returns:
//
Status = PrivateData->Io.Pci.Read (
&PrivateData->Io,
EfiPciWidthUint32,
EfiPciWidthUint16,
Address,
sizeof (PciConfigurationHeader) / sizeof (UINT32),
sizeof (PciConfigurationHeader) / sizeof (UINT16),
&PciConfigurationHeader
);
if (EFI_ERROR (Status)) {