summaryrefslogtreecommitdiff
path: root/components/drivers
diff options
context:
space:
mode:
authorzhao maosheng <[email protected]>2024-07-15 17:29:11 +0800
committerRbb666 <[email protected]>2024-07-18 10:05:05 +0800
commit393a61b048a06c00632c9ba507bf17fbd3d4239f (patch)
tree91076193d6f5c123d9474d6acfd02fa24a5f3d07 /components/drivers
parent861e32490f27667b5bb6cd12a5e5ae14f91e60cd (diff)
Fix potential return value discrepancy when writing to urandom
Diffstat (limited to 'components/drivers')
-rw-r--r--components/drivers/misc/rt_random.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/components/drivers/misc/rt_random.c b/components/drivers/misc/rt_random.c
index da6b312e1e..9f4be20902 100644
--- a/components/drivers/misc/rt_random.c
+++ b/components/drivers/misc/rt_random.c
@@ -46,7 +46,7 @@ static rt_ssize_t random_read(rt_device_t dev, rt_off_t pos, void *buffer, rt_si
static rt_ssize_t random_write(rt_device_t dev, rt_off_t pos, const void *buffer, rt_size_t size)
{
- ssize_t ret = sizeof(seed);
+ ssize_t ret = sizeof(seed) < size ? sizeof(seed) : size;
rt_memcpy(&seed, buffer, ret);
return ret;
}
@@ -137,7 +137,7 @@ static rt_ssize_t random_uread(rt_device_t dev, rt_off_t pos, void *buffer, rt_s
static rt_ssize_t random_uwrite(rt_device_t dev, rt_off_t pos, const void *buffer, rt_size_t size)
{
- ssize_t ret = sizeof(useed);
+ ssize_t ret = sizeof(useed) < size ? sizeof(useed) : size;
rt_memcpy(&useed, buffer, ret);
return ret;
}