Imported Upstream version 4.8.0.309

Former-commit-id: 5f9c6ae75f295e057a7d2971f3a6df4656fa8850
This commit is contained in:
Xamarin Public Jenkins (auto-signing)
2016-11-10 13:04:39 +00:00
parent ee1447783b
commit 94b2861243
4912 changed files with 390737 additions and 49310 deletions

View File

@@ -1347,31 +1347,38 @@ namespace System.ServiceModel.Description
internal static XmlSchema CreateWsdl()
{
return XmlSchema.Read(new StringReader(wsdl), null);
StringReader reader = new StringReader(wsdl);
return XmlSchema.Read(new XmlTextReader(reader) { DtdProcessing = DtdProcessing.Prohibit }, null);
}
internal static XmlSchema CreateSoap()
{
return XmlSchema.Read(new StringReader(soap), null);
StringReader reader = new StringReader(soap);
return XmlSchema.Read(new XmlTextReader(reader) { DtdProcessing = DtdProcessing.Prohibit }, null);
}
internal static XmlSchema CreateSoapEncoding()
{
return XmlSchema.Read(new StringReader(soapEncoding), null);
StringReader reader = new StringReader(soapEncoding);
return XmlSchema.Read(new XmlTextReader(reader) { DtdProcessing = DtdProcessing.Prohibit }, null);
}
internal static XmlSchema CreateFakeSoapEncoding()
{
return XmlSchema.Read(new StringReader(fakeSoapEncoding), null);
StringReader reader = new StringReader(fakeSoapEncoding);
return XmlSchema.Read(new XmlTextReader(reader) { DtdProcessing = DtdProcessing.Prohibit }, null);
}
internal static XmlSchema CreateFakeXsdSchema()
{
return XmlSchema.Read(new StringReader(fakeXsd), null);
StringReader reader = new StringReader(fakeXsd);
return XmlSchema.Read(new XmlTextReader(reader) { DtdProcessing = DtdProcessing.Prohibit }, null);
}
internal static XmlSchema CreateFakeXmlSchema()
{
return XmlSchema.Read(new StringReader(fakeXmlSchema), null);
StringReader reader = new StringReader(fakeXmlSchema);
return XmlSchema.Read(new XmlTextReader(reader) { DtdProcessing = DtdProcessing.Prohibit }, null);
}
internal static bool IsKnownSchema(string ns)

View File

@@ -5,6 +5,7 @@
namespace System.ServiceModel.Description
{
using System.Collections.Generic;
using System.Diagnostics.CodeAnalysis;
using System.Globalization;
using System.IO;
using System.Linq;
@@ -313,6 +314,8 @@ namespace System.ServiceModel.Description
return newWsdl;
}
[SuppressMessage("Microsoft.Security.Xml", "CA3054:DoNotAllowDtdOnXmlTextReader")]
[SuppressMessage("Microsoft.Security.Xml", "CA3069:ReviewDtdProcessingAssignment", Justification = "This is trusted server code from the application only. We should allow the customer add dtd.")]
private static XmlSchema CloneXsd(XmlSchema originalXsd)
{
Fx.Assert(originalXsd != null, "originalXsd must not be null");
@@ -321,7 +324,7 @@ namespace System.ServiceModel.Description
{
originalXsd.Write(memoryStream);
memoryStream.Seek(0, SeekOrigin.Begin);
newXsd = XmlSchema.Read(memoryStream, null);
newXsd = XmlSchema.Read(new XmlTextReader(memoryStream) { DtdProcessing = DtdProcessing.Parse }, null);
}
return newXsd;