When `flashing_mode` is set, `gb_tty_receive()` routes incoming bytes to
`cc1352_bootloader_rx()`. That helper appends the new bytes to the shared
`rx_buffer` with `memcpy()` but does not check that the chunk fits in the
remaining space first. The normal HDLC receive path already enforces
`MAX_RX_HDLC`, so do the same here before appending bootloader data.
If a packet would overflow the receive buffer, drop it and reset the
bootloader receive state instead of copying past the end of `rx_buffer`.
Signed-off-by: Pengpeng Hou <pengpeng(a)iscas.ac.cn>
---
drivers/greybus/gb-beagleplay.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/drivers/greybus/gb-beagleplay.c b/drivers/greybus/gb-beagleplay.c
index 87186f891a6a..bca3132adacd 100644
--- a/drivers/greybus/gb-beagleplay.c
+++ b/drivers/greybus/gb-beagleplay.c
@@ -535,6 +535,12 @@ static size_t cc1352_bootloader_rx(struct gb_beagleplay *bg, const u8 *data,
int ret;
size_t off = 0;
+ if (count > sizeof(bg->rx_buffer) - bg->rx_buffer_len) {
+ dev_err_ratelimited(&bg->sd->dev, "Bootloader RX buffer overflow");
+ bg->rx_buffer_len = 0;
+ return count;
+ }
+
memcpy(bg->rx_buffer + bg->rx_buffer_len, data, count);
bg->rx_buffer_len += count;
--
2.50.1 (Apple Git-155)
From: Sanjay Chitroda <sanjayembeddedse(a)gmail.com>
Hi all,
This patch series replaces manual cleanup and explicit kfree() calls with
the __free attribute from <linux/cleanup.h>. This modernizes the memory
management style and simplifies common error paths without altering any
functional behavior.
The __free attribute provides automatic scope-based cleanup, making
resource management clearer and reducing the chances of missing cleanup
on early returns.
No functional changes are intended in this series.
Testing:
- Compiled with W=1
- Build-tested on i86_64
Based on:
<linux-v7.0-rc2>
Feel free to share your valuable input in context of the cleanup API.
Thanks,
Sanjay Chitroda
Sanjay Chitroda (7):
staging: greybus: simplify cleanup using __free
iio: ssp_sensors: simplify cleanup using __free
iio: st_sensors: simplify cleanup using __free
media: mediatek: vcodec: simplify cleanup using __free
media: chips-media: coda: simplify cleanup using __free
media: allegro: simplify cleanup using __free
staging: rtl8723bs: simplify cleanup using __free
drivers/iio/common/ssp_sensors/ssp_spi.c | 9 +-
.../iio/common/st_sensors/st_sensors_core.c | 7 +-
.../media/platform/allegro-dvt/allegro-core.c | 95 +++++--------------
.../platform/chips-media/coda/coda-bit.c | 4 +-
.../platform/chips-media/coda/coda-jpeg.c | 39 ++++----
.../mediatek/vcodec/common/mtk_vcodec_dbgfs.c | 3 +-
drivers/staging/greybus/camera.c | 27 ++----
drivers/staging/greybus/loopback.c | 35 +++-----
drivers/staging/greybus/raw.c | 6 +-
.../staging/rtl8723bs/hal/rtl8723b_hal_init.c | 13 +--
drivers/staging/rtl8723bs/hal/sdio_ops.c | 37 ++------
11 files changed, 78 insertions(+), 197 deletions(-)
--
2.34.1