From 600e7ada22a4d3fa02c42c735b61a71266653af5 Mon Sep 17 00:00:00 2001 From: Sebastiano Mariani Date: Wed, 25 May 2022 09:49:12 -0700 Subject: [PATCH 1/2] Fix logger memory exhaustion Signed-off-by: Sebastiano Mariani --- qiling/log.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/qiling/log.py b/qiling/log.py index 3249116df..427b44d32 100644 --- a/qiling/log.py +++ b/qiling/log.py @@ -7,6 +7,7 @@ import logging import os import re +import weakref from typing import Optional, TextIO @@ -38,7 +39,7 @@ class QlBaseFormatter(logging.Formatter): def __init__(self, ql, *args, **kwargs): super().__init__(*args, **kwargs) - self.ql = ql + self.ql = weakref.ref(ql) def get_level_tag(self, level: str) -> str: return self.__level_tag[level] From d2df83b3e7d6a9e2027e67f0d01d8f79c1b388bd Mon Sep 17 00:00:00 2001 From: Sebastiano Mariani Date: Wed, 25 May 2022 10:17:56 -0700 Subject: [PATCH 2/2] Use proxy instead of ref Signed-off-by: Sebastiano Mariani --- qiling/log.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/qiling/log.py b/qiling/log.py index 427b44d32..d085266ed 100644 --- a/qiling/log.py +++ b/qiling/log.py @@ -39,7 +39,7 @@ class QlBaseFormatter(logging.Formatter): def __init__(self, ql, *args, **kwargs): super().__init__(*args, **kwargs) - self.ql = weakref.ref(ql) + self.ql = weakref.proxy(ql) def get_level_tag(self, level: str) -> str: return self.__level_tag[level]