mirror of https://github.com/acidanthera/audk.git
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:
parent
dae93068cb
commit
1d0cab2ec2
|
@ -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)) {
|
||||
|
|
Loading…
Reference in New Issue