SharpSerializer

This commit is contained in:
edvraa
2021-06-14 23:26:28 +03:00
committed by edvraa
parent c3ac3ca41c
commit 1e4409f9ed
2 changed files with 29 additions and 0 deletions

View File

@@ -798,4 +798,18 @@ module UnsafeDeserialization {
)
}
}
/** SharpSerializer */
private class SharpSerializerDeserializeMethodSink extends InstanceMethodSink {
SharpSerializerDeserializeMethodSink() {
exists(MethodCall mc, Method m |
m = mc.getTarget() and
(
not mc.getArgument(0).hasValue() and
m instanceof SharpSerializerClassDeserializeMethod
) and
this.asExpr() = mc.getArgument(0)
)
}
}
}

View File

@@ -63,6 +63,8 @@ class WeakTypeDeserializer extends Class {
this instanceof ServiceStackTextCsvSerializerClass
or
this instanceof ServiceStackTextXmlSerializerClass
or
this instanceof SharpSerializerClass
}
}
@@ -624,3 +626,16 @@ class CsPicklerSerializerClassUnPickleOfStringMethod extends Method, UnsafeDeser
this.hasName("UnPickleOfString")
}
}
/** Polenter.Serialization.SharpSerializer */
private class SharpSerializerClass extends Class {
SharpSerializerClass() { this.hasQualifiedName("Polenter.Serialization.SharpSerializer") }
}
/** `Polenter.Serialization.SharpSerializer.Deserialize` method */
class SharpSerializerClassDeserializeMethod extends Method, UnsafeDeserializer {
SharpSerializerClassDeserializeMethod() {
this.getDeclaringType().getBaseClass*() instanceof SharpSerializerClass and
this.hasName("Deserialize")
}
}