* [edk2-devel] [PATCH v2 0/2] MdeModulePkg/Bus/Pci/UhciDxe: Fix issues pointed by Coverity @ 2023-08-16 5:38 Ranbir Singh 2023-08-16 5:38 ` [edk2-devel] [PATCH v2 1/2] MdeModulePkg/Bus/Pci/UhciDxe: Fix BAD_SHIFT Coverity issue Ranbir Singh ` (2 more replies) 0 siblings, 3 replies; 5+ messages in thread From: Ranbir Singh @ 2023-08-16 5:38 UTC (permalink / raw) To: devel, rsingh v1 -> v2: - Update patch wrt BAD_SHIFT changes as per review comments Ranbir Singh (2): MdeModulePkg/Bus/Pci/UhciDxe: Fix BAD_SHIFT Coverity issue MdeModulePkg/Bus/Pci/UhciDxe: Fix FORWARD_NULL Coverity issues MdeModulePkg/Bus/Pci/UhciDxe/UhciSched.c | 10 +++++++++- MdeModulePkg/Bus/Pci/UhciDxe/UsbHcMem.c | 9 +++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) -- 2.34.1 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#107788): https://edk2.groups.io/g/devel/message/107788 Mute This Topic: https://groups.io/mt/100774223/7686176 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io] -=-=-=-=-=-=-=-=-=-=-=- ^ permalink raw reply [flat|nested] 5+ messages in thread
* [edk2-devel] [PATCH v2 1/2] MdeModulePkg/Bus/Pci/UhciDxe: Fix BAD_SHIFT Coverity issue 2023-08-16 5:38 [edk2-devel] [PATCH v2 0/2] MdeModulePkg/Bus/Pci/UhciDxe: Fix issues pointed by Coverity Ranbir Singh @ 2023-08-16 5:38 ` Ranbir Singh 2023-09-20 5:39 ` Wu, Hao A 2023-08-16 5:38 ` [edk2-devel] [PATCH v2 2/2] MdeModulePkg/Bus/Pci/UhciDxe: Fix FORWARD_NULL Coverity issues Ranbir Singh 2023-09-22 5:25 ` [edk2-devel] [PATCH v2 0/2] MdeModulePkg/Bus/Pci/UhciDxe: Fix issues pointed by Coverity Wu, Hao A 2 siblings, 1 reply; 5+ messages in thread From: Ranbir Singh @ 2023-08-16 5:38 UTC (permalink / raw) To: devel, rsingh; +Cc: Hao A Wu, Ray Ni, Veeresh Sangolli From: Ranbir Singh <Ranbir.Singh3@Dell.com> 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> --- MdeModulePkg/Bus/Pci/UhciDxe/UhciSched.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/MdeModulePkg/Bus/Pci/UhciDxe/UhciSched.c b/MdeModulePkg/Bus/Pci/UhciDxe/UhciSched.c index c08f9496969b..408e7d5ab7f3 100644 --- a/MdeModulePkg/Bus/Pci/UhciDxe/UhciSched.c +++ b/MdeModulePkg/Bus/Pci/UhciDxe/UhciSched.c @@ -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. @param Interval The poll rate to convert. @@ -214,6 +214,14 @@ UhciConvertPollRate ( 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 // -- 2.34.1 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#107789): https://edk2.groups.io/g/devel/message/107789 Mute This Topic: https://groups.io/mt/100774224/7686176 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io] -=-=-=-=-=-=-=-=-=-=-=- ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [edk2-devel] [PATCH v2 1/2] MdeModulePkg/Bus/Pci/UhciDxe: Fix BAD_SHIFT Coverity issue 2023-08-16 5:38 ` [edk2-devel] [PATCH v2 1/2] MdeModulePkg/Bus/Pci/UhciDxe: Fix BAD_SHIFT Coverity issue Ranbir Singh @ 2023-09-20 5:39 ` Wu, Hao A 0 siblings, 0 replies; 5+ messages in thread From: Wu, Hao A @ 2023-09-20 5:39 UTC (permalink / raw) To: Ranbir Singh, devel@edk2.groups.io; +Cc: Ni, Ray, Veeresh Sangolli Reviewed-by: Hao A Wu <hao.a.wu@intel.com> Best Regards, Hao Wu > -----Original Message----- > From: Ranbir Singh <rsingh@ventanamicro.com> > Sent: Wednesday, August 16, 2023 1:38 PM > To: devel@edk2.groups.io; rsingh@ventanamicro.com > Cc: Wu, Hao A <hao.a.wu@intel.com>; Ni, Ray <ray.ni@intel.com>; Veeresh > Sangolli <veeresh.sangolli@dellteam.com> > Subject: [PATCH v2 1/2] MdeModulePkg/Bus/Pci/UhciDxe: Fix BAD_SHIFT > Coverity issue > > From: Ranbir Singh <Ranbir.Singh3@Dell.com> > > 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> > --- > MdeModulePkg/Bus/Pci/UhciDxe/UhciSched.c | 10 +++++++++- > 1 file changed, 9 insertions(+), 1 deletion(-) > > diff --git a/MdeModulePkg/Bus/Pci/UhciDxe/UhciSched.c > b/MdeModulePkg/Bus/Pci/UhciDxe/UhciSched.c > index c08f9496969b..408e7d5ab7f3 100644 > --- a/MdeModulePkg/Bus/Pci/UhciDxe/UhciSched.c > +++ b/MdeModulePkg/Bus/Pci/UhciDxe/UhciSched.c > @@ -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. > > > > @param Interval The poll rate to convert. > > @@ -214,6 +214,14 @@ UhciConvertPollRate ( > > > 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 > > // > > -- > 2.34.1 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#108896): https://edk2.groups.io/g/devel/message/108896 Mute This Topic: https://groups.io/mt/100774224/7686176 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io] -=-=-=-=-=-=-=-=-=-=-=- ^ permalink raw reply [flat|nested] 5+ messages in thread
* [edk2-devel] [PATCH v2 2/2] MdeModulePkg/Bus/Pci/UhciDxe: Fix FORWARD_NULL Coverity issues 2023-08-16 5:38 [edk2-devel] [PATCH v2 0/2] MdeModulePkg/Bus/Pci/UhciDxe: Fix issues pointed by Coverity Ranbir Singh 2023-08-16 5:38 ` [edk2-devel] [PATCH v2 1/2] MdeModulePkg/Bus/Pci/UhciDxe: Fix BAD_SHIFT Coverity issue Ranbir Singh @ 2023-08-16 5:38 ` Ranbir Singh 2023-09-22 5:25 ` [edk2-devel] [PATCH v2 0/2] MdeModulePkg/Bus/Pci/UhciDxe: Fix issues pointed by Coverity Wu, Hao A 2 siblings, 0 replies; 5+ messages in thread From: Ranbir Singh @ 2023-08-16 5:38 UTC (permalink / raw) To: devel, rsingh; +Cc: Hao A Wu, Ray Ni, Veeresh Sangolli From: Ranbir Singh <Ranbir.Singh3@Dell.com> The function UsbHcGetPciAddressForHostMem has ASSERT ((Block != NULL)); and and the function UsbHcFreeMem has ASSERT (Block != NULL); statement after for loop, but these are applicable only in DEBUG mode. In RELEASE mode, if for whatever reasons there is no match inside for loop and the loop exits because of Block != NULL; condition, then there is no "Block" NULL pointer check afterwards and the code proceeds to do dereferencing "Block" which will lead to CRASH. Hence, for safety add NULL pointer checks always. 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> --- MdeModulePkg/Bus/Pci/UhciDxe/UsbHcMem.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/MdeModulePkg/Bus/Pci/UhciDxe/UsbHcMem.c b/MdeModulePkg/Bus/Pci/UhciDxe/UsbHcMem.c index c3d46f60bed5..3794f888e132 100644 --- a/MdeModulePkg/Bus/Pci/UhciDxe/UsbHcMem.c +++ b/MdeModulePkg/Bus/Pci/UhciDxe/UsbHcMem.c @@ -250,6 +250,11 @@ UsbHcGetPciAddressForHostMem ( } ASSERT ((Block != NULL)); + + if (Block == NULL) { + return 0; + } + // // calculate the pci memory address for host memory address. // @@ -536,6 +541,10 @@ UsbHcFreeMem ( // ASSERT (Block != NULL); + if (Block == NULL) { + return; + } + // // Release the current memory block if it is empty and not the head // -- 2.34.1 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#107790): https://edk2.groups.io/g/devel/message/107790 Mute This Topic: https://groups.io/mt/100774225/7686176 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io] -=-=-=-=-=-=-=-=-=-=-=- ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [edk2-devel] [PATCH v2 0/2] MdeModulePkg/Bus/Pci/UhciDxe: Fix issues pointed by Coverity 2023-08-16 5:38 [edk2-devel] [PATCH v2 0/2] MdeModulePkg/Bus/Pci/UhciDxe: Fix issues pointed by Coverity Ranbir Singh 2023-08-16 5:38 ` [edk2-devel] [PATCH v2 1/2] MdeModulePkg/Bus/Pci/UhciDxe: Fix BAD_SHIFT Coverity issue Ranbir Singh 2023-08-16 5:38 ` [edk2-devel] [PATCH v2 2/2] MdeModulePkg/Bus/Pci/UhciDxe: Fix FORWARD_NULL Coverity issues Ranbir Singh @ 2023-09-22 5:25 ` Wu, Hao A 2 siblings, 0 replies; 5+ messages in thread From: Wu, Hao A @ 2023-09-22 5:25 UTC (permalink / raw) To: devel@edk2.groups.io, rsingh@ventanamicro.com Series pushed via: PR - https://github.com/tianocore/edk2/pull/4856 Commits: https://github.com/tianocore/edk2/commit/e9f5d8c0e066da55b3f79dfdbf4df5fc97ca5916 https://github.com/tianocore/edk2/commit/28a267af4024c329e58121ccd9bf5f4f7aabc0f4 Best Regards, Hao Wu > -----Original Message----- > From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Ranbir > Singh > Sent: Wednesday, August 16, 2023 1:38 PM > To: devel@edk2.groups.io; rsingh@ventanamicro.com > Subject: [edk2-devel] [PATCH v2 0/2] MdeModulePkg/Bus/Pci/UhciDxe: Fix > issues pointed by Coverity > > v1 -> v2: > - Update patch wrt BAD_SHIFT changes as per review comments > > Ranbir Singh (2): > MdeModulePkg/Bus/Pci/UhciDxe: Fix BAD_SHIFT Coverity issue > MdeModulePkg/Bus/Pci/UhciDxe: Fix FORWARD_NULL Coverity issues > > MdeModulePkg/Bus/Pci/UhciDxe/UhciSched.c | 10 +++++++++- > MdeModulePkg/Bus/Pci/UhciDxe/UsbHcMem.c | 9 +++++++++ > 2 files changed, 18 insertions(+), 1 deletion(-) > > -- > 2.34.1 > > > > > -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#108977): https://edk2.groups.io/g/devel/message/108977 Mute This Topic: https://groups.io/mt/100774223/7686176 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io] -=-=-=-=-=-=-=-=-=-=-=- ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2023-09-22 5:25 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2023-08-16 5:38 [edk2-devel] [PATCH v2 0/2] MdeModulePkg/Bus/Pci/UhciDxe: Fix issues pointed by Coverity Ranbir Singh 2023-08-16 5:38 ` [edk2-devel] [PATCH v2 1/2] MdeModulePkg/Bus/Pci/UhciDxe: Fix BAD_SHIFT Coverity issue Ranbir Singh 2023-09-20 5:39 ` Wu, Hao A 2023-08-16 5:38 ` [edk2-devel] [PATCH v2 2/2] MdeModulePkg/Bus/Pci/UhciDxe: Fix FORWARD_NULL Coverity issues Ranbir Singh 2023-09-22 5:25 ` [edk2-devel] [PATCH v2 0/2] MdeModulePkg/Bus/Pci/UhciDxe: Fix issues pointed by Coverity Wu, Hao A
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox