summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsakumisu <[email protected]>2025-05-29 10:51:49 +0800
committersakumisu <[email protected]>2025-05-29 10:51:49 +0800
commit8c5026e9cbb4931adea7b3bbfa69e9f00b36e4b2 (patch)
treefc6c861696201f1411dcbddb7df32f090dfeafb3
parent8a81d814350a37c53eb5857d28df7dea23df8abb (diff)
fix overflow warning
Signed-off-by: sakumisu <[email protected]>
-rw-r--r--class/cdc/usbh_cdc_ncm.c2
-rw-r--r--class/hid/usbh_hid.c6
-rw-r--r--class/vendor/net/usbh_asix.c2
-rw-r--r--class/vendor/net/usbh_rtl8152.c2
4 files changed, 6 insertions, 6 deletions
diff --git a/class/cdc/usbh_cdc_ncm.c b/class/cdc/usbh_cdc_ncm.c
index e87f2f8e..7e35da36 100644
--- a/class/cdc/usbh_cdc_ncm.c
+++ b/class/cdc/usbh_cdc_ncm.c
@@ -52,7 +52,7 @@ static int usbh_cdc_ncm_get_ntb_parameters(struct usbh_cdc_ncm *cdc_ncm_class, s
return ret;
}
- memcpy((uint8_t *)param, g_cdc_ncm_buf, ret - 8);
+ memcpy((uint8_t *)param, g_cdc_ncm_buf, MIN(ret - 8, sizeof(struct cdc_ncm_ntb_parameters)));
return 0;
}
diff --git a/class/hid/usbh_hid.c b/class/hid/usbh_hid.c
index ac454cb3..cb407f54 100644
--- a/class/hid/usbh_hid.c
+++ b/class/hid/usbh_hid.c
@@ -106,7 +106,7 @@ int usbh_hid_get_idle(struct usbh_hid *hid_class, uint8_t *buffer)
if (ret < 8) {
return ret;
}
- memcpy(buffer, g_hid_buf[hid_class->minor], ret - 8);
+ memcpy(buffer, g_hid_buf[hid_class->minor], MIN(ret - 8, 1));
return ret;
}
@@ -148,7 +148,7 @@ int usbh_hid_get_protocol(struct usbh_hid *hid_class, uint8_t *protocol)
if (ret < 8) {
return ret;
}
- memcpy(protocol, g_hid_buf[hid_class->minor], ret - 8);
+ memcpy(protocol, g_hid_buf[hid_class->minor], MIN(ret - 8, 1));
return ret;
}
@@ -190,7 +190,7 @@ int usbh_hid_get_report(struct usbh_hid *hid_class, uint8_t report_type, uint8_t
if (ret < 8) {
return ret;
}
- memcpy(buffer, g_hid_buf[hid_class->minor], ret - 8);
+ memcpy(buffer, g_hid_buf[hid_class->minor], MIN(ret - 8, buflen));
return ret;
}
diff --git a/class/vendor/net/usbh_asix.c b/class/vendor/net/usbh_asix.c
index f788b3ae..60b64472 100644
--- a/class/vendor/net/usbh_asix.c
+++ b/class/vendor/net/usbh_asix.c
@@ -74,7 +74,7 @@ static int usbh_asix_read_cmd(struct usbh_asix *asix_class,
if (ret < 8) {
return ret;
}
- memcpy(data, g_asix_buf, ret - 8);
+ memcpy(data, g_asix_buf, MIN(ret - 8, size));
return ret;
}
diff --git a/class/vendor/net/usbh_rtl8152.c b/class/vendor/net/usbh_rtl8152.c
index 99f588c6..60fec839 100644
--- a/class/vendor/net/usbh_rtl8152.c
+++ b/class/vendor/net/usbh_rtl8152.c
@@ -965,7 +965,7 @@ static int usbh_rtl8152_read_regs(struct usbh_rtl8152 *rtl8152_class,
if (ret < 8) {
return ret;
}
- memcpy(data, g_rtl8152_buf, ret - 8);
+ memcpy(data, g_rtl8152_buf, MIN(ret - 8, size));
return ret;
}