mirror of
https://github.com/acidanthera/audk.git
synced 2025-07-27 15:44:04 +02:00
MdeModulePkg/Bus/Pci/UhciDxe: Fix BAD_SHIFT Coverity issue
The function UhciConvertPollRate has a check ASSERT (Interval != 0); but this comes into play only in DEBUG mode. In Release mode, there is no handling if the Interval parameter value is ZERO. To avoid shifting by a negative amount later in the code flow in this undesirable case, it is better to handle it as well by treating it same as if 1 is sent. REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4211 Cc: Hao A Wu <hao.a.wu@intel.com> Cc: Ray Ni <ray.ni@intel.com> Co-authored-by: Veeresh Sangolli <veeresh.sangolli@dellteam.com> Signed-off-by: Ranbir Singh <Ranbir.Singh3@Dell.com> Signed-off-by: Ranbir Singh <rsingh@ventanamicro.com> Reviewed-by: Hao A Wu <hao.a.wu@intel.com>
This commit is contained in:
parent
f67e1934d9
commit
e9f5d8c0e0
@ -197,7 +197,7 @@ UhciDestoryFrameList (
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Convert the poll rate to the maxium 2^n that is smaller
|
Convert the poll rate to the maximum 2^n that is smaller
|
||||||
than Interval.
|
than Interval.
|
||||||
|
|
||||||
@param Interval The poll rate to convert.
|
@param Interval The poll rate to convert.
|
||||||
@ -214,6 +214,14 @@ UhciConvertPollRate (
|
|||||||
|
|
||||||
ASSERT (Interval != 0);
|
ASSERT (Interval != 0);
|
||||||
|
|
||||||
|
//
|
||||||
|
// To safeguard RELEASE mode wherein ASSERT is effectively not there,
|
||||||
|
// if inadvertently Interval is still 0 here, treat it the same as 1.
|
||||||
|
//
|
||||||
|
if (Interval == 0) {
|
||||||
|
Interval = 1;
|
||||||
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Find the index (1 based) of the highest non-zero bit
|
// Find the index (1 based) of the highest non-zero bit
|
||||||
//
|
//
|
||||||
|
Loading…
x
Reference in New Issue
Block a user