From bce0d8069ab5f40678d5edd5e9d2da8a8fdae172 Mon Sep 17 00:00:00 2001 From: dajiaohuang Date: Fri, 2 Oct 2026 23:06:38 +0800 Subject: [PATCH] Reject odd-length tag UIDs --- spoolman/tags.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/spoolman/tags.py b/spoolman/tags.py index f6bdf9b4..4269ad80 100644 --- a/spoolman/tags.py +++ b/spoolman/tags.py @@ -82,6 +82,8 @@ def normalize_uid(uid: str) -> str: raise ValueError("A tag UID must not be empty.") if not _HEX_ONLY.match(normalized): raise ValueError(f'"{uid}" is not a valid tag UID. A UID must be hexadecimal.') + if len(normalized) % 2: + raise ValueError("A tag UID must contain a whole number of bytes (an even number of hex characters).") if len(normalized) > UID_MAX_LENGTH: raise ValueError(f"A tag UID can be at most {UID_MAX_LENGTH} hex characters.") return normalized