diff --git a/cpp/ql/src/Diagnostics/ExtractorErrorMsft.ql b/cpp/ql/src/Diagnostics/ExtractorErrorMsft.ql new file mode 100644 index 000000000000..072047ec2798 --- /dev/null +++ b/cpp/ql/src/Diagnostics/ExtractorErrorMsft.ql @@ -0,0 +1,16 @@ +/** + * @name Extraction errors msft + * @description List all extraction errors for files in the source code directory. + * @id cpp/extractor-error-msft + * @kind problem + * @tags security + * extraction + */ + + import cpp + import ExtractionErrors + + from ExtractionError error + select error.getFile(), error.getErrorMessage() + + \ No newline at end of file diff --git a/csharp/ql/src/Diagnostics/ExtractorErrorMsft.ql b/csharp/ql/src/Diagnostics/ExtractorErrorMsft.ql new file mode 100644 index 000000000000..948da7f885f3 --- /dev/null +++ b/csharp/ql/src/Diagnostics/ExtractorErrorMsft.ql @@ -0,0 +1,17 @@ +/** + * @name Extraction error msft + * @description An error message reported by the extractor, limited to those files where there are no + * compilation errors. This indicates a bug or limitation in the extractor, and could lead + * to inaccurate results. + * @id cs/extractor-error-msft + * @kind problem + * @tags security + * extraction + */ + + import csharp + import semmle.code.csharp.commons.Diagnostics + + from ExtractorError error + select error.getLocation().getFile(), error.getText() + \ No newline at end of file diff --git a/go/ql/src/Diagnostics/ExtractorErrorMsft.ql b/go/ql/src/Diagnostics/ExtractorErrorMsft.ql new file mode 100644 index 000000000000..244018669e9e --- /dev/null +++ b/go/ql/src/Diagnostics/ExtractorErrorMsft.ql @@ -0,0 +1,23 @@ +/** + * @name Extraction errors msft + * @description List all extraction errors for files in the source code directory. + * @id go/extractor-error-msft + * @kind problem + * @tags security + * extraction + */ + +import go +import semmle.go.DiagnosticsReporting + +// Go does not have warnings, so all errors have error severity +predicate reportableDiagnosticsMsft(Diagnostic d, File f, string msg) { + // Only report errors for files that would have been extracted + f = d.getFile() and + exists(f.getAChild()) and + msg = removeAbsolutePaths(d.getMessage()) + } + +from Diagnostic d, File f, string msg +where reportableDiagnostics(d, f, msg) +select f, msg diff --git a/java/ql/src/Diagnostics/ExtractionErrorMsft.ql b/java/ql/src/Diagnostics/ExtractionErrorMsft.ql new file mode 100644 index 000000000000..b90c39210f1d --- /dev/null +++ b/java/ql/src/Diagnostics/ExtractionErrorMsft.ql @@ -0,0 +1,31 @@ +/** + * @name Extraction errors msft + * @description A list of extraction errors for files in the source code directory. + * @id java/extractor-error-msft + * @kind problem + * @tags security + * extraction + */ + +import java +import DiagnosticsReporting + +private predicate knownErrorsMsft(Diagnostic d, File f, string msg) { + d.getSeverity() = [6, 7, 8] and + f = d.getLocation().getFile() + msg = d.getMessage() + } + + private predicate unknownErrorsMsft(Diagnostic d, File f, string msg) { + not knownErrors(d, _, _) and + d.getSeverity() > 3 and + d.getLocation().getFile() = f and + exists(f.getRelativePath()) and + msg = "Unknown error" + } + +from Diagnostic d, File f, string msg +where + knownErrorsMsft(Diagnostic d, File f, string msg) or + unknownErrorsMsft(Diagnostic d, File f, string msg) +select f, msg diff --git a/javascript/ql/src/Diagnostics/ExtractionErrorMsft.ql b/javascript/ql/src/Diagnostics/ExtractionErrorMsft.ql new file mode 100644 index 000000000000..ca7b9760ff4f --- /dev/null +++ b/javascript/ql/src/Diagnostics/ExtractionErrorMsft.ql @@ -0,0 +1,17 @@ +/** + * @name Extraction errors msft + * @description List all extraction errors for files in the source code directory. + * @id js/extractor-error-msft + * @kind problem + * @tags security + * extraction + */ + + import javascript + + from Error error + where + exists(error.getFile().getRelativePath()) and + error.isFatal() + select error.getFile(), error.getMessage() + \ No newline at end of file diff --git a/python/ql/src/Diagnostics/ExtractorErrorMsft.ql b/python/ql/src/Diagnostics/ExtractorErrorMsft.ql new file mode 100644 index 000000000000..49b4da524076 --- /dev/null +++ b/python/ql/src/Diagnostics/ExtractorErrorMsft.ql @@ -0,0 +1,17 @@ +/** + * @name Python extraction warnings msft + * @description List all extraction warnings for Python files in the source code directory. + * @id py/extractor-error-msft + * @kind problem + * @tags security + * extraction + */ + + import python + + from SyntaxError error, File file + where + file = error.getFile() and + exists(file.getRelativePath()) + select file, error.getMessage() + \ No newline at end of file diff --git a/ruby/ql/src/queries/diagnostics/ExtractorErrorMsft.ql b/ruby/ql/src/queries/diagnostics/ExtractorErrorMsft.ql new file mode 100644 index 000000000000..edcdf010d10f --- /dev/null +++ b/ruby/ql/src/queries/diagnostics/ExtractorErrorMsft.ql @@ -0,0 +1,18 @@ +/** + * @name Extraction errors msft + * @description List all extraction errors for files in the source code directory. + * @id rb/extractor-error-msft + * @kind problem + * @tags security + * extraction + */ + + import codeql.ruby.AST + import codeql.ruby.Diagnostics + + from ExtractionError error, File f + where + f = error.getLocation().getFile() and + exists(f.getRelativePath()) + select f, error.getMessage() + \ No newline at end of file diff --git a/rust/ql/src/queries/diagnostics/ExtractorErrorMsft.ql b/rust/ql/src/queries/diagnostics/ExtractorErrorMsft.ql new file mode 100644 index 000000000000..3d17ffbbc806 --- /dev/null +++ b/rust/ql/src/queries/diagnostics/ExtractorErrorMsft.ql @@ -0,0 +1,19 @@ +/** + * @name Extraction errors msft + * @description List all extraction errors for files in the source code directory. + * @id rust/extractor-error-msft + * @kind problem + * @tags security + * extraction + */ + + import codeql.rust.Diagnostics + import codeql.files.FileSystem + + from ExtractionError error, File f + where + f = error.getLocation().getFile() and + exists(f.getRelativePath()) + select f, error.getMessage() + + \ No newline at end of file diff --git a/swift/ql/src/diagnostics/ExtractorErrorMsft.ql b/swift/ql/src/diagnostics/ExtractorErrorMsft.ql new file mode 100644 index 000000000000..a897d52744d7 --- /dev/null +++ b/swift/ql/src/diagnostics/ExtractorErrorMsft.ql @@ -0,0 +1,14 @@ +/** + * @name Compiler errors msft + * @description List all compiler errors for files in the source code directory. + * @id swift/extractor-error-msft + * @kind problem + * @tags security + * extraction + */ + + import swift + + from CompilerError error + select error.getFile(), error.getText() + \ No newline at end of file