* [PATCH] MdeModulePkg/UdfDxe: Resolve potential NULL pointer dereference
@ 2017-09-26 1:36 Hao Wu
2017-09-26 2:25 ` Paulo Alcantara
0 siblings, 1 reply; 2+ messages in thread
From: Hao Wu @ 2017-09-26 1:36 UTC (permalink / raw)
To: edk2-devel; +Cc: Hao Wu, Paulo Alcantara, Ruiyu Ni, Star Zeng, Eric Dong
Within function GetAllocationDescriptorLsn():
The call to GetPdFromLongAd() may return NULL and it will be later
dereferenced in GetShortAdLsn().
This commit adds ASSERT to resolve the potential NULL pointer
dereference.
Cc: Paulo Alcantara <pcacjr@zytor.com>
Cc: Ruiyu Ni <ruiyu.ni@intel.com>
Cc: Star Zeng <star.zeng@intel.com>
Cc: Eric Dong <eric.dong@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
---
MdeModulePkg/Universal/Disk/UdfDxe/FileSystemOperations.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/MdeModulePkg/Universal/Disk/UdfDxe/FileSystemOperations.c b/MdeModulePkg/Universal/Disk/UdfDxe/FileSystemOperations.c
index b336ffc553..e048d95d31 100644
--- a/MdeModulePkg/Universal/Disk/UdfDxe/FileSystemOperations.c
+++ b/MdeModulePkg/Universal/Disk/UdfDxe/FileSystemOperations.c
@@ -748,12 +748,17 @@ GetAllocationDescriptorLsn (
IN VOID *Ad
)
{
+ UDF_PARTITION_DESCRIPTOR *PartitionDesc;
+
if (RecordingFlags == LongAdsSequence) {
return GetLongAdLsn (Volume, (UDF_LONG_ALLOCATION_DESCRIPTOR *)Ad);
} else if (RecordingFlags == ShortAdsSequence) {
+ PartitionDesc = GetPdFromLongAd (Volume, ParentIcb);
+ ASSERT (PartitionDesc != NULL);
+
return GetShortAdLsn (
Volume,
- GetPdFromLongAd (Volume, ParentIcb),
+ PartitionDesc,
(UDF_SHORT_ALLOCATION_DESCRIPTOR *)Ad
);
}
--
2.12.0.windows.1
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH] MdeModulePkg/UdfDxe: Resolve potential NULL pointer dereference
2017-09-26 1:36 [PATCH] MdeModulePkg/UdfDxe: Resolve potential NULL pointer dereference Hao Wu
@ 2017-09-26 2:25 ` Paulo Alcantara
0 siblings, 0 replies; 2+ messages in thread
From: Paulo Alcantara @ 2017-09-26 2:25 UTC (permalink / raw)
To: Hao Wu, edk2-devel; +Cc: Ruiyu Ni, Star Zeng, Eric Dong
On September 25, 2017 10:36:48 PM GMT-03:00, Hao Wu <hao.a.wu@intel.com> wrote:
>Within function GetAllocationDescriptorLsn():
>
>The call to GetPdFromLongAd() may return NULL and it will be later
>dereferenced in GetShortAdLsn().
>
>This commit adds ASSERT to resolve the potential NULL pointer
>dereference.
>
>Cc: Paulo Alcantara <pcacjr@zytor.com>
>Cc: Ruiyu Ni <ruiyu.ni@intel.com>
>Cc: Star Zeng <star.zeng@intel.com>
>Cc: Eric Dong <eric.dong@intel.com>
>Contributed-under: TianoCore Contribution Agreement 1.1
>Signed-off-by: Hao Wu <hao.a.wu@intel.com>
>---
> MdeModulePkg/Universal/Disk/UdfDxe/FileSystemOperations.c | 7 ++++++-
> 1 file changed, 6 insertions(+), 1 deletion(-)
>
>diff --git a/MdeModulePkg/Universal/Disk/UdfDxe/FileSystemOperations.c
>b/MdeModulePkg/Universal/Disk/UdfDxe/FileSystemOperations.c
>index b336ffc553..e048d95d31 100644
>--- a/MdeModulePkg/Universal/Disk/UdfDxe/FileSystemOperations.c
>+++ b/MdeModulePkg/Universal/Disk/UdfDxe/FileSystemOperations.c
>@@ -748,12 +748,17 @@ GetAllocationDescriptorLsn (
> IN VOID *Ad
> )
> {
>+ UDF_PARTITION_DESCRIPTOR *PartitionDesc;
>+
> if (RecordingFlags == LongAdsSequence) {
> return GetLongAdLsn (Volume, (UDF_LONG_ALLOCATION_DESCRIPTOR *)Ad);
> } else if (RecordingFlags == ShortAdsSequence) {
>+ PartitionDesc = GetPdFromLongAd (Volume, ParentIcb);
>+ ASSERT (PartitionDesc != NULL);
>+
> return GetShortAdLsn (
> Volume,
>- GetPdFromLongAd (Volume, ParentIcb),
>+ PartitionDesc,
> (UDF_SHORT_ALLOCATION_DESCRIPTOR *)Ad
> );
> }
Reviewed-by: Paulo Alcantara <pcacjr@zytor.com>
Thanks!
Paulo
--
Sent from my Android device with K-9 Mail. Please excuse my brevity.
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2017-09-26 2:24 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-09-26 1:36 [PATCH] MdeModulePkg/UdfDxe: Resolve potential NULL pointer dereference Hao Wu
2017-09-26 2:25 ` Paulo Alcantara
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox