xenadmin/XenCenterLib/XenCenterLib.csproj
Konstantina Chremmou 979f88a90c CA-322699: Do not use an intermediate MemoryStream when sanitising the files of a tar archive.
If the tar contains huge files, this causes memory spikes, even OutOfMemoryException.
Instead, copy the file from the input to the output stream in chunks.
For this purpose the sanitisation code was moved to XenCenterLib to avoid
exposing the tar internals to the UI project.
Also, made some minor improvements in error handling, clean up, and logging.

Signed-off-by: Konstantina Chremmou <konstantina.chremmou@citrix.com>
2019-07-11 09:19:47 +01:00

106 lines
4.7 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>9.0.30729</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{9861DFA1-B41F-432D-A43F-226257DEBBB9}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>XenCenterLib</RootNamespace>
<AssemblyName>XenCenterLib</AssemblyName>
<TargetFrameworkVersion>v4.6</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<ItemGroup>
<Reference Include="ICSharpCode.SharpZipLib, Version=0.85.4.403, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\packages\ICSharpCode.SharpZipLib.dll</HintPath>
</Reference>
<Reference Include="Ionic.Zip, Version=1.9.1.8, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\packages\Ionic.Zip.dll</HintPath>
</Reference>
<Reference Include="log4net, Version=1.2.10.0, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\packages\log4net.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Core">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
<Reference Include="System.Management" />
<Reference Include="System.Security" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="Archive\ArchiveIterator.cs" />
<Compile Include="Archive\ArchiveWriter.cs" />
<Compile Include="Archive\ArchiveFactory.cs" />
<Compile Include="Archive\TarArchiveIterator.cs" />
<Compile Include="Archive\TarArchiveWriter.cs" />
<Compile Include="Archive\TarSanitization.cs" />
<Compile Include="Archive\ZipArchiveIterator.cs" />
<Compile Include="Archive\ZipArchiveWriter.cs" />
<Compile Include="Compression\BZip2Streams.cs" />
<Compile Include="Compression\CompressionFactory.cs" />
<Compile Include="Compression\CompressionStream.cs" />
<Compile Include="Compression\GZipStreams.cs" />
<Compile Include="BasicXMLResolver.cs" />
<Compile Include="ChangeableDictionary.cs" />
<Compile Include="ChangeableList.cs" />
<Compile Include="EmailAddressValidator.cs" />
<Compile Include="EncryptionUtils.cs" />
<Compile Include="ComparableAddress.cs" />
<Compile Include="ComparableList.cs" />
<Compile Include="HelpString.cs" />
<Compile Include="INotifyCollectionChanged.cs" />
<Compile Include="LimitedStack.cs" />
<Compile Include="LockFreeQueue.cs" />
<Compile Include="NamedPipes.cs" />
<Compile Include="PartialIP.cs" />
<Compile Include="PathValidator.cs" />
<Compile Include="Processes.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Set.cs" />
<Compile Include="StreamUtilities.cs" />
<Compile Include="StringUtility.cs" />
<Compile Include="TimeUtil.cs" />
<Compile Include="ToStringWrapper.cs" />
<Compile Include="Win32.cs" />
<Compile Include="XSVersionAttribute.cs" />
</ItemGroup>
<ItemGroup>
<None Include="app.config" />
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>