mirror of
https://github.com/github/codeql.git
synced 2026-04-30 11:15:13 +02:00
fix all ql/use-string-compare
This commit is contained in:
@@ -92,7 +92,7 @@ class CollectionMutation extends MethodAccess {
|
||||
/** A method that queries the contents of a collection without mutating it. */
|
||||
class CollectionQueryMethod extends CollectionMethod {
|
||||
CollectionQueryMethod() {
|
||||
pragma[only_bind_into](this).getName().regexpMatch("contains|containsAll|get|size|peek")
|
||||
pragma[only_bind_into](this).getName() = ["contains", "containsAll", "get", "size", "peek"]
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -148,10 +148,9 @@ class NumberType extends RefType {
|
||||
class NumericType extends Type {
|
||||
NumericType() {
|
||||
exists(string name |
|
||||
name = this.(PrimitiveType).getName() or
|
||||
name = this.(BoxedType).getPrimitiveType().getName()
|
||||
name = [this.(PrimitiveType).getName(), this.(BoxedType).getPrimitiveType().getName()]
|
||||
|
|
||||
name.regexpMatch("byte|short|int|long|double|float")
|
||||
name = ["byte", "short", "int", "long", "double", "float"]
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -59,9 +59,8 @@ class MapMutation extends MethodAccess {
|
||||
/** A method that queries the contents of the map it belongs to without mutating it. */
|
||||
class MapQueryMethod extends MapMethod {
|
||||
MapQueryMethod() {
|
||||
pragma[only_bind_into](this)
|
||||
.getName()
|
||||
.regexpMatch("get|containsKey|containsValue|entrySet|keySet|values|isEmpty|size")
|
||||
pragma[only_bind_into](this).getName() =
|
||||
["get", "containsKey", "containsValue", "entrySet", "keySet", "values", "isEmpty", "size"]
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1002,7 +1002,9 @@ class FunctionalInterface extends Interface {
|
||||
* and `double`.
|
||||
*/
|
||||
class PrimitiveType extends Type, @primitive {
|
||||
PrimitiveType() { this.getName().regexpMatch("float|double|int|boolean|short|byte|char|long") }
|
||||
PrimitiveType() {
|
||||
this.getName() = ["float", "double", "int", "boolean", "short", "byte", "char", "long"]
|
||||
}
|
||||
|
||||
/** Gets the boxed type corresponding to this primitive type. */
|
||||
BoxedType getBoxedType() { result.getPrimitiveType() = this }
|
||||
@@ -1217,9 +1219,9 @@ predicate erasedHaveIntersection(RefType t1, RefType t2) {
|
||||
class IntegralType extends Type {
|
||||
IntegralType() {
|
||||
exists(string name |
|
||||
name = this.(PrimitiveType).getName() or name = this.(BoxedType).getPrimitiveType().getName()
|
||||
name = [this.(PrimitiveType).getName(), this.(BoxedType).getPrimitiveType().getName()]
|
||||
|
|
||||
name.regexpMatch("byte|char|short|int|long")
|
||||
name = ["byte", "char", "short", "int", "long"]
|
||||
)
|
||||
}
|
||||
}
|
||||
@@ -1228,7 +1230,7 @@ class IntegralType extends Type {
|
||||
class BooleanType extends Type {
|
||||
BooleanType() {
|
||||
exists(string name |
|
||||
name = this.(PrimitiveType).getName() or name = this.(BoxedType).getPrimitiveType().getName()
|
||||
name = [this.(PrimitiveType).getName(), this.(BoxedType).getPrimitiveType().getName()]
|
||||
|
|
||||
name = "boolean"
|
||||
)
|
||||
@@ -1239,7 +1241,7 @@ class BooleanType extends Type {
|
||||
class CharacterType extends Type {
|
||||
CharacterType() {
|
||||
exists(string name |
|
||||
name = this.(PrimitiveType).getName() or name = this.(BoxedType).getPrimitiveType().getName()
|
||||
name = [this.(PrimitiveType).getName(), this.(BoxedType).getPrimitiveType().getName()]
|
||||
|
|
||||
name = "char"
|
||||
)
|
||||
@@ -1250,9 +1252,9 @@ class CharacterType extends Type {
|
||||
class NumericOrCharType extends Type {
|
||||
NumericOrCharType() {
|
||||
exists(string name |
|
||||
name = this.(PrimitiveType).getName() or name = this.(BoxedType).getPrimitiveType().getName()
|
||||
name = [this.(PrimitiveType).getName(), this.(BoxedType).getPrimitiveType().getName()]
|
||||
|
|
||||
name.regexpMatch("byte|char|short|int|long|double|float")
|
||||
name = ["byte", "char", "short", "int", "long", "double", "float"]
|
||||
)
|
||||
}
|
||||
}
|
||||
@@ -1261,9 +1263,9 @@ class NumericOrCharType extends Type {
|
||||
class FloatingPointType extends Type {
|
||||
FloatingPointType() {
|
||||
exists(string name |
|
||||
name = this.(PrimitiveType).getName() or name = this.(BoxedType).getPrimitiveType().getName()
|
||||
name = [this.(PrimitiveType).getName(), this.(BoxedType).getPrimitiveType().getName()]
|
||||
|
|
||||
name.regexpMatch("float|double")
|
||||
name = ["float", "double"]
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -337,15 +337,15 @@ private predicate safeCast(Type fromtyp, Type totyp) {
|
||||
exists(PrimitiveType pfrom, PrimitiveType pto | pfrom = fromtyp and pto = totyp |
|
||||
pfrom = pto
|
||||
or
|
||||
pfrom.hasName("char") and pto.getName().regexpMatch("int|long|float|double")
|
||||
pfrom.hasName("char") and pto.hasName(["int", "long", "float", "double"])
|
||||
or
|
||||
pfrom.hasName("byte") and pto.getName().regexpMatch("short|int|long|float|double")
|
||||
pfrom.hasName("byte") and pto.hasName(["short", "int", "long", "float", "double"])
|
||||
or
|
||||
pfrom.hasName("short") and pto.getName().regexpMatch("int|long|float|double")
|
||||
pfrom.hasName("short") and pto.hasName(["int", "long", "float", "double"])
|
||||
or
|
||||
pfrom.hasName("int") and pto.getName().regexpMatch("long|float|double")
|
||||
pfrom.hasName("int") and pto.hasName(["long", "float", "double"])
|
||||
or
|
||||
pfrom.hasName("long") and pto.getName().regexpMatch("float|double")
|
||||
pfrom.hasName("long") and pto.hasName(["float", "double"])
|
||||
or
|
||||
pfrom.hasName("float") and pto.hasName("double")
|
||||
or
|
||||
|
||||
@@ -190,7 +190,7 @@ private predicate localAdditionalTaintUpdateStep(Expr src, Expr sink) {
|
||||
|
||||
private class BulkData extends RefType {
|
||||
BulkData() {
|
||||
this.(Array).getElementType().(PrimitiveType).getName().regexpMatch("byte|char")
|
||||
this.(Array).getElementType().(PrimitiveType).hasName(["byte", "char"])
|
||||
or
|
||||
exists(RefType t | this.getASourceSupertype*() = t |
|
||||
t.hasQualifiedName("java.io", "InputStream") or
|
||||
@@ -321,7 +321,7 @@ private predicate argToMethodStep(Expr tracked, MethodAccess sink) {
|
||||
exists(Method springResponseEntityOfOk |
|
||||
sink.getMethod() = springResponseEntityOfOk and
|
||||
springResponseEntityOfOk.getDeclaringType() instanceof SpringResponseEntity and
|
||||
springResponseEntityOfOk.getName().regexpMatch("ok|of") and
|
||||
springResponseEntityOfOk.hasName(["ok", "of"]) and
|
||||
tracked = sink.getArgument(0) and
|
||||
tracked.getType() instanceof TypeString
|
||||
)
|
||||
@@ -329,7 +329,7 @@ private predicate argToMethodStep(Expr tracked, MethodAccess sink) {
|
||||
exists(Method springResponseEntityBody |
|
||||
sink.getMethod() = springResponseEntityBody and
|
||||
springResponseEntityBody.getDeclaringType() instanceof SpringResponseEntityBodyBuilder and
|
||||
springResponseEntityBody.getName().regexpMatch("body") and
|
||||
springResponseEntityBody.hasName("body") and
|
||||
tracked = sink.getArgument(0) and
|
||||
tracked.getType() instanceof TypeString
|
||||
)
|
||||
|
||||
@@ -13,7 +13,7 @@ class FitFixtureEntryPoint extends CallableEntryPoint {
|
||||
* FitNesse entry points externally defined.
|
||||
*/
|
||||
class FitNesseSlimEntryPointData extends ExternalData {
|
||||
FitNesseSlimEntryPointData() { getDataPath().matches("fitnesse.csv") }
|
||||
FitNesseSlimEntryPointData() { getDataPath() = "fitnesse.csv" }
|
||||
|
||||
/**
|
||||
* Gets the class name.
|
||||
|
||||
@@ -85,7 +85,7 @@ class MockitoInitedTest extends Class {
|
||||
*/
|
||||
class MockitoAnnotation extends Annotation {
|
||||
MockitoAnnotation() {
|
||||
this.getType().getPackage().getName().matches("org.mockito") or
|
||||
this.getType().getPackage().hasName("org.mockito") or
|
||||
this.getType().getPackage().getName().matches("org.mockito.%")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -37,7 +37,7 @@ private class SliceProviderLifecycleStep extends AdditionalValueStep {
|
||||
|
||||
private class SliceActionsInheritTaint extends DataFlow::SyntheticFieldContent,
|
||||
TaintInheritingContent {
|
||||
SliceActionsInheritTaint() { this.getField().matches("androidx.slice.Slice.action") }
|
||||
SliceActionsInheritTaint() { this.getField() = "androidx.slice.Slice.action" }
|
||||
}
|
||||
|
||||
private class SliceBuildersSummaryModels extends SummaryModelCsv {
|
||||
|
||||
@@ -20,7 +20,7 @@ private class DefaultSafeExternalApiMethod extends SafeExternalApiMethod {
|
||||
DefaultSafeExternalApiMethod() {
|
||||
this instanceof EqualsMethod
|
||||
or
|
||||
this.getName().regexpMatch("size|length|compareTo|getClass|lastIndexOf")
|
||||
this.hasName(["size", "length", "compareTo", "getClass", "lastIndexOf"])
|
||||
or
|
||||
this.getDeclaringType().hasQualifiedName("org.apache.commons.lang3", "Validate")
|
||||
or
|
||||
@@ -42,7 +42,7 @@ private class DefaultSafeExternalApiMethod extends SafeExternalApiMethod {
|
||||
this.getName() = "isDigit"
|
||||
or
|
||||
this.getDeclaringType().hasQualifiedName("java.lang", "String") and
|
||||
this.getName().regexpMatch("equalsIgnoreCase|regionMatches")
|
||||
this.hasName(["equalsIgnoreCase", "regionMatches"])
|
||||
or
|
||||
this.getDeclaringType().hasQualifiedName("java.lang", "Boolean") and
|
||||
this.getName() = "parseBoolean"
|
||||
@@ -51,7 +51,7 @@ private class DefaultSafeExternalApiMethod extends SafeExternalApiMethod {
|
||||
this.getName() = "closeQuietly"
|
||||
or
|
||||
this.getDeclaringType().hasQualifiedName("org.springframework.util", "StringUtils") and
|
||||
this.getName().regexpMatch("hasText|isEmpty")
|
||||
this.hasName(["hasText", "isEmpty"])
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user