Closed bluemods closed 2 months ago
What makes this potentially acceptable is the fact that the fields of PartitionedRecycledViewPool$a
are not initialized to specific values.
a
is an int, and will be init to 0b
is an object type, and will be init to nullSo, calling Object.<init>
on the allocated memory instance would be sufficient here. I've never seen this in the wild. Could you share a full APK? Are you sure ProGuard is doing this?
I've just verified it with JEB Pro, the result is quite explicit, the alloc and init parts are broken down to warn the user that something is off:
Fixed. @bluemods thank you for reporting this issue :+1:
Issue details
Seems as though ProGuard has implemented a new technique by changing the constructor instructions for zero-args constructors.
See the commented sample and the screenshot of the decompiler being confused by it and failing type inference.
Normal (expected opcodes for instantiating an object with a zero-args constructor):
Proguarded:
example.smali
Relevant log output or stacktrace
No response
Provide sample and class/method full name
Jadx version
1.5.0