]> git.ipfire.org Git - thirdparty/openwrt.git/commitdiff
kernel: replace strcpy/strcat with strscpy/strlcat 24132/head
authorRosen Penev <rosenp@gmail.com>
Thu, 25 Jun 2026 02:00:29 +0000 (19:00 -0700)
committerJonas Jelonek <jelonek.jonas@gmail.com>
Thu, 9 Jul 2026 07:31:24 +0000 (09:31 +0200)
Replace deprecated strcpy/strcat calls with strscpy/strlcat for
bounds-checked string operations in swconfig_leds, clk-rtl83xx,
and UML pseudo-random MAC patch.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/24132
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
target/linux/generic/files/drivers/net/phy/swconfig_leds.c
target/linux/realtek/files-6.18/drivers/clk/realtek/clk-rtl83xx.c
target/linux/uml/patches-6.12/102-pseudo-random-mac.patch

index b0970b00e8a440986cb5f1aba9d29e2582333d68..9c680bf3f54ae281fb13d44de1c7230ca1f85b2f 100644 (file)
@@ -213,15 +213,15 @@ static ssize_t swconfig_trig_mode_show(struct device *dev,
        read_unlock(&trig_data->lock);
 
        if (mode == 0) {
-               strcpy(buf, "none\n");
+               strscpy(buf, "none\n", PAGE_SIZE);
        } else {
                if (mode & SWCONFIG_LED_MODE_LINK)
-                       strcat(buf, "link ");
+                       strlcat(buf, "link ", PAGE_SIZE);
                if (mode & SWCONFIG_LED_MODE_TX)
-                       strcat(buf, "tx ");
+                       strlcat(buf, "tx ", PAGE_SIZE);
                if (mode & SWCONFIG_LED_MODE_RX)
-                       strcat(buf, "rx ");
-               strcat(buf, "\n");
+                       strlcat(buf, "rx ", PAGE_SIZE);
+               strlcat(buf, "\n", PAGE_SIZE);
        }
 
        return strlen(buf)+1;
index c6fccdc42d4a0571a173ebd474b3798bd6afd5bd..82095df5cb2dffb2823ad3687317d291c5d7514b 100644 (file)
@@ -773,8 +773,8 @@ static void rtcl_ccu_log_early(void)
                sprintf(clkinfo, ", %s %lu MHz", rtcl_clk_info[clk_idx].display_name,
                        rtcl_ccu->clks[clk_idx].startup / 1000000);
                if (clk_idx == CLK_MEM)
-                       strcat(clkinfo, meminfo);
-               strcat(msg, clkinfo);
+                       strlcat(clkinfo, meminfo, sizeof(clkinfo));
+               strlcat(msg, clkinfo, sizeof(msg));
        }
        pr_info("%s\n", msg);
 }
@@ -790,10 +790,10 @@ static void rtcl_ccu_log_late(void)
                overclock |= rclk->max > rclk->startup;
                sprintf(clkinfo, ", %s %lu-%lu MHz", rtcl_clk_info[clk_idx].display_name,
                        rclk->min / 1000000, rclk->max / 1000000);
-               strcat(msg, clkinfo);
+               strlcat(msg, clkinfo, sizeof(msg));
        }
        if (overclock)
-               strcat(msg, ", OVERCLOCK AT OWN RISK");
+               strlcat(msg, ", OVERCLOCK AT OWN RISK", sizeof(msg));
 
        dev_info(&rtcl_ccu->pdev->dev, "%s\n", msg);
 }
index 2b42459fe8eca04e31e9405e436f55adccdffc7d..56369062f2a9e5942cf023fc2194b1ac1c27aa62 100644 (file)
@@ -69,8 +69,8 @@ Applies to vanilla kernel 3.9.4.
 +      if (!vmif)
 +              goto out;
 +
-+      strcpy (vmif, umid);
-+      strcat (vmif, ifname);
++      strscpy (vmif, umid, 1024);
++      strlcat (vmif, ifname, 1024);
 +
 +      tfm = crypto_alloc_ahash("sha1", 0, CRYPTO_ALG_ASYNC);
 +      if (IS_ERR(tfm))