From 2a01430ba5f2cbb3c4275abc6ab6fb7dec1e44c5 Mon Sep 17 00:00:00 2001 From: Chris Johns Date: Mon, 19 Jul 2021 18:57:51 +1000 Subject: rtemsbsd: Catch timeout overflows Update #4475 --- rtemsbsd/rtems/rtems-kernel-timesupport.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/rtemsbsd/rtems/rtems-kernel-timesupport.c b/rtemsbsd/rtems/rtems-kernel-timesupport.c index ef14d1fa..bc2e7b9f 100644 --- a/rtemsbsd/rtems/rtems-kernel-timesupport.c +++ b/rtemsbsd/rtems/rtems-kernel-timesupport.c @@ -37,6 +37,7 @@ #include +#include #include /* @@ -45,10 +46,15 @@ int tvtohz(struct timeval *tv) { - struct timespec ts; + struct timespec ts; + uint32_t ticks; - ts.tv_sec = tv->tv_sec; - ts.tv_nsec = tv->tv_usec * 1000; + ts.tv_sec = tv->tv_sec; + ts.tv_nsec = tv->tv_usec * 1000; - return (int) _Timespec_To_ticks( &ts ); + ticks = _Timespec_To_ticks(&ts); + if (ticks > INT_MAX) + ticks = INT_MAX; + + return ticks; } -- cgit v1.2.3