From 14a67d95d66602d1fe6b1f39da346b8a6d38dfeb Mon Sep 17 00:00:00 2001 From: dvora-h Date: Tue, 9 Jan 2024 13:15:32 +0200 Subject: [PATCH] Fix: hset unexpectedly mutates the list passed to items --- redis/commands/core.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/redis/commands/core.py b/redis/commands/core.py index 5d7b774dc3..26c71494ef 100644 --- a/redis/commands/core.py +++ b/redis/commands/core.py @@ -5017,14 +5017,16 @@ def hset( """ if key is None and not mapping and not items: raise DataError("'hset' with no key value pairs") - items = items or [] + pieces = [] + if items: + pieces.extend(items) if key is not None: - items.extend((key, value)) + pieces.extend((key, value)) if mapping: for pair in mapping.items(): - items.extend(pair) + pieces.extend(pair) - return self.execute_command("HSET", name, *items) + return self.execute_command("HSET", name, *pieces) def hsetnx(self, name: str, key: str, value: str) -> Union[Awaitable[bool], bool]: """