> On Dec 2, 2014, at 11:40 PM, [email protected] wrote:
>
> Revision: 16468
> http://sourceforge.net/p/edk2/code/16468
> Author: qlong
> Date: 2014-12-03 07:40:32 +0000 (Wed, 03 Dec 2014)
> Log Message:
> -----------
> Code clean-up to eliminate potential "dereferenced pointer" warning.
>
> Contributed-under: TianoCore Contribution Agreement 1.0
>
> Signed-off-by: Qin Long <[email protected]>
> Reviewed-by: Guo Dong <[email protected]>
> Reviewed-by: Eric Dong <[email protected]>
>
> Modified Paths:
> --------------
>
> trunk/edk2/SecurityPkg/Library/DxeImageVerificationLib/DxeImageVerificationLib.c
>
> Modified:
> trunk/edk2/SecurityPkg/Library/DxeImageVerificationLib/DxeImageVerificationLib.c
> ===================================================================
> ---
> trunk/edk2/SecurityPkg/Library/DxeImageVerificationLib/DxeImageVerificationLib.c
> 2014-12-02 21:30:41 UTC (rev 16467)
> +++
> trunk/edk2/SecurityPkg/Library/DxeImageVerificationLib/DxeImageVerificationLib.c
> 2014-12-03 07:40:32 UTC (rev 16468)
> @@ -860,6 +860,7 @@
> HashAlg = HASHALG_MAX;
>
> ASSERT (RevocationTime != NULL);
> + ASSERT (DbxList != NULL);
>
This does not work if MDEPKG_NDEBUG is defined to fix a dereferenced pointer
issue.
Thanks,
Andrew Fish
> while ((DbxSize > 0) && (SignatureListSize >= DbxList->SignatureListSize)) {
> //
> @@ -1132,16 +1133,17 @@
> //
> DbtDataSize = 0;
> Status = gRT->GetVariable (EFI_IMAGE_SECURITY_DATABASE2,
> &gEfiImageSecurityDatabaseGuid, NULL, &DbtDataSize, NULL);
> - if (Status == EFI_BUFFER_TOO_SMALL) {
> - DbtData = (UINT8 *) AllocateZeroPool (DbtDataSize);
> - if (DbtData == NULL) {
> - goto Done;
> - }
> - Status = gRT->GetVariable (EFI_IMAGE_SECURITY_DATABASE2,
> &gEfiImageSecurityDatabaseGuid, NULL, &DbtDataSize, (VOID *) DbtData);
> - if (EFI_ERROR (Status)) {
> - goto Done;
> - }
> + if (Status != EFI_BUFFER_TOO_SMALL) {
> + goto Done;
> }
> + DbtData = (UINT8 *) AllocateZeroPool (DbtDataSize);
> + if (DbtData == NULL) {
> + goto Done;
> + }
> + Status = gRT->GetVariable (EFI_IMAGE_SECURITY_DATABASE2,
> &gEfiImageSecurityDatabaseGuid, NULL, &DbtDataSize, (VOID *) DbtData);
> + if (EFI_ERROR (Status)) {
> + goto Done;
> + }
>
> CertList = (EFI_SIGNATURE_LIST *) DbtData;
> while ((DbtDataSize > 0) && (DbtDataSize >= CertList->SignatureListSize)) {
> @@ -1229,14 +1231,15 @@
> //
> DataSize = 0;
> Status = gRT->GetVariable (EFI_IMAGE_SECURITY_DATABASE1,
> &gEfiImageSecurityDatabaseGuid, NULL, &DataSize, NULL);
> - if (Status == EFI_BUFFER_TOO_SMALL) {
> - Data = (UINT8 *) AllocateZeroPool (DataSize);
> - if (Data == NULL) {
> - return IsForbidden;
> - }
> + if (Status != EFI_BUFFER_TOO_SMALL) {
> + return IsForbidden;
> + }
> + Data = (UINT8 *) AllocateZeroPool (DataSize);
> + if (Data == NULL) {
> + return IsForbidden;
> + }
>
> - Status = gRT->GetVariable (EFI_IMAGE_SECURITY_DATABASE1,
> &gEfiImageSecurityDatabaseGuid, NULL, &DataSize, (VOID *) Data);
> - }
> + Status = gRT->GetVariable (EFI_IMAGE_SECURITY_DATABASE1,
> &gEfiImageSecurityDatabaseGuid, NULL, &DataSize, (VOID *) Data);
> if (EFI_ERROR (Status)) {
> return IsForbidden;
> }
> @@ -1254,7 +1257,7 @@
> // UINT8 Certn[];
> //
> Pkcs7GetSigners (AuthData, AuthDataSize, &CertBuffer, &BufferLength,
> &TrustedCert, &TrustedCertLength);
> - if (BufferLength == 0) {
> + if ((BufferLength == 0) || (CertBuffer == NULL)) {
> IsForbidden = TRUE;
> goto Done;
> }
>
>
> ------------------------------------------------------------------------------
> Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
> from Actuate! Instantly Supercharge Your Business Reports and Dashboards
> with Interactivity, Sharing, Native Excel Exports, App Integration & more
> Get technology previously reserved for billion-dollar corporations, FREE
> http://pubads.g.doubleclick.net/gampad/clk?id=164703151&iu=/4140/ostg.clktrk
> _______________________________________________
> edk2-commits mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/edk2-commits
------------------------------------------------------------------------------
Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration & more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=164703151&iu=/4140/ostg.clktrk
_______________________________________________
edk2-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-commits