mirror of
https://github.com/github/codeql.git
synced 2026-04-30 19:26:02 +02:00
add explicit this qualifier on all of java
This commit is contained in:
@@ -26,27 +26,27 @@ class MXBean extends ManagedBean {
|
||||
*/
|
||||
class RegisteredManagedBeanImpl extends Class {
|
||||
RegisteredManagedBeanImpl() {
|
||||
getAnAncestor() instanceof ManagedBean and
|
||||
this.getAnAncestor() instanceof ManagedBean and
|
||||
exists(JMXRegistrationCall registerCall | registerCall.getObjectArgument().getType() = this)
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets a managed bean that this registered bean class implements.
|
||||
*/
|
||||
ManagedBean getAnImplementedManagedBean() { result = getAnAncestor() }
|
||||
ManagedBean getAnImplementedManagedBean() { result = this.getAnAncestor() }
|
||||
}
|
||||
|
||||
/**
|
||||
* A call that registers an object with the `MBeanServer`, directly or indirectly.
|
||||
*/
|
||||
class JMXRegistrationCall extends MethodAccess {
|
||||
JMXRegistrationCall() { getCallee() instanceof JMXRegistrationMethod }
|
||||
JMXRegistrationCall() { this.getCallee() instanceof JMXRegistrationMethod }
|
||||
|
||||
/**
|
||||
* Gets the argument that represents the object in the registration call.
|
||||
*/
|
||||
Expr getObjectArgument() {
|
||||
result = getArgument(getCallee().(JMXRegistrationMethod).getObjectPosition())
|
||||
result = this.getArgument(this.getCallee().(JMXRegistrationMethod).getObjectPosition())
|
||||
}
|
||||
}
|
||||
|
||||
@@ -59,15 +59,15 @@ class JMXRegistrationCall extends MethodAccess {
|
||||
class JMXRegistrationMethod extends Method {
|
||||
JMXRegistrationMethod() {
|
||||
// A direct registration with the `MBeanServer`.
|
||||
getDeclaringType().hasQualifiedName("javax.management", "MBeanServer") and
|
||||
getName() = "registerMBean"
|
||||
this.getDeclaringType().hasQualifiedName("javax.management", "MBeanServer") and
|
||||
this.getName() = "registerMBean"
|
||||
or
|
||||
// The `MBeanServer` is often wrapped by an application specific management class, so identify
|
||||
// methods that wrap a call to another `JMXRegistrationMethod`.
|
||||
exists(JMXRegistrationCall c |
|
||||
// This must be a call to another JMX registration method, where the object argument is an access
|
||||
// of one of the parameters of this method.
|
||||
c.getObjectArgument().(VarAccess).getVariable() = getAParameter()
|
||||
c.getObjectArgument().(VarAccess).getVariable() = this.getAParameter()
|
||||
)
|
||||
}
|
||||
|
||||
@@ -76,13 +76,13 @@ class JMXRegistrationMethod extends Method {
|
||||
*/
|
||||
int getObjectPosition() {
|
||||
// Passed as the first argument to `registerMBean`.
|
||||
getDeclaringType().hasQualifiedName("javax.management", "MBeanServer") and
|
||||
getName() = "registerMBean" and
|
||||
this.getDeclaringType().hasQualifiedName("javax.management", "MBeanServer") and
|
||||
this.getName() = "registerMBean" and
|
||||
result = 0
|
||||
or
|
||||
// Identify the position in this method where the object parameter should be passed.
|
||||
exists(JMXRegistrationCall c |
|
||||
c.getObjectArgument().(VarAccess).getVariable() = getParameter(result)
|
||||
c.getObjectArgument().(VarAccess).getVariable() = this.getParameter(result)
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user