Skip to content

Commit b0b1e0c

Browse files
authored
Merge pull request #3972 from mysterywolf/pr1
[bug fixed] add mutex values' overflow-check code
2 parents 84b2065 + b93b494 commit b0b1e0c

File tree

1 file changed

+11
-3
lines changed

1 file changed

+11
-3
lines changed

src/ipc.c

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@
3737
* 2020-07-29 Meco Man fix thread->event_set/event_info when received an
3838
* event without pending
3939
* 2020-10-11 Meco Man add semaphore values' overflow-check code
40-
* in the function of rt_sem_release
40+
* 2020-10-21 Meco Man add mutex values' overflow-check code
4141
*/
4242

4343
#include <rtthread.h>
@@ -697,8 +697,16 @@ rt_err_t rt_mutex_take(rt_mutex_t mutex, rt_int32_t time)
697697

698698
if (mutex->owner == thread)
699699
{
700-
/* it's the same thread */
701-
mutex->hold ++;
700+
if(mutex->hold < 255u)
701+
{
702+
/* it's the same thread */
703+
mutex->hold ++;
704+
}
705+
else
706+
{
707+
rt_hw_interrupt_enable(temp); /* enable interrupt */
708+
return -RT_EFULL; /* value overflowed */
709+
}
702710
}
703711
else
704712
{

0 commit comments

Comments
 (0)