From 29d4b6fadc170cef201b6c9fc3dbdca5d4f00a0b Mon Sep 17 00:00:00 2001 From: Tony Torralba Date: Tue, 13 Jun 2023 09:22:37 +0200 Subject: [PATCH] Re-add public classes that shouldn't be removed yet --- java/ql/lib/semmle/code/java/JDK.qll | 34 ++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/java/ql/lib/semmle/code/java/JDK.qll b/java/ql/lib/semmle/code/java/JDK.qll index 62115884c62..156cbbc0f93 100644 --- a/java/ql/lib/semmle/code/java/JDK.qll +++ b/java/ql/lib/semmle/code/java/JDK.qll @@ -3,6 +3,7 @@ */ import Member +import semmle.code.java.security.ExternalProcess private import semmle.code.java.dataflow.FlowSteps // --- Standard types --- @@ -197,6 +198,39 @@ class TypeFile extends Class { } // --- Standard methods --- +/** + * DEPRECATED: Any constructor of class `java.lang.ProcessBuilder`. + */ +deprecated class ProcessBuilderConstructor extends Constructor, ExecCallable { + ProcessBuilderConstructor() { this.getDeclaringType() instanceof TypeProcessBuilder } + + override int getAnExecutedArgument() { result = 0 } +} + +/** + * DEPRECATED: Any of the methods named `command` on class `java.lang.ProcessBuilder`. + */ +deprecated class MethodProcessBuilderCommand extends Method, ExecCallable { + MethodProcessBuilderCommand() { + this.hasName("command") and + this.getDeclaringType() instanceof TypeProcessBuilder + } + + override int getAnExecutedArgument() { result = 0 } +} + +/** + * DEPRECATED: Any method named `exec` on class `java.lang.Runtime`. + */ +deprecated class MethodRuntimeExec extends Method, ExecCallable { + MethodRuntimeExec() { + this.hasName("exec") and + this.getDeclaringType() instanceof TypeRuntime + } + + override int getAnExecutedArgument() { result = 0 } +} + /** * Any method named `getenv` on class `java.lang.System`. */