mirror of
https://github.com/github/codeql.git
synced 2026-05-04 05:05:12 +02:00
Merge pull request #396 from esben-semmle/js/unconditional-property-override
JS: add query: js/unconditional-property-override
This commit is contained in:
@@ -459,6 +459,11 @@ module DataFlow {
|
||||
prop = getPropertyName() and
|
||||
rhs = getRhs()
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the node where the property write happens in the control flow graph.
|
||||
*/
|
||||
abstract ControlFlowNode getWriteNode();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -484,6 +489,10 @@ module DataFlow {
|
||||
override Node getRhs() {
|
||||
result = valueNode(astNode.(LValue).getRhs())
|
||||
}
|
||||
|
||||
override ControlFlowNode getWriteNode() {
|
||||
result = astNode.(LValue).getDefNode()
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -508,6 +517,10 @@ module DataFlow {
|
||||
override Node getRhs() {
|
||||
result = valueNode(prop.(ValueProperty).getInit())
|
||||
}
|
||||
|
||||
override ControlFlowNode getWriteNode() {
|
||||
result = prop
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -537,6 +550,10 @@ module DataFlow {
|
||||
propdesc.hasPropertyWrite("value", result)
|
||||
)
|
||||
}
|
||||
|
||||
override ControlFlowNode getWriteNode() {
|
||||
result = odp.getAstNode()
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -563,6 +580,10 @@ module DataFlow {
|
||||
not prop instanceof AccessorMethodDefinition and
|
||||
result = valueNode(prop.getInit())
|
||||
}
|
||||
|
||||
override ControlFlowNode getWriteNode() {
|
||||
result = prop
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -587,6 +608,10 @@ module DataFlow {
|
||||
override Node getRhs() {
|
||||
result = valueNode(prop.getValue())
|
||||
}
|
||||
|
||||
override ControlFlowNode getWriteNode() {
|
||||
result = prop
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -869,6 +894,11 @@ module DataFlow {
|
||||
override Node getBase() {
|
||||
result = valueNode(arr)
|
||||
}
|
||||
|
||||
override ControlFlowNode getWriteNode() {
|
||||
result = arr
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user