[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH xenvif 2/2] Fix build with later WDKs



From: Owen Smith <owen.smith@xxxxxxxxxx>

- Adds alias for GetProjectInfoForReference target to version.vcxproj
    Later kits seemed to have renamed the build target, and will fail without
    this alias target.
- Adds "/fd sha256" to signtool command line
    WDK 20344 and later require binaries signed with a SHA256 file digest, or
    the build outputs are deleted
- Disables warning 4061 - switch statement on enum types need to have a case
    for all values of the enumeration

Signed-off-by: Owen Smith <owen.smith@xxxxxxxxxx>

- Cast enum types used as array indices to avoid bounds check complaint

Signed-off-by: Paul Durrant <paul@xxxxxxx>
---
 src/xenvif/frontend.c                      | 8 ++++----
 src/xenvif/mac.c                           | 8 ++++----
 vs2019/package/package.vcxproj             | 5 +++++
 vs2019/version/version.vcxproj             | 6 ++++++
 vs2019/xenvif/xenvif.vcxproj               | 5 ++++-
 vs2019/xenvif_coinst/xenvif_coinst.vcxproj | 5 ++++-
 6 files changed, 27 insertions(+), 10 deletions(-)

diff --git a/src/xenvif/frontend.c b/src/xenvif/frontend.c
index 72f448db0c05..e38d2bfcd432 100644
--- a/src/xenvif/frontend.c
+++ b/src/xenvif/frontend.c
@@ -1618,14 +1618,14 @@ __FrontendQueryStatistic(
 {
     ULONG                       Index;
 
-    ASSERT(Name < XENVIF_VIF_STATISTIC_COUNT);
+    ASSERT3U(Name, <, XENVIF_VIF_STATISTIC_COUNT);
 
     *Value = 0;
     for (Index = 0; Index < Frontend->StatisticsCount; Index++) {
         PXENVIF_FRONTEND_STATISTICS Statistics;
 
         Statistics = &Frontend->Statistics[Index];
-        *Value += Statistics->Value[Name];
+        *Value += Statistics->Value[(ULONG)Name];
     }
 }
 
@@ -1650,7 +1650,7 @@ FrontendIncrementStatistic(
     PXENVIF_FRONTEND_STATISTICS Statistics;
     KIRQL                       Irql;
 
-    ASSERT(Name < XENVIF_VIF_STATISTIC_COUNT);
+    ASSERT3U(Name, <, XENVIF_VIF_STATISTIC_COUNT);
 
     KeRaiseIrql(DISPATCH_LEVEL, &Irql);
 
@@ -1659,7 +1659,7 @@ FrontendIncrementStatistic(
     ASSERT3U(Index, <, Frontend->StatisticsCount);
     Statistics = &Frontend->Statistics[Index];
 
-    Statistics->Value[Name] += Delta;
+    Statistics->Value[(ULONG)Name] += Delta;
 
     KeLowerIrql(Irql);
 }
diff --git a/src/xenvif/mac.c b/src/xenvif/mac.c
index a89904b0f72a..82632714e549 100644
--- a/src/xenvif/mac.c
+++ b/src/xenvif/mac.c
@@ -1000,7 +1000,7 @@ MacSetFilterLevel(
     NTSTATUS                    status;
 
     status = STATUS_INVALID_PARAMETER;
-    if (Type >= ETHERNET_ADDRESS_TYPE_COUNT)
+    if ((ULONG)Type >= ETHERNET_ADDRESS_TYPE_COUNT)
         goto fail1;
 
     KeRaiseIrql(DISPATCH_LEVEL, &Irql);
@@ -1010,7 +1010,7 @@ MacSetFilterLevel(
     if (Level > XENVIF_MAC_FILTER_ALL || Level < XENVIF_MAC_FILTER_NONE)
         goto fail2;
 
-    Mac->FilterLevel[Type] = Level;
+    Mac->FilterLevel[(ULONG)Type] = Level;
 
     __MacReleaseLockExclusive(Mac);
     KeLowerIrql(Irql);
@@ -1040,13 +1040,13 @@ MacQueryFilterLevel(
     NTSTATUS                        status;
 
     status = STATUS_INVALID_PARAMETER;
-    if (Type >= ETHERNET_ADDRESS_TYPE_COUNT)
+    if ((ULONG)Type >= ETHERNET_ADDRESS_TYPE_COUNT)
         goto fail1;
 
     KeRaiseIrql(DISPATCH_LEVEL, &Irql);
     __MacAcquireLockShared(Mac);
 
-    *Level = Mac->FilterLevel[Type];
+    *Level = Mac->FilterLevel[(ULONG)Type];
 
     __MacReleaseLockShared(Mac);
     KeLowerIrql(Irql);
diff --git a/vs2019/package/package.vcxproj b/vs2019/package/package.vcxproj
index 3aec237e9ec4..76f940c69608 100644
--- a/vs2019/package/package.vcxproj
+++ b/vs2019/package/package.vcxproj
@@ -31,6 +31,11 @@
     <IntDir>..\$(ProjectName)\$(ConfigurationName)\$(Platform)\</IntDir>
     <OutDir>..\$(ConfigurationName)\$(Platform)\</OutDir>
   </PropertyGroup>
+  <ItemDefinitionGroup>
+    <DriverSign>
+      <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
+    </DriverSign>
+  </ItemDefinitionGroup>
   <PropertyGroup Condition="'$(Platform)'=='Win32'">
     <ArchiveDir>..\..\$(SolutionName)\x86</ArchiveDir>
   </PropertyGroup>
diff --git a/vs2019/version/version.vcxproj b/vs2019/version/version.vcxproj
index 9d149d0f10dd..b6ec6f3ecb0c 100644
--- a/vs2019/version/version.vcxproj
+++ b/vs2019/version/version.vcxproj
@@ -13,4 +13,10 @@
   <Target Name="Build">
     <Exec Command="powershell.exe -ExecutionPolicy Bypass -NoProfile 
-NonInteractive -File $(Script) $(Platform) $(SolutionDir) $(IncludeDir) 
$(SourceDir)" />
   </Target>
+  <Target Name="GetProjectInfoForReference"
+          Returns="@(ProjectInfoForReference)">
+    <ItemGroup>
+      <ProjectInfoForReference Include="@(LibFullPath)" />
+    </ItemGroup>
+  </Target>
 </Project>
diff --git a/vs2019/xenvif/xenvif.vcxproj b/vs2019/xenvif/xenvif.vcxproj
index 9aa14b2339fc..c28271407ded 100644
--- a/vs2019/xenvif/xenvif.vcxproj
+++ b/vs2019/xenvif/xenvif.vcxproj
@@ -24,7 +24,7 @@
       
<PreprocessorDefinitions>PROJECT=$(ProjectName);POOL_NX_OPTIN=1;NT_PROCESSOR_GROUPS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <IntrinsicFunctions>true</IntrinsicFunctions>
       <WarningLevel>EnableAllWarnings</WarningLevel>
-      
<DisableSpecificWarnings>4464;4711;4770;4548;4820;4668;4255;5045;6001;6054;26451;28196;30030;30029;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+      
<DisableSpecificWarnings>4061;4464;4711;4770;4548;4820;4668;4255;5045;6001;6054;26451;28196;30030;30029;%(DisableSpecificWarnings)</DisableSpecificWarnings>
       <MultiProcessorCompilation>true</MultiProcessorCompilation>
       <EnablePREfast>true</EnablePREfast>
     </ClCompile>
@@ -36,6 +36,9 @@
       
<AdditionalDependencies>$(DDK_LIB_PATH)/Rtlver.lib;$(DDK_LIB_PATH)/libcntpr.lib;$(DDK_LIB_PATH)/aux_klib.lib;$(DDK_LIB_PATH)/ksecdd.lib;$(DDK_LIB_PATH)/procgrp.lib;%(AdditionalDependencies)</AdditionalDependencies>
       
<LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
     </Link>
+    <DriverSign>
+      <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
+    </DriverSign>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Platform)'=='Win32'">
     <ClCompile>
diff --git a/vs2019/xenvif_coinst/xenvif_coinst.vcxproj 
b/vs2019/xenvif_coinst/xenvif_coinst.vcxproj
index 6957ad88c3a9..ccf41359316d 100644
--- a/vs2019/xenvif_coinst/xenvif_coinst.vcxproj
+++ b/vs2019/xenvif_coinst/xenvif_coinst.vcxproj
@@ -24,7 +24,7 @@
     <ClCompile>
       
<PreprocessorDefinitions>PROJECT=$(ProjectName);%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <WarningLevel>EnableAllWarnings</WarningLevel>
-      
<DisableSpecificWarnings>4127;4548;4711;4820;4668;4255;5045;6001;6054;28196;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+      
<DisableSpecificWarnings>4127;4548;4711;4820;4668;4255;5045;6001;6054;26052;28196;%(DisableSpecificWarnings)</DisableSpecificWarnings>
       <MultiProcessorCompilation>true</MultiProcessorCompilation>
       <EnablePREfast>true</EnablePREfast>
       <RuntimeLibrary 
Condition="'$(UseDebugLibraries)'=='true'">MultiThreadedDebug</RuntimeLibrary>
@@ -34,6 +34,9 @@
       
<ModuleDefinitionFile>../../src/coinst/xenvif_coinst.def</ModuleDefinitionFile>
       
<AdditionalDependencies>setupapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
     </Link>
+    <DriverSign>
+      <FileDigestAlgorithm>sha256</FileDigestAlgorithm>
+    </DriverSign>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Platform)'=='Win32'">
     <ClCompile>
-- 
2.17.1




 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.