From 8e78d8de53fc586d82efcb0975f264fbc7f049e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ana=20Mar=C3=ADa=20Mart=C3=ADnez=20G=C3=B3mez?= Date: Tue, 30 Jun 2020 14:21:39 +0200 Subject: [PATCH] Fix KeyError when deleting nonexistent keys `hidden_meta` saves not only the existing hidden meta keys, but also those who don't exist with value `None`. For example: ``` {'capa/path': None, 'capa/nursery': None} ``` Deleting nonexistent keys raises a `KeyError` exception. --- capa/rules.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/capa/rules.py b/capa/rules.py index d60c17c9..ae27dd4d 100644 --- a/capa/rules.py +++ b/capa/rules.py @@ -590,10 +590,11 @@ class Rule(object): # save off the existing hidden meta values, # emit the document, # and re-add the hidden meta. - hidden_meta = { - key: meta.get(key) - for key in HIDDEN_META_KEYS - } + hidden_meta = {} + for key in HIDDEN_META_KEYS: + value = meta.get(key) + if value: + hidden_meta[key] = value for key in hidden_meta.keys(): del meta[key]