33import csharp
44private import semmle.code.csharp.frameworks.System
55private import semmle.code.csharp.dataflow.DataFlow3
6+ private import semmle.code.csharp.dataflow.ExternalFlow
67
78/** The `System.Xml` namespace. */
89class SystemXmlNamespace extends Namespace {
@@ -35,8 +36,20 @@ class SystemXmlXmlDocumentClass extends Class {
3536 /** Gets the `Load` method. */
3637 Method getLoadMethod ( ) {
3738 result = this .getAMethod ( ) and
38- result .hasName ( "Load" ) and
39- result .isStatic ( )
39+ result .hasName ( "Load" )
40+ }
41+ }
42+
43+ /** Data flow for `System.Xml.XmlDocument`. */
44+ private class SystemXmlXmlDocumentFlowModelCsv extends SummaryModelCsv {
45+ override predicate row ( string row ) {
46+ row =
47+ [
48+ "System.Xml;XmlDocument;false;Load;(System.IO.Stream);;Argument[0];Argument[-1];taint" ,
49+ "System.Xml;XmlDocument;false;Load;(System.IO.TextReader);;Argument[0];Argument[-1];taint" ,
50+ "System.Xml;XmlDocument;false;Load;(System.String);;Argument[0];Argument[-1];taint" ,
51+ "System.Xml;XmlDocument;false;Load;(System.Xml.XmlReader);;Argument[0];Argument[-1];taint"
52+ ]
4053 }
4154}
4255
@@ -55,6 +68,27 @@ class SystemXmlXmlReaderClass extends Class {
5568 }
5669}
5770
71+ /** Data flow for `System.Xml.XmlReader`. */
72+ private class SystemXmlXmlReaderFlowModelCsv extends SummaryModelCsv {
73+ override predicate row ( string row ) {
74+ row =
75+ [
76+ "System.Xml;XmlReader;false;Create;(System.IO.Stream);;Argument[0];ReturnValue;taint" ,
77+ "System.Xml;XmlReader;false;Create;(System.IO.Stream,System.Xml.XmlReaderSettings);;Argument[0];ReturnValue;taint" ,
78+ "System.Xml;XmlReader;false;Create;(System.IO.Stream,System.Xml.XmlReaderSettings,System.String);;Argument[0];ReturnValue;taint" ,
79+ "System.Xml;XmlReader;false;Create;(System.IO.Stream,System.Xml.XmlReaderSettings,System.Xml.XmlParserContext);;Argument[0];ReturnValue;taint" ,
80+ "System.Xml;XmlReader;false;Create;(System.IO.TextReader);;Argument[0];ReturnValue;taint" ,
81+ "System.Xml;XmlReader;false;Create;(System.IO.TextReader,System.Xml.XmlReaderSettings);;Argument[0];ReturnValue;taint" ,
82+ "System.Xml;XmlReader;false;Create;(System.IO.TextReader,System.Xml.XmlReaderSettings,System.String);;Argument[0];ReturnValue;taint" ,
83+ "System.Xml;XmlReader;false;Create;(System.IO.TextReader,System.Xml.XmlReaderSettings,System.Xml.XmlParserContext);;Argument[0];ReturnValue;taint" ,
84+ "System.Xml;XmlReader;false;Create;(System.String);;Argument[0];ReturnValue;taint" ,
85+ "System.Xml;XmlReader;false;Create;(System.String,System.Xml.XmlReaderSettings);;Argument[0];ReturnValue;taint" ,
86+ "System.Xml;XmlReader;false;Create;(System.String,System.Xml.XmlReaderSettings,System.Xml.XmlParserContext);;Argument[0];ReturnValue;taint" ,
87+ "System.Xml;XmlReader;false;Create;(System.Xml.XmlReader,System.Xml.XmlReaderSettings);;Argument[0];ReturnValue;taint"
88+ ]
89+ }
90+ }
91+
5892/** The `System.Xml.XmlReaderSettings` class. */
5993class SystemXmlXmlReaderSettingsClass extends Class {
6094 SystemXmlXmlReaderSettingsClass ( ) {
@@ -101,6 +135,42 @@ class SystemXmlXmlNodeClass extends Class {
101135 }
102136}
103137
138+ /** Data flow for `System.Xml.XmlNode`. */
139+ private class SystemXmlXmlNodeFlowModelCsv extends SummaryModelCsv {
140+ override predicate row ( string row ) {
141+ row =
142+ [
143+ "System.Xml;XmlNode;false;GetEnumerator;();;Element of Argument[-1];Property[System.Collections.IEnumerator.Current] of ReturnValue;value" ,
144+ "System.Xml;XmlNode;false;SelectNodes;(System.String);;Argument[-1];ReturnValue;taint" ,
145+ "System.Xml;XmlNode;false;SelectNodes;(System.String,System.Xml.XmlNamespaceManager);;Argument[-1];ReturnValue;taint" ,
146+ "System.Xml;XmlNode;false;SelectSingleNode;(System.String);;Argument[-1];ReturnValue;taint" ,
147+ "System.Xml;XmlNode;false;SelectSingleNode;(System.String,System.Xml.XmlNamespaceManager);;Argument[-1];ReturnValue;taint" ,
148+ "System.Xml;XmlNode;true;get_Attributes;();;Argument[-1];ReturnValue;taint" ,
149+ "System.Xml;XmlNode;true;get_BaseURI;();;Argument[-1];ReturnValue;taint" ,
150+ "System.Xml;XmlNode;true;get_ChildNodes;();;Argument[-1];ReturnValue;taint" ,
151+ "System.Xml;XmlNode;true;get_FirstChild;();;Argument[-1];ReturnValue;taint" ,
152+ "System.Xml;XmlNode;true;get_HasChildNodes;();;Argument[-1];ReturnValue;taint" ,
153+ "System.Xml;XmlNode;true;get_InnerText;();;Argument[-1];ReturnValue;taint" ,
154+ "System.Xml;XmlNode;true;get_InnerXml;();;Argument[-1];ReturnValue;taint" ,
155+ "System.Xml;XmlNode;true;get_IsReadOnly;();;Argument[-1];ReturnValue;taint" ,
156+ "System.Xml;XmlNode;true;get_LastChild;();;Argument[-1];ReturnValue;taint" ,
157+ "System.Xml;XmlNode;true;get_LocalName;();;Argument[-1];ReturnValue;taint" ,
158+ "System.Xml;XmlNode;true;get_Name;();;Argument[-1];ReturnValue;taint" ,
159+ "System.Xml;XmlNode;true;get_NamespaceURI;();;Argument[-1];ReturnValue;taint" ,
160+ "System.Xml;XmlNode;true;get_NextSibling;();;Argument[-1];ReturnValue;taint" ,
161+ "System.Xml;XmlNode;true;get_NodeType;();;Argument[-1];ReturnValue;taint" ,
162+ "System.Xml;XmlNode;true;get_OuterXml;();;Argument[-1];ReturnValue;taint" ,
163+ "System.Xml;XmlNode;true;get_OwnerDocument;();;Argument[-1];ReturnValue;taint" ,
164+ "System.Xml;XmlNode;true;get_ParentNode;();;Argument[-1];ReturnValue;taint" ,
165+ "System.Xml;XmlNode;true;get_Prefix;();;Argument[-1];ReturnValue;taint" ,
166+ "System.Xml;XmlNode;true;get_PreviousSibling;();;Argument[-1];ReturnValue;taint" ,
167+ "System.Xml;XmlNode;true;get_PreviousText;();;Argument[-1];ReturnValue;taint" ,
168+ "System.Xml;XmlNode;true;get_SchemaInfo;();;Argument[-1];ReturnValue;taint" ,
169+ "System.Xml;XmlNode;true;get_Value;();;Argument[-1];ReturnValue;taint"
170+ ]
171+ }
172+ }
173+
104174/** The `System.Xml.XmlNamedNodeMap` class. */
105175class SystemXmlXmlNamedNodeMapClass extends Class {
106176 SystemXmlXmlNamedNodeMapClass ( ) {
@@ -115,6 +185,17 @@ class SystemXmlXmlNamedNodeMapClass extends Class {
115185 }
116186}
117187
188+ /** Data flow for `System.Xml.XmlNamedNodeMap`. */
189+ private class SystemXmlXmlNamedNodeMapClassFlowModelCsv extends SummaryModelCsv {
190+ override predicate row ( string row ) {
191+ row =
192+ [
193+ "System.Xml;XmlNamedNodeMap;false;GetNamedItem;(System.String);;Argument[-1];ReturnValue;value" ,
194+ "System.Xml;XmlNamedNodeMap;false;GetNamedItem;(System.String,System.String);;Argument[-1];ReturnValue;value"
195+ ]
196+ }
197+ }
198+
118199/** An enum constant in `System.Xml.ValidationType`. */
119200class SystemXmlValidationType extends EnumConstant {
120201 SystemXmlValidationType ( ) {
0 commit comments