From c27d9c0ac19db7a7b18f124f917cd0e0fa95ecda Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Thu, 10 Aug 2023 05:08:23 +0900 Subject: [PATCH] udev-builtin-net_id: fix potential invalid memory access Follow-up for 28141620d963c0c490d409d6ec6ff5f143357124. Addresses post-merge review in #28269. --- src/udev/udev-builtin-net_id.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/src/udev/udev-builtin-net_id.c b/src/udev/udev-builtin-net_id.c index e82285b5ff..156802f296 100644 --- a/src/udev/udev-builtin-net_id.c +++ b/src/udev/udev-builtin-net_id.c @@ -702,18 +702,14 @@ static int names_platform(sd_device *dev, const char *prefix, bool test) { /* Platform devices are named after ACPI table match, and instance id * eg. "/sys/devices/platform/HISI00C2:00" * The Vendor (3 or 4 char), followed by hexadecimal model number : instance id. */ - if (p[7] == ':') { + if (r == 10 && p[7] == ':') { /* 3 char vendor string */ - if (r != 10) - return -EINVAL; vendor = strndupa(p, 3); model_str = strndupa(p + 3, 4); instance_str = strndupa(p + 8, 2); validchars = UPPERCASE_LETTERS; - } else if (p[8] == ':') { + } else if (r == 11 && p[8] == ':') { /* 4 char vendor string */ - if (r != 11) - return -EINVAL; vendor = strndupa(p, 4); model_str = strndupa(p + 4, 4); instance_str = strndupa(p + 9, 2); -- 2.25.1