Commit 5c41f379 for openh264
commit 5c41f3797988902f1db625e06817397641642a8c
Author: BenzhengZhang <140143892+BenzhengZhang@users.noreply.github.com>
Date: Thu Aug 27 10:39:17 2026 +0800
test/decoder: fix sanitizer findings in UT and timeout math (#3986)
Co-authored-by: benzzhan <benzzhan@cisco.com>
diff --git a/codec/decoder/core/src/wels_decoder_thread.cpp b/codec/decoder/core/src/wels_decoder_thread.cpp
index fdf4b4d7..0b6b7721 100644
--- a/codec/decoder/core/src/wels_decoder_thread.cpp
+++ b/codec/decoder/core/src/wels_decoder_thread.cpp
@@ -128,9 +128,11 @@ void SemDestroy (SWelsDecSemphore* s) {
static void getTimespecFromTimeout (struct timespec* ts, int32_t timeout) {
struct timeval tv;
gettimeofday (&tv, 0);
- ts->tv_nsec = tv.tv_usec * 1000 + timeout * 1000000;
- ts->tv_sec = tv.tv_sec + ts->tv_nsec / 1000000000;
- ts->tv_nsec %= 1000000000;
+ const int64_t kNanosecondsPerSecond = 1000000000LL;
+ const int64_t iTimeoutNanoseconds = static_cast<int64_t> (tv.tv_usec) * 1000LL
+ + static_cast<int64_t> (timeout) * 1000000LL;
+ ts->tv_sec = tv.tv_sec + static_cast<time_t> (iTimeoutNanoseconds / kNanosecondsPerSecond);
+ ts->tv_nsec = static_cast<long> (iTimeoutNanoseconds % kNanosecondsPerSecond);
}
int EventCreate (SWelsDecEvent* e, int manualReset, int initialState) {
if (pthread_mutex_init (& (e->m), NULL))
diff --git a/test/encoder/EncUT_EncoderExt.cpp b/test/encoder/EncUT_EncoderExt.cpp
index 69293fde..eb89660a 100644
--- a/test/encoder/EncUT_EncoderExt.cpp
+++ b/test/encoder/EncUT_EncoderExt.cpp
@@ -47,6 +47,7 @@ class EncoderInterfaceTest : public ::testing::Test {
pSrcPic = new SSourcePicture;
ASSERT_TRUE (pSrcPic != NULL);
+ memset (pSrcPic, 0, sizeof (SSourcePicture));
pOption = new SEncParamExt();
ASSERT_TRUE (pOption != NULL);