diff --git a/common/lib/capa/capa/correctmap.py b/common/lib/capa/capa/correctmap.py index 6adf47832c..096f28257b 100644 --- a/common/lib/capa/capa/correctmap.py +++ b/common/lib/capa/capa/correctmap.py @@ -91,8 +91,11 @@ class CorrectMap(object): # empty current dict self.__init__() + if not correct_map: + return + # create new dict entries - if correct_map and not isinstance(correct_map.values()[0], dict): + if not isinstance(correct_map.values()[0], dict): # special migration for k in correct_map: self.set(k, correctness=correct_map[k]) diff --git a/common/lib/capa/capa/tests/test_correctmap.py b/common/lib/capa/capa/tests/test_correctmap.py index 168351aa9d..4ebd1866c3 100644 --- a/common/lib/capa/capa/tests/test_correctmap.py +++ b/common/lib/capa/capa/tests/test_correctmap.py @@ -215,3 +215,13 @@ class CorrectMapTest(unittest.TestCase): for invalid in invalid_list: with self.assertRaises(Exception): self.cmap.update(invalid) + + def test_set_none_state(self): + """ + Test that if an invalid state is set to correct map, the state does not + update at all. + """ + invalid_list = [None, "", False, 0] + for invalid in invalid_list: + self.cmap.set_dict(invalid) + self.assertEqual(self.cmap.get_dict(), {})