From 1a8e72074eb28caa95524481ef6d78f856281d12 Mon Sep 17 00:00:00 2001 From: Armin Novak Date: Tue, 3 Mar 2026 17:00:59 +0100 Subject: [PATCH] [winpr,return] improve return value checks propagate error conditions up the call chain --- .../libwinpr/utils/collections/MessageQueue.c | 8 ++++++-- winpr/libwinpr/utils/collections/Queue.c | 5 ++++- winpr/libwinpr/utils/wlog/UdpAppender.c | 20 +++++++++++-------- 3 files changed, 22 insertions(+), 11 deletions(-) diff --git a/winpr/libwinpr/utils/collections/MessageQueue.c b/winpr/libwinpr/utils/collections/MessageQueue.c index 299fa1f49..37ecec0f5 100644 --- a/winpr/libwinpr/utils/collections/MessageQueue.c +++ b/winpr/libwinpr/utils/collections/MessageQueue.c @@ -263,7 +263,10 @@ int MessageQueue_Peek(wMessageQueue* queue, wMessage* message, BOOL remove) queue->size--; if (queue->size < 1) - (void)ResetEvent(queue->event); + { + if (ResetEvent(queue->event)) + status = -1; + } } } @@ -346,7 +349,8 @@ int MessageQueue_Clear(wMessageQueue* queue) queue->head = (queue->head + 1) % queue->capacity; queue->size--; } - (void)ResetEvent(queue->event); + if (!ResetEvent(queue->event)) + status = -1; queue->closed = FALSE; LeaveCriticalSection(&queue->lock); diff --git a/winpr/libwinpr/utils/collections/Queue.c b/winpr/libwinpr/utils/collections/Queue.c index a0d7f503e..83f504db7 100644 --- a/winpr/libwinpr/utils/collections/Queue.c +++ b/winpr/libwinpr/utils/collections/Queue.c @@ -278,7 +278,10 @@ BOOL Queue_Enqueue(wQueue* queue, const void* obj) queue->size++; if (signalSet) - (void)SetEvent(queue->event); + { + if (!SetEvent(queue->event)) + goto out; + } } out: diff --git a/winpr/libwinpr/utils/wlog/UdpAppender.c b/winpr/libwinpr/utils/wlog/UdpAppender.c index 50a3928c0..f5357f8a4 100644 --- a/winpr/libwinpr/utils/wlog/UdpAppender.c +++ b/winpr/libwinpr/utils/wlog/UdpAppender.c @@ -95,14 +95,18 @@ static BOOL WLog_UdpAppender_WriteMessage(wLog* log, wLogAppender* appender, char prefix[WLOG_MAX_PREFIX_SIZE] = WINPR_C_ARRAY_INIT; WLog_Layout_GetMessagePrefix(log, appender->Layout, cmessage, prefix, sizeof(prefix)); - (void)_sendto(udpAppender->sock, prefix, (int)strnlen(prefix, ARRAYSIZE(prefix)), 0, - &udpAppender->targetAddr, udpAppender->targetAddrLen); - (void)_sendto(udpAppender->sock, cmessage->TextString, - (int)strnlen(cmessage->TextString, INT_MAX), 0, &udpAppender->targetAddr, - udpAppender->targetAddrLen); - (void)_sendto(udpAppender->sock, "\n", 1, 0, &udpAppender->targetAddr, - udpAppender->targetAddrLen); - return TRUE; + BOOL res = TRUE; + if (_sendto(udpAppender->sock, prefix, (int)strnlen(prefix, ARRAYSIZE(prefix)), 0, + &udpAppender->targetAddr, udpAppender->targetAddrLen) < 0) + res = FALSE; + if (_sendto(udpAppender->sock, cmessage->TextString, + (int)strnlen(cmessage->TextString, INT_MAX), 0, &udpAppender->targetAddr, + udpAppender->targetAddrLen) < 0) + res = FALSE; + if (_sendto(udpAppender->sock, "\n", 1, 0, &udpAppender->targetAddr, + udpAppender->targetAddrLen) < 0) + res = FALSE; + return res; } static BOOL WLog_UdpAppender_WriteDataMessage(wLog* log, wLogAppender* appender,