From f8103070d041bd040d6bd749e68c90a15b0807e2 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Reimar=20D=C3=B6ffinger?= Date: Sat, 24 Jun 2017 15:17:05 +0200 Subject: [PATCH] Optimize resolveClass a bit. Short evaluation is possible a bit more often. --- .../android/util/PersistentObjectCache.java | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/com/hughes/android/util/PersistentObjectCache.java b/src/com/hughes/android/util/PersistentObjectCache.java index c95f503..c273411 100644 --- a/src/com/hughes/android/util/PersistentObjectCache.java +++ b/src/com/hughes/android/util/PersistentObjectCache.java @@ -52,16 +52,16 @@ public class PersistentObjectCache { String name = desc.getName(); // Note: try to avoid adding more classes. // LinkedHashMap is already more than enough for a DoS - if (!name.equals(ArrayList.class.getName()) && - !name.equals(HashMap.class.getName()) && - !name.equals(LinkedHashMap.class.getName()) && - !name.equals(String.class.getName()) && - !name.equals(DictionaryApplication.DictionaryConfig.class.getName()) && - !name.equals(DictionaryInfo.class.getName()) && - !name.equals(DictionaryInfo.IndexInfo.class.getName())) { - throw new InvalidClassException("Not allowed to deserialize class", name); + if (name.equals(String.class.getName()) || + name.equals(DictionaryInfo.IndexInfo.class.getName()) || + name.equals(ArrayList.class.getName()) || + name.equals(HashMap.class.getName()) || + name.equals(DictionaryInfo.class.getName()) || + name.equals(DictionaryApplication.DictionaryConfig.class.getName()) || + name.equals(LinkedHashMap.class.getName())) { + return super.resolveClass(desc); } - return super.resolveClass(desc); + throw new InvalidClassException("Not allowed to deserialize class", name); } } -- 2.43.0