]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
udev: use strndupa_safe() rather than strndupa()
authorLennart Poettering <lennart@poettering.net>
Wed, 6 Mar 2024 08:45:55 +0000 (09:45 +0100)
committerLuca Boccassi <luca.boccassi@gmail.com>
Wed, 6 Mar 2024 13:23:17 +0000 (13:23 +0000)
As per coding style, we don't use strndupa(), but strndupa_safe() only.

As a side-effect, this means musl folks can just drop this mess:

https://git.openembedded.org/openembedded-core/tree/meta/recipes-core/systemd/systemd/0003-src-basic-missing.h-check-for-missing-strndupa.patch

src/udev/udev-builtin-net_id.c

index 2482436006250864b20603d20d654c7c96ba1228..8ef3abada958e54e97a4b1a3f8659908b600ee6b 100644 (file)
@@ -731,15 +731,15 @@ static int names_platform(sd_device *dev, const char *prefix, bool test) {
          * The Vendor (3 or 4 char), followed by hexadecimal model number : instance id. */
         if (r == 10 && p[7] == ':') {
                 /* 3 char vendor string */
-                vendor = strndupa(p, 3);
-                model_str = strndupa(p + 3, 4);
-                instance_str = strndupa(p + 8, 2);
+                vendor = strndupa_safe(p, 3);
+                model_str = strndupa_safe(p + 3, 4);
+                instance_str = strndupa_safe(p + 8, 2);
                 validchars = UPPERCASE_LETTERS;
         } else if (r == 11 && p[8] == ':') {
                 /* 4 char vendor string */
-                vendor = strndupa(p, 4);
-                model_str = strndupa(p + 4, 4);
-                instance_str = strndupa(p + 9, 2);
+                vendor = strndupa_safe(p, 4);
+                model_str = strndupa_safe(p + 4, 4);
+                instance_str = strndupa_safe(p + 9, 2);
                 validchars = UPPERCASE_LETTERS DIGITS;
         } else
                 return -EOPNOTSUPP;