From 9e4f93455bbb7d5d29a556b2a4275ff40611e3f9 Mon Sep 17 00:00:00 2001 From: Sogoss <> Date: Tue, 21 Jul 2026 15:19:30 +0200 Subject: [PATCH] =?UTF-8?q?fix(nfproxy):=20prevent=20O(N=C2=B2)=20memory?= =?UTF-8?q?=20growth=20from=20nested=20history=20snapshots?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Objects archived in the history deques no longer carry their own _history snapshot, breaking the recursive chain where each historical entry held copies of all prior entries. The .history property on archived objects now returns an empty HttpHistory([], []) instead. --- fgex-lib/firegex/nfproxy/models/http.py | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/fgex-lib/firegex/nfproxy/models/http.py b/fgex-lib/firegex/nfproxy/models/http.py index 45ec83b..7967ef8 100644 --- a/fgex-lib/firegex/nfproxy/models/http.py +++ b/fgex-lib/firegex/nfproxy/models/http.py @@ -728,13 +728,9 @@ class InternalBasicHttpMetaClass: if msg.message_complete and not msg.added_to_history: msg.added_to_history = True if internal_data.current_pkt.is_input: - full_req = HttpFullRequest(parser, msg) - full_req._history = history_snapshot - req_history_deque.append(full_req) + req_history_deque.append(HttpFullRequest(parser, msg)) else: - full_resp = HttpFullResponse(parser, msg) - full_resp._history = history_snapshot - resp_history_deque.append(full_resp) + resp_history_deque.append(HttpFullResponse(parser, msg)) if len(built_instances) == 1: res = built_instances[0]