From 7e0275f0643bfb066f7c96ac07eba3b0d7ef8f14 Mon Sep 17 00:00:00 2001 From: Paul M <22234727+Poeloe@users.noreply.github.com> Date: Thu, 7 Mar 2024 14:45:27 +0100 Subject: [PATCH] Add lru_cache for UsersPlugin's find method (#567) (DIS-2754) --- dissect/target/plugins/general/users.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/dissect/target/plugins/general/users.py b/dissect/target/plugins/general/users.py index 99f97a279..a4ea075c1 100644 --- a/dissect/target/plugins/general/users.py +++ b/dissect/target/plugins/general/users.py @@ -1,5 +1,7 @@ +from functools import lru_cache from typing import Generator, NamedTuple, Optional, Union +from dissect.target import Target from dissect.target.exceptions import UnsupportedPluginError from dissect.target.helpers.fsutil import TargetPath from dissect.target.helpers.record import UnixUserRecord, WindowsUserRecord @@ -16,6 +18,10 @@ class UsersPlugin(InternalPlugin): __namespace__ = "user_details" + def __init__(self, target: Target): + super().__init__(target) + self.find = lru_cache(32)(self.find) + def check_compatible(self) -> None: if not hasattr(self.target, "users"): raise UnsupportedPluginError("Unsupported Plugin")