[edk2] [PATCH] Fix a couple of build errors in BaseTools when using gcc 8

Rebecca Cran posted 1 patch 5 years, 11 months ago
Failed in applying to current master (apply log)
BaseTools/Source/C/GenVtf/GenVtf.c              | 2 +-
BaseTools/Source/C/VfrCompile/VfrUtilityLib.cpp | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
[edk2] [PATCH] Fix a couple of build errors in BaseTools when using gcc 8
Posted by Rebecca Cran 5 years, 11 months ago
---
 BaseTools/Source/C/GenVtf/GenVtf.c              | 2 +-
 BaseTools/Source/C/VfrCompile/VfrUtilityLib.cpp | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/BaseTools/Source/C/GenVtf/GenVtf.c b/BaseTools/Source/C/GenVtf/GenVtf.c
index 6f66ddc84..4d87e1c8c 100644
--- a/BaseTools/Source/C/GenVtf/GenVtf.c
+++ b/BaseTools/Source/C/GenVtf/GenVtf.c
@@ -1470,7 +1470,7 @@ Returns:
   //
   FitStartPtr = (FIT_TABLE *) RelativeAddress;
 
-  strncpy ((CHAR8 *) &FitStartPtr->CompAddress, FIT_SIGNATURE, 8);  // "_FIT_   "
+  memcpy(&FitStartPtr->CompAddress, FIT_SIGNATURE, 8); // "_FIT_   "
   assert (((VtfInfo->CompSize & 0x00FFFFFF) % 16) == 0);
   FitStartPtr->CompSize     = (VtfInfo->CompSize & 0x00FFFFFF) / 16;
   FitStartPtr->CompVersion  = MAKE_VERSION (VtfInfo->MajorVer, VtfInfo->MinorVer);
diff --git a/BaseTools/Source/C/VfrCompile/VfrUtilityLib.cpp b/BaseTools/Source/C/VfrCompile/VfrUtilityLib.cpp
index f73b70d79..73a318724 100644
--- a/BaseTools/Source/C/VfrCompile/VfrUtilityLib.cpp
+++ b/BaseTools/Source/C/VfrCompile/VfrUtilityLib.cpp
@@ -3284,7 +3284,7 @@ CVfrStringDB::GetVarStoreNameFormStringId (
   UINT8       BlockType;
   EFI_HII_STRING_PACKAGE_HDR *PkgHeader;
   
-  if (mStringFileName == '\0' ) {
+  if (*mStringFileName == '\0' ) {
     return NULL;
   }
 
-- 
2.17.0

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel
Re: [edk2] [PATCH] Fix a couple of build errors in BaseTools when using gcc 8
Posted by Rebecca Cran 5 years, 11 months ago
On 05/27/18 21:28, Rebecca Cran wrote:
> ---
>  BaseTools/Source/C/GenVtf/GenVtf.c              | 2 +-
>  BaseTools/Source/C/VfrCompile/VfrUtilityLib.cpp | 2 +-
>  2 files changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/BaseTools/Source/C/GenVtf/GenVtf.c b/BaseTools/Source/C/GenVtf/GenVtf.c
> index 6f66ddc84..4d87e1c8c 100644
> --- a/BaseTools/Source/C/GenVtf/GenVtf.c
> +++ b/BaseTools/Source/C/GenVtf/GenVtf.c
> @@ -1470,7 +1470,7 @@ Returns:
>    //
>    FitStartPtr = (FIT_TABLE *) RelativeAddress;
>  
> -  strncpy ((CHAR8 *) &FitStartPtr->CompAddress, FIT_SIGNATURE, 8);  // "_FIT_   "
> +  memcpy(&FitStartPtr->CompAddress, FIT_SIGNATURE, 8); // "_FIT_   "
>    assert (((VtfInfo->CompSize & 0x00FFFFFF) % 16) == 0);
>    FitStartPtr->CompSize     = (VtfInfo->CompSize & 0x00FFFFFF) / 16;
>    FitStartPtr->CompVersion  = MAKE_VERSION (VtfInfo->MajorVer, VtfInfo->MinorVer);
> diff --git a/BaseTools/Source/C/VfrCompile/VfrUtilityLib.cpp b/BaseTools/Source/C/VfrCompile/VfrUtilityLib.cpp
> index f73b70d79..73a318724 100644
> --- a/BaseTools/Source/C/VfrCompile/VfrUtilityLib.cpp
> +++ b/BaseTools/Source/C/VfrCompile/VfrUtilityLib.cpp
> @@ -3284,7 +3284,7 @@ CVfrStringDB::GetVarStoreNameFormStringId (
>    UINT8       BlockType;
>    EFI_HII_STRING_PACKAGE_HDR *PkgHeader;
>    
> -  if (mStringFileName == '\0' ) {
> +  if (*mStringFileName == '\0' ) {
>      return NULL;
>    }
>  
> 

The change from strncpy to memcpy is because from the length argument it
appears that the contents of "CompAddress" shouldn't be NUL-terminated.

The change to the comparison is because mStringFileName is a pointer,
and comparing it against '\0' doesn't make sense. It seems the author
meant for the first character to be compared against NUL.

-- 
Rebecca Cran
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel
Re: [edk2] [PATCH] Fix a couple of build errors in BaseTools when using gcc 8
Posted by Rebecca Cran 5 years, 11 months ago
On 05/27/18 21:34, Rebecca Cran wrote:

> The change from strncpy to memcpy is because from the length argument it
> appears that the contents of "CompAddress" shouldn't be NUL-terminated.
> 
> The change to the comparison is because mStringFileName is a pointer,
> and comparing it against '\0' doesn't make sense. It seems the author
> meant for the first character to be compared against NUL.
> 

Sorry, please ignore this: I was working against a tree that was last
updated in 2015, so this patch isn't applicable.

-- 
Rebecca Cran
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel