Acidanthera UEFI Development Kit based on EDK II edk2-stable202311
Go to file
Ruiyu Ni b659b503fa MdeModulePkg/UsbBus: Fix system hang when failed to uninstall UsbIo
When "reconnect -r" is typed in shell, UsbFreeInterface() is called
to uninstall the UsbIo and DevicePath. But When a UsbIo is opened
by a driver and that driver rejects to close the UsbIo in Stop(),
the uninstall doesn't succeed.
But UsbFreeInterface () frees the DevicePath memory without check
whether the uninstall succeeds.
It leads to the DXE core database contain a DevicePath instance but
that instance's memory is freed.
Assertion happens when someone calls InstallProtocol(DevicePath)
because the InstallProtocol() checks all DevicePath instance to
find whether the same one exits in database.

We haven't seen any USB device driver which rejects to close UsbIo
in Stop(), but it's very likely.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ruiyu Ni <ruiyu.ni@intel.com>
Reviewed-by: Feng Tian <feng.tian@intel.com>
Reviewed-by: Star Zeng <star.zeng@intel.com>
Cc: Hao A Wu <hao.a.wu@intel.com>
2017-06-02 12:59:27 +08:00
AppPkg AppPkg/Applications/Python/PyMod-2.7.2: Replace non-ascii characters 2017-04-10 08:34:08 +08:00
ArmPkg ArmPkg: Add CNTHCTL_EL2 support functions 2017-05-22 15:19:34 +01:00
ArmPlatformPkg ArmPlatformPkg: Timer access for non-secure EL1/0 2017-05-22 15:20:04 +01:00
ArmVirtPkg ArmPlatformPkg,ArmVirtPkg: delete redundant PL031 functions 2017-05-10 14:28:37 +01:00
BaseTools BaseTools/GCC ARM/AARCH64: Force disable PIE 2017-06-01 08:30:23 +00:00
BeagleBoardPkg BeagleBoardPkg: add missing BootLogoLib resolution 2017-03-31 11:43:22 +01:00
Conf EDK II: Add .gitignore 2014-10-14 16:08:15 +00:00
CorebootModulePkg CorebootPayloadPkg/CbSupportPei: Fix the memory map issue 2016-11-17 14:49:11 -08:00
CorebootPayloadPkg CorebootPayloadPkg: Use EfiEventGroupSignal from UefiLib 2017-01-20 15:55:41 +08:00
CryptoPkg CryptoPkg/BaseCryptLib: Add NULL pointer checks in DH and P7Verify 2017-05-22 08:57:48 +08:00
DuetPkg DuetPkg/FvbRuntimeService: correct NumOfLba vararg type in EraseBlocks() 2017-05-29 14:41:42 +02:00
EdkCompatibilityPkg EdkCompatibilityPkg: Fix some typos of "according" 2017-02-08 14:49:21 +08:00
EdkShellBinPkg */Contributions.txt: Update example email address 2015-02-03 17:29:14 +00:00
EdkShellPkg */Contributions.txt: Update example email address 2015-02-03 17:29:14 +00:00
EmbeddedPkg EmbeddedPkg: import EfiTimeBaseLib (as TimeBaseLib) 2017-05-10 14:28:14 +01:00
EmulatorPkg EmulatorPkg/FvbServicesRuntimeDxe: correct NumOfLba vararg type in EraseBlocks() 2017-05-18 23:38:45 +02:00
FatBinPkg FatBinPkg: New EnhancedFatDxe binaries for IA32, X64, EBC and IPF 2017-04-07 13:14:20 +08:00
FatPkg FatPkg: Refine casting expression result to bigger size 2017-03-06 14:33:21 +08:00
IntelFrameworkModulePkg IntelFrameworkModulePkg/IdeBusDxe: Fix undefined behavior in signed left shift 2017-04-13 08:59:24 +08:00
IntelFrameworkPkg IntelFrameworkPkg/UefiLib: Avoid mis-calculate of graphic console size 2017-04-14 13:16:12 +08:00
IntelFsp2Pkg IntelFsp2Pkg: Convert files to CRLF line ending 2017-04-06 15:42:56 +08:00
IntelFsp2WrapperPkg IntelFsp2WrapperPkg: Convert files to CRLF line ending 2017-04-06 15:43:08 +08:00
IntelFspPkg IntelFspPkg: Fix typos in comments 2016-10-24 09:26:28 +08:00
IntelFspWrapperPkg IntelFspWrapperPkg: Refine casting expression result to bigger size 2017-03-06 14:33:23 +08:00
IntelSiliconPkg IntelSiliconPkg: Fix format issues 2016-12-20 10:51:16 +08:00
MdeModulePkg MdeModulePkg/UsbBus: Fix system hang when failed to uninstall UsbIo 2017-06-02 12:59:27 +08:00
MdePkg MdePkg/BasePrintLib: Avoid reading content beyond the format string 2017-06-01 08:46:31 +08:00
NetworkPkg NetworkPkg/IScsiDxe: Switch IP4 configuration policy to Static before DHCP 2017-05-11 10:52:50 +08:00
Nt32Pkg Nt32Pkg/FvbServicesRuntimeDxe: correct NumOfLba vararg type in EraseBlocks() 2017-05-29 14:42:12 +02:00
Omap35xxPkg ArmPkg: remove unused PcdArmUncachedMemoryMask PCD 2017-02-27 16:18:29 +00:00
OptionRomPkg OptionRomPkg: Fix calling convention issue for UndiRuntiumeDxe driver. 2017-04-24 10:10:45 +08:00
OvmfPkg OvmfPkg: make the 4MB flash size the default (again) 2017-05-23 17:46:11 +02:00
PcAtChipsetPkg PcAtChipsetPkg/SerialIoLib: Remove negative value shift 2017-05-19 12:12:06 -07:00
PerformancePkg PerformancePkg Dp_App: Handle "/" separator in debug path for GCC build 2017-03-16 11:08:44 +08:00
QuarkPlatformPkg QuarkPlatformPkg/SpiFvbServices: correct NumOfLba vararg type in EraseBlocks() 2017-05-29 14:42:36 +02:00
QuarkSocPkg QuarkSocPkg: Remove use of IntelFrameworkModulePkg legacy libs 2016-12-02 15:59:19 +00:00
SecurityPkg SecurityPkg: Add TCG Spec info to TCG related modules 2017-05-11 16:20:05 +08:00
ShellBinPkg ShellBinPkg: Ia32/X64 Shell binary update. 2017-05-12 14:51:10 +08:00
ShellPkg ShellPkg/UefiShellLib: Avoid reading undefined content before string 2017-05-24 13:17:51 +08:00
SignedCapsulePkg SignedCapsulePkg: Convert files to CRLF line ending 2017-04-06 15:43:14 +08:00
SourceLevelDebugPkg PeCoffGetEntryPointLib: Fix spelling issue 2017-04-26 08:58:18 +08:00
StdLib StdLib: GCC 6 build fixes 2017-04-28 17:06:59 +01:00
StdLibPrivateInternalFiles StdLib: Clarify and improve comments. 2016-01-06 00:31:42 +00:00
UefiCpuPkg UefiCpuPkg/MpInitLib: Force to enable X2APIC if CPU number > 255 2017-05-27 13:30:04 +08:00
UnixPkg UnixPkg: Remove UnixPkg files (It is replaced by EmulatorPkg) 2013-07-29 21:09:55 +00:00
Vlv2DeviceRefCodePkg Vlv2DeviceRefCodePkg: Fixed thermal issue. 2017-02-08 15:32:39 +08:00
Vlv2TbltDevicePkg Vlv2TbltDevicePkg/FvbRuntimeDxe: correct NumOfLba vararg type in EraseBlocks() 2017-05-26 14:41:13 +08:00
.gitignore edk2: Add .DS_Store to .gitignore for macOS 2017-05-19 15:14:34 -07:00
BuildNotes2.txt BaseTools: Updated BuildNotes URLs 2016-03-25 09:46:44 +08:00
Edk2Setup.bat Edk2Setup.bat: Fix build errors from VS tools PREFIX ENV missing 2016-11-05 09:10:58 +08:00
Maintainers.txt Maintainers.txt: Update maintainers for DuetPkg & Nt32Pkg 2017-06-01 09:01:49 +08:00
edksetup.bat edksetup.bat: make sure BASE_TOOLS_PATH be set correctly 2016-10-26 13:45:45 +08:00
edksetup.sh edksetup.sh, BaseTools/BuildEnv: add --reconfig support 2016-10-24 13:53:16 +01:00