From 4a95185dc697be8e0dc9e9310216a2b392d2b782 Mon Sep 17 00:00:00 2001 From: matt335672 <30179339+matt335672@users.noreply.github.com> Date: Fri, 28 Feb 2025 11:18:58 +0000 Subject: [PATCH 1/6] Coverity CID 475385 --- sesman/sesman.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/sesman/sesman.c b/sesman/sesman.c index 18cd765f..2add7803 100644 --- a/sesman/sesman.c +++ b/sesman/sesman.c @@ -933,7 +933,12 @@ main(int argc, char **argv) LOG(LOG_LEVEL_ERROR, "sesman.c: error creating dir " X11_UNIX_SOCKET_DIRECTORY); } - g_chmod_hex(X11_UNIX_SOCKET_DIRECTORY, 0x1777); + if (g_chmod_hex(X11_UNIX_SOCKET_DIRECTORY, 0x1777) != 0) + { + LOG(LOG_LEVEL_ERROR, + "sesman.c: can't set permissions on " + X11_UNIX_SOCKET_DIRECTORY "[%s]", g_get_strerror()); + } } if ((error = pre_session_list_init(MAX_PRE_SESSION_ITEMS)) == 0 && From a7ab8ecd9a893843a1f9117e2d1d937c2cda49d1 Mon Sep 17 00:00:00 2001 From: matt335672 <30179339+matt335672@users.noreply.github.com> Date: Fri, 28 Feb 2025 11:39:59 +0000 Subject: [PATCH 2/6] Coverity CID 468102 --- xrdp/xrdp_mm.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/xrdp/xrdp_mm.c b/xrdp/xrdp_mm.c index 68be2c3b..2e9f5380 100644 --- a/xrdp/xrdp_mm.c +++ b/xrdp/xrdp_mm.c @@ -1560,7 +1560,11 @@ xrdp_mm_update_module_frame_ack(struct xrdp_mm *self) LOG_DEVEL(LOG_LEVEL_DEBUG, "xrdp_mm_update_module_ack: " "frame_id_server %d", encoder->frame_id_server); encoder->frame_id_server_sent = encoder->frame_id_server; - self->mod->mod_frame_ack(self->mod, 0, encoder->frame_id_server); + if (self->mod != NULL) + { + self->mod->mod_frame_ack(self->mod, 0, + encoder->frame_id_server); + } } } return 0; @@ -3737,7 +3741,7 @@ xrdp_mm_process_enc_done(struct xrdp_mm *self) self->encoder->frame_id_server = enc_done->frame_id; xrdp_mm_update_module_frame_ack(self); } - else + else if (self->mod != NULL) { self->mod->mod_frame_ack(self->mod, 0, enc_done->frame_id); From 621920e3f0333dff48d89569d1e669b7e8ba9f9a Mon Sep 17 00:00:00 2001 From: matt335672 <30179339+matt335672@users.noreply.github.com> Date: Fri, 28 Feb 2025 11:41:08 +0000 Subject: [PATCH 3/6] Coverity CID 468103 --- xrdp/xrdp_encoder.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xrdp/xrdp_encoder.c b/xrdp/xrdp_encoder.c index aa887069..2c783e94 100644 --- a/xrdp/xrdp_encoder.c +++ b/xrdp/xrdp_encoder.c @@ -390,7 +390,7 @@ xrdp_encoder_delete(struct xrdp_encoder *self) } /* tell worker thread to shut down */ g_set_wait_obj(self->xrdp_encoder_term_request); - g_obj_wait(&self->xrdp_encoder_term_done, 1, NULL, 0, 5000); + (void)g_obj_wait(&self->xrdp_encoder_term_done, 1, NULL, 0, 5000); if (!g_is_wait_obj_set(self->xrdp_encoder_term_done)) { LOG(LOG_LEVEL_WARNING, "Encoder failed to shut down cleanly"); From 8b449868fee49d23e8d7fb9facca97e0ed8a473d Mon Sep 17 00:00:00 2001 From: matt335672 <30179339+matt335672@users.noreply.github.com> Date: Fri, 28 Feb 2025 11:44:27 +0000 Subject: [PATCH 4/6] Coverity CID 468108 Repeated constant WAVE_FORMAT_MULAW in conditional --- sesman/chansrv/audin.c | 1 - 1 file changed, 1 deletion(-) diff --git a/sesman/chansrv/audin.c b/sesman/chansrv/audin.c index 4574a5b9..2aa5ac03 100644 --- a/sesman/chansrv/audin.c +++ b/sesman/chansrv/audin.c @@ -103,7 +103,6 @@ audin_wave_format_tag_to_str(int tag) (tag == WAVE_FORMAT_ADPCM) ? "WAVE_FORMAT_ADPCM" : (tag == WAVE_FORMAT_ALAW) ? "WAVE_FORMAT_ALAW" : (tag == WAVE_FORMAT_MULAW) ? "WAVE_FORMAT_MULAW" : - (tag == WAVE_FORMAT_MULAW) ? "WAVE_FORMAT_MULAW" : (tag == WAVE_FORMAT_MPEGLAYER3) ? "WAVE_FORMAT_MPEGLAYER3" : (tag == WAVE_FORMAT_OPUS) ? "WAVE_FORMAT_OPUS" : (tag == WAVE_FORMAT_AAC) ? "WAVE_FORMAT_AAC" : From 280557260148d4a85f38fcbca00ee66d13abfc70 Mon Sep 17 00:00:00 2001 From: matt335672 <30179339+matt335672@users.noreply.github.com> Date: Fri, 28 Feb 2025 11:51:08 +0000 Subject: [PATCH 5/6] Coverity CID 468112 --- xrdp/xrdp_painter.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/xrdp/xrdp_painter.c b/xrdp/xrdp_painter.c index a5ef48a0..0f222297 100644 --- a/xrdp/xrdp_painter.c +++ b/xrdp/xrdp_painter.c @@ -250,6 +250,7 @@ wm_painter_set_target(struct xrdp_painter *self) int xrdp_painter_begin_update(struct xrdp_painter *self) { + int rv; LOG_DEVEL(LOG_LEVEL_DEBUG, "xrdp_painter_begin_update:"); if (self == 0) { @@ -263,9 +264,9 @@ xrdp_painter_begin_update(struct xrdp_painter *self) return 0; } - libxrdp_orders_init(self->session); + rv = libxrdp_orders_init(self->session); wm_painter_set_target(self); - return 0; + return rv; } /*****************************************************************************/ From f187d2314cba9bb03a37538a6f5eb653bd51869d Mon Sep 17 00:00:00 2001 From: matt335672 <30179339+matt335672@users.noreply.github.com> Date: Fri, 28 Feb 2025 12:01:02 +0000 Subject: [PATCH 6/6] Coverity CID 468117 --- common/os_calls.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/common/os_calls.c b/common/os_calls.c index 21525bbc..6c8908c2 100644 --- a/common/os_calls.c +++ b/common/os_calls.c @@ -1457,6 +1457,16 @@ g_sck_recv_fd_set(int sck, void *ptr, unsigned int len, if ((rv = recvmsg(sck, &msg, 0)) > 0) { struct cmsghdr *cmsg; + + // Coverity: msg is 'tainted', so check msg.control and + // msg.msg_controllen are sane (i.e. recvmsg() hasn't done + // something odd) + msg.msg_control = control_un.control; + if (msg.msg_controllen > sizeof(control_un.control)) + { + msg.msg_controllen = sizeof(control_un.control); + } + if ((msg.msg_flags & MSG_CTRUNC) != 0) { LOG(LOG_LEVEL_WARNING, "Ancillary data on recvmsg() was truncated");