Hi,

Sorry for the delay.

I got "command line error D8016: '/ZI' and '/guard:cf' command-line
options are incompatible" errors for Debug configuration,
Release works fine. Looks like "Debug Information Format: Program
Database for Edit and Continue" is not compatible with Control Flow
Guard:

https://docs.microsoft.com/en-us/cpp/build/reference/guard-enable-control-flow-guard?view=msvc-160

Let's apply those changes to Release configurations only.

ke 15. syysk. 2021 klo 15.27 Ilya Shipitsin (chipits...@gmail.com) kirjoitti:
>
> found by BinSkim
>
> Signed-off-by: Ilya Shipitsin <chipits...@gmail.com>
> ---
>  src/compat/Debug.props                |  1 +
>  src/compat/Release.props              |  1 +
>  src/compat/compat.vcxproj             |  6 ++++++
>  src/openvpn/openvpn.vcxproj           | 12 ++++++++++++
>  src/openvpnmsica/openvpnmsica.props   |  1 +
>  src/openvpnmsica/openvpnmsica.vcxproj |  6 ++++++
>  src/openvpnserv/openvpnserv.vcxproj   |  6 ++++++
>  src/tapctl/tapctl.vcxproj             |  6 ++++++
>  8 files changed, 39 insertions(+)
>
> diff --git a/src/compat/Debug.props b/src/compat/Debug.props
> index 31bb9d91..810609bf 100644
> --- a/src/compat/Debug.props
> +++ b/src/compat/Debug.props
> @@ -15,6 +15,7 @@
>        
> <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
>        <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
>        <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
> +      <ControlFlowGuard>Guard</ControlFlowGuard>
>      </ClCompile>
>    </ItemDefinitionGroup>
>    <ItemGroup />
> diff --git a/src/compat/Release.props b/src/compat/Release.props
> index 63828b79..50eaa8de 100644
> --- a/src/compat/Release.props
> +++ b/src/compat/Release.props
> @@ -15,6 +15,7 @@
>        <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
>        <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
>        
> <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
> +      <ControlFlowGuard>Guard</ControlFlowGuard>
>      </ClCompile>
>      <Link>
>        <EnableCOMDATFolding>true</EnableCOMDATFolding>
> diff --git a/src/compat/compat.vcxproj b/src/compat/compat.vcxproj
> index 49824783..fe03a51a 100644
> --- a/src/compat/compat.vcxproj
> +++ b/src/compat/compat.vcxproj
> @@ -38,33 +38,39 @@
>      <CharacterSet>MultiByte</CharacterSet>
>      <WholeProgramOptimization>true</WholeProgramOptimization>
>      <PlatformToolset>v142</PlatformToolset>
> +    <SpectreMitigation>Spectre</SpectreMitigation>
>    </PropertyGroup>
>    <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" 
> Label="Configuration">
>      <ConfigurationType>StaticLibrary</ConfigurationType>
>      <CharacterSet>MultiByte</CharacterSet>
>      <WholeProgramOptimization>true</WholeProgramOptimization>
>      <PlatformToolset>v142</PlatformToolset>
> +    <SpectreMitigation>Spectre</SpectreMitigation>
>    </PropertyGroup>
>    <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" 
> Label="Configuration">
>      <ConfigurationType>StaticLibrary</ConfigurationType>
>      <CharacterSet>MultiByte</CharacterSet>
>      <WholeProgramOptimization>true</WholeProgramOptimization>
>      <PlatformToolset>v142</PlatformToolset>
> +    <SpectreMitigation>Spectre</SpectreMitigation>
>    </PropertyGroup>
>    <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" 
> Label="Configuration">
>      <ConfigurationType>StaticLibrary</ConfigurationType>
>      <CharacterSet>MultiByte</CharacterSet>
>      <PlatformToolset>v142</PlatformToolset>
> +    <SpectreMitigation>Spectre</SpectreMitigation>
>    </PropertyGroup>
>    <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" 
> Label="Configuration">
>      <ConfigurationType>StaticLibrary</ConfigurationType>
>      <CharacterSet>MultiByte</CharacterSet>
>      <PlatformToolset>v142</PlatformToolset>
> +    <SpectreMitigation>Spectre</SpectreMitigation>
>    </PropertyGroup>
>    <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" 
> Label="Configuration">
>      <ConfigurationType>StaticLibrary</ConfigurationType>
>      <CharacterSet>MultiByte</CharacterSet>
>      <PlatformToolset>v142</PlatformToolset>
> +    <SpectreMitigation>Spectre</SpectreMitigation>
>    </PropertyGroup>
>    <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
>    <ImportGroup Label="ExtensionSettings">
> diff --git a/src/openvpn/openvpn.vcxproj b/src/openvpn/openvpn.vcxproj
> index 5b3e0c6c..8d27f9c6 100644
> --- a/src/openvpn/openvpn.vcxproj
> +++ b/src/openvpn/openvpn.vcxproj
> @@ -38,33 +38,39 @@
>      <WholeProgramOptimization>true</WholeProgramOptimization>
>      <CharacterSet>NotSet</CharacterSet>
>      <PlatformToolset>v142</PlatformToolset>
> +    <SpectreMitigation>Spectre</SpectreMitigation>
>    </PropertyGroup>
>    <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" 
> Label="Configuration">
>      <ConfigurationType>Application</ConfigurationType>
>      <WholeProgramOptimization>true</WholeProgramOptimization>
>      <CharacterSet>NotSet</CharacterSet>
>      <PlatformToolset>v142</PlatformToolset>
> +    <SpectreMitigation>Spectre</SpectreMitigation>
>    </PropertyGroup>
>    <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" 
> Label="Configuration">
>      <ConfigurationType>Application</ConfigurationType>
>      <WholeProgramOptimization>true</WholeProgramOptimization>
>      <CharacterSet>NotSet</CharacterSet>
>      <PlatformToolset>v142</PlatformToolset>
> +    <SpectreMitigation>Spectre</SpectreMitigation>
>    </PropertyGroup>
>    <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" 
> Label="Configuration">
>      <ConfigurationType>Application</ConfigurationType>
>      <CharacterSet>NotSet</CharacterSet>
>      <PlatformToolset>v142</PlatformToolset>
> +    <SpectreMitigation>Spectre</SpectreMitigation>
>    </PropertyGroup>
>    <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" 
> Label="Configuration">
>      <ConfigurationType>Application</ConfigurationType>
>      <CharacterSet>NotSet</CharacterSet>
>      <PlatformToolset>v142</PlatformToolset>
> +    <SpectreMitigation>Spectre</SpectreMitigation>
>    </PropertyGroup>
>    <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" 
> Label="Configuration">
>      <ConfigurationType>Application</ConfigurationType>
>      <CharacterSet>NotSet</CharacterSet>
>      <PlatformToolset>v142</PlatformToolset>
> +    <SpectreMitigation>Spectre</SpectreMitigation>
>    </PropertyGroup>
>    <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
>    <ImportGroup Label="ExtensionSettings">
> @@ -146,6 +152,7 @@
>        <WarningLevel>Level2</WarningLevel>
>        <TreatWarningAsError>true</TreatWarningAsError>
>        
> <AdditionalIncludeDirectories>..\compat;$(SolutionDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
> +      <ControlFlowGuard>Guard</ControlFlowGuard>
>      </ClCompile>
>      <ResourceCompile />
>      <Link>
> @@ -161,6 +168,7 @@
>        <WarningLevel>Level2</WarningLevel>
>        <TreatWarningAsError>true</TreatWarningAsError>
>        
> <AdditionalIncludeDirectories>..\compat;$(SolutionDir)include;$(SolutionDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
> +      <ControlFlowGuard>Guard</ControlFlowGuard>
>      </ClCompile>
>      <ResourceCompile />
>      <Link>
> @@ -176,6 +184,7 @@
>        <WarningLevel>Level2</WarningLevel>
>        <TreatWarningAsError>true</TreatWarningAsError>
>        
> <AdditionalIncludeDirectories>..\compat;$(SolutionDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
> +      <ControlFlowGuard>Guard</ControlFlowGuard>
>      </ClCompile>
>      <ResourceCompile />
>      <Link>
> @@ -191,6 +200,7 @@
>        <WarningLevel>Level2</WarningLevel>
>        <TreatWarningAsError>true</TreatWarningAsError>
>        
> <AdditionalIncludeDirectories>..\compat;$(SolutionDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
> +      <ControlFlowGuard>Guard</ControlFlowGuard>
>      </ClCompile>
>      <ResourceCompile />
>      <Link>
> @@ -206,6 +216,7 @@
>        <WarningLevel>Level2</WarningLevel>
>        <TreatWarningAsError>true</TreatWarningAsError>
>        
> <AdditionalIncludeDirectories>..\compat;$(SolutionDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
> +      <ControlFlowGuard>Guard</ControlFlowGuard>
>      </ClCompile>
>      <ResourceCompile />
>      <Link>
> @@ -221,6 +232,7 @@
>        <WarningLevel>Level2</WarningLevel>
>        <TreatWarningAsError>true</TreatWarningAsError>
>        
> <AdditionalIncludeDirectories>..\compat;$(SolutionDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
> +      <ControlFlowGuard>Guard</ControlFlowGuard>
>      </ClCompile>
>      <ResourceCompile />
>      <Link>
> diff --git a/src/openvpnmsica/openvpnmsica.props 
> b/src/openvpnmsica/openvpnmsica.props
> index 074635d0..9e934a73 100644
> --- a/src/openvpnmsica/openvpnmsica.props
> +++ b/src/openvpnmsica/openvpnmsica.props
> @@ -9,6 +9,7 @@
>      <ClCompile>
>        
> <AdditionalIncludeDirectories>..\compat;$(TAP_WINDOWS_HOME)/include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
>        
> <PreprocessorDefinitions>_WIN32_WINNT=_WIN32_WINNT_VISTA;%(PreprocessorDefinitions)</PreprocessorDefinitions>
> +      <ControlFlowGuard>Guard</ControlFlowGuard>
>      </ClCompile>
>      <Link>
>        <SubSystem>Windows</SubSystem>
> diff --git a/src/openvpnmsica/openvpnmsica.vcxproj 
> b/src/openvpnmsica/openvpnmsica.vcxproj
> index c39b1240..11aa78bb 100644
> --- a/src/openvpnmsica/openvpnmsica.vcxproj
> +++ b/src/openvpnmsica/openvpnmsica.vcxproj
> @@ -40,18 +40,21 @@
>      <PlatformToolset>v142</PlatformToolset>
>      <CharacterSet>Unicode</CharacterSet>
>      <WindowsSDKDesktopARM64Support>true</WindowsSDKDesktopARM64Support>
> +    <SpectreMitigation>Spectre</SpectreMitigation>
>    </PropertyGroup>
>    <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" 
> Label="Configuration">
>      <ConfigurationType>DynamicLibrary</ConfigurationType>
>      <UseDebugLibraries>true</UseDebugLibraries>
>      <PlatformToolset>v142</PlatformToolset>
>      <CharacterSet>Unicode</CharacterSet>
> +    <SpectreMitigation>Spectre</SpectreMitigation>
>    </PropertyGroup>
>    <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" 
> Label="Configuration">
>      <ConfigurationType>DynamicLibrary</ConfigurationType>
>      <UseDebugLibraries>true</UseDebugLibraries>
>      <PlatformToolset>v142</PlatformToolset>
>      <CharacterSet>Unicode</CharacterSet>
> +    <SpectreMitigation>Spectre</SpectreMitigation>
>    </PropertyGroup>
>    <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" 
> Label="Configuration">
>      <ConfigurationType>DynamicLibrary</ConfigurationType>
> @@ -60,6 +63,7 @@
>      <WholeProgramOptimization>true</WholeProgramOptimization>
>      <CharacterSet>Unicode</CharacterSet>
>      <WindowsSDKDesktopARM64Support>true</WindowsSDKDesktopARM64Support>
> +    <SpectreMitigation>Spectre</SpectreMitigation>
>    </PropertyGroup>
>    <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" 
> Label="Configuration">
>      <ConfigurationType>DynamicLibrary</ConfigurationType>
> @@ -67,6 +71,7 @@
>      <PlatformToolset>v142</PlatformToolset>
>      <WholeProgramOptimization>true</WholeProgramOptimization>
>      <CharacterSet>Unicode</CharacterSet>
> +    <SpectreMitigation>Spectre</SpectreMitigation>
>    </PropertyGroup>
>    <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" 
> Label="Configuration">
>      <ConfigurationType>DynamicLibrary</ConfigurationType>
> @@ -74,6 +79,7 @@
>      <PlatformToolset>v142</PlatformToolset>
>      <WholeProgramOptimization>true</WholeProgramOptimization>
>      <CharacterSet>Unicode</CharacterSet>
> +    <SpectreMitigation>Spectre</SpectreMitigation>
>    </PropertyGroup>
>    <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
>    <ImportGroup Label="ExtensionSettings">
> diff --git a/src/openvpnserv/openvpnserv.vcxproj 
> b/src/openvpnserv/openvpnserv.vcxproj
> index 8009ab3d..5fd7d60b 100644
> --- a/src/openvpnserv/openvpnserv.vcxproj
> +++ b/src/openvpnserv/openvpnserv.vcxproj
> @@ -38,33 +38,39 @@
>      <CharacterSet>Unicode</CharacterSet>
>      <WholeProgramOptimization>true</WholeProgramOptimization>
>      <PlatformToolset>v142</PlatformToolset>
> +    <SpectreMitigation>Spectre</SpectreMitigation>
>    </PropertyGroup>
>    <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" 
> Label="Configuration">
>      <ConfigurationType>Application</ConfigurationType>
>      <CharacterSet>Unicode</CharacterSet>
>      <WholeProgramOptimization>true</WholeProgramOptimization>
>      <PlatformToolset>v142</PlatformToolset>
> +    <SpectreMitigation>Spectre</SpectreMitigation>
>    </PropertyGroup>
>    <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" 
> Label="Configuration">
>      <ConfigurationType>Application</ConfigurationType>
>      <CharacterSet>Unicode</CharacterSet>
>      <WholeProgramOptimization>true</WholeProgramOptimization>
>      <PlatformToolset>v142</PlatformToolset>
> +    <SpectreMitigation>Spectre</SpectreMitigation>
>    </PropertyGroup>
>    <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" 
> Label="Configuration">
>      <ConfigurationType>Application</ConfigurationType>
>      <CharacterSet>Unicode</CharacterSet>
>      <PlatformToolset>v142</PlatformToolset>
> +    <SpectreMitigation>Spectre</SpectreMitigation>
>    </PropertyGroup>
>    <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" 
> Label="Configuration">
>      <ConfigurationType>Application</ConfigurationType>
>      <CharacterSet>Unicode</CharacterSet>
>      <PlatformToolset>v142</PlatformToolset>
> +    <SpectreMitigation>Spectre</SpectreMitigation>
>    </PropertyGroup>
>    <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" 
> Label="Configuration">
>      <ConfigurationType>Application</ConfigurationType>
>      <CharacterSet>Unicode</CharacterSet>
>      <PlatformToolset>v142</PlatformToolset>
> +    <SpectreMitigation>Spectre</SpectreMitigation>
>    </PropertyGroup>
>    <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
>    <ImportGroup Label="ExtensionSettings">
> diff --git a/src/tapctl/tapctl.vcxproj b/src/tapctl/tapctl.vcxproj
> index ad96f02c..79da9d33 100644
> --- a/src/tapctl/tapctl.vcxproj
> +++ b/src/tapctl/tapctl.vcxproj
> @@ -40,18 +40,21 @@
>      <PlatformToolset>v142</PlatformToolset>
>      <CharacterSet>Unicode</CharacterSet>
>      <WindowsSDKDesktopARM64Support>true</WindowsSDKDesktopARM64Support>
> +    <SpectreMitigation>Spectre</SpectreMitigation>
>    </PropertyGroup>
>    <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" 
> Label="Configuration">
>      <ConfigurationType>Application</ConfigurationType>
>      <UseDebugLibraries>true</UseDebugLibraries>
>      <PlatformToolset>v142</PlatformToolset>
>      <CharacterSet>Unicode</CharacterSet>
> +    <SpectreMitigation>Spectre</SpectreMitigation>
>    </PropertyGroup>
>    <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" 
> Label="Configuration">
>      <ConfigurationType>Application</ConfigurationType>
>      <UseDebugLibraries>true</UseDebugLibraries>
>      <PlatformToolset>v142</PlatformToolset>
>      <CharacterSet>Unicode</CharacterSet>
> +    <SpectreMitigation>Spectre</SpectreMitigation>
>    </PropertyGroup>
>    <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" 
> Label="Configuration">
>      <ConfigurationType>Application</ConfigurationType>
> @@ -60,6 +63,7 @@
>      <WholeProgramOptimization>true</WholeProgramOptimization>
>      <CharacterSet>Unicode</CharacterSet>
>      <WindowsSDKDesktopARM64Support>true</WindowsSDKDesktopARM64Support>
> +    <SpectreMitigation>Spectre</SpectreMitigation>
>    </PropertyGroup>
>    <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" 
> Label="Configuration">
>      <ConfigurationType>Application</ConfigurationType>
> @@ -67,6 +71,7 @@
>      <PlatformToolset>v142</PlatformToolset>
>      <WholeProgramOptimization>true</WholeProgramOptimization>
>      <CharacterSet>Unicode</CharacterSet>
> +    <SpectreMitigation>Spectre</SpectreMitigation>
>    </PropertyGroup>
>    <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" 
> Label="Configuration">
>      <ConfigurationType>Application</ConfigurationType>
> @@ -74,6 +79,7 @@
>      <PlatformToolset>v142</PlatformToolset>
>      <WholeProgramOptimization>true</WholeProgramOptimization>
>      <CharacterSet>Unicode</CharacterSet>
> +    <SpectreMitigation>Spectre</SpectreMitigation>
>    </PropertyGroup>
>    <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
>    <ImportGroup Label="ExtensionSettings">
> --
> 2.29.2.windows.2
>
>
>
> _______________________________________________
> Openvpn-devel mailing list
> Openvpn-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/openvpn-devel



-- 
-Lev


_______________________________________________
Openvpn-devel mailing list
Openvpn-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openvpn-devel

Reply via email to