TransactionTooLargeException
borden-a1 opened this issue · 1 comments
borden-a1 commented
We used a static analysis tool to analyze dns66 and found that dns66 will invoke getInstalledApplications
in Configuration.Allowlist.resolve
.
This function will use binder to get all apps' infos in this device, which will cause TransactionTooLargeException
and crash dns66 with many apps installs.
Some similar issues could be found in AdAway, ShoppingList.
We suggest that the invocation should be surrounded by try/catch, or add more arguments to limit return data size.
public void resolve(PackageManager pm, Set<String> onVpn, Set<String> notOnVpn){
for (ApplicationInfo applicationInfo : pm.getInstalledApplications(0)) {
....
}
}
kernel0x commented
can be fixed using a library Bundle Saver https://github.com/kernel0x/bundlesaver