• New Defects reported by Coverity Scan for Synchronet

    From [email protected]@1:103/705 to All on Sun Apr 19 12:52:21 2026

    ----==_mimepart_69e4d004e21bf_13347f2c65a87519a05474a
    Content-Type: text/plain; charset=us-ascii
    Content-Transfer-Encoding: 7bit

    Hi,

    Please find the latest report on new defect(s) introduced to Synchronet found with Coverity Scan.

    3 new defect(s) introduced to Synchronet found with Coverity Scan.
    3 defect(s), reported by Coverity Scan earlier, were marked fixed in the recent build analyzed by Coverity Scan.

    New defect(s) Reported-by: Coverity Scan
    Showing 3 of 3 defect(s)


    ** CID 645706: Error handling issues (NEGATIVE_RETURNS) /tmp/sbbs-Apr-19-2026/src/conio/cterm_cterm.c: 635 in cterm_cterm_handle_font_dcs()


    _____________________________________________________________________________________________
    *** CID 645706: Error handling issues (NEGATIVE_RETURNS) /tmp/sbbs-Apr-19-2026/src/conio/cterm_cterm.c: 635 in cterm_cterm_handle_font_dcs()
    629 return;
    630 if (cterm->font_slot > 255)
    631 return;
    632 if (p && *p == ':') {
    633 p++;
    634 i = b64_decode(cterm->fontbuf, sizeof(cterm->fontbuf), p, 0);
    CID 645706: Error handling issues (NEGATIVE_RETURNS)
    "i" is passed to a parameter that cannot be negative.
    635 p2 = malloc(i);
    636 if (p2) {
    637 memcpy(p2, cterm->fontbuf, i);
    638 replace_font(cterm->font_slot,
    639 strdup("Remote Defined Font"), p2, i);
    640 }

    ** CID 645705: Memory - corruptions (OVERRUN) /tmp/sbbs-Apr-19-2026/src/conio/cterm_cterm.c: 637 in cterm_cterm_handle_font_dcs()


    _____________________________________________________________________________________________
    *** CID 645705: Memory - corruptions (OVERRUN) /tmp/sbbs-Apr-19-2026/src/conio/cterm_cterm.c: 637 in cterm_cterm_handle_font_dcs()
    631 return;
    632 if (p && *p == ':') {
    633 p++;
    634 i = b64_decode(cterm->fontbuf, sizeof(cterm->fontbuf), p, 0);
    635 p2 = malloc(i);
    636 if (p2) {
    CID 645705: Memory - corruptions (OVERRUN)
    Calling "memcpy" with "p2" and "i" is suspicious because of the very large index, 18446744073709551615. The index may be due to a negative parameter being interpreted as unsigned.
    637 memcpy(p2, cterm->fontbuf, i);
    638 replace_font(cterm->font_slot,
    639 strdup("Remote Defined Font"), p2, i);
    640 }
    641 }
    642 }

    ** CID 645704: (STRING_OVERFLOW) /tmp/sbbs-Apr-19-2026/src/conio/cterm_dec.c: 2139 in cterm_dec_dcs_finish()
    /tmp/sbbs-Apr-19-2026/src/conio/cterm_dec.c: 2135 in cterm_dec_dcs_finish()


    _____________________________________________________________________________________________
    *** CID 645704: (STRING_OVERFLOW) /tmp/sbbs-Apr-19-2026/src/conio/cterm_dec.c: 2139 in cterm_dec_dcs_finish()
    2133 if (cterm->fg_tc_str) {
    2134 strcat(tmp, ";");
    2135 strcat(tmp, cterm->fg_tc_str);
    2136 }
    2137 if (cterm->bg_tc_str) {
    2138 strcat(tmp, ";");
    CID 645704: (STRING_OVERFLOW)
    You might overrun the 3072-character fixed-size string "tmp" by copying "cterm->bg_tc_str" without checking the length.
    2139 strcat(tmp, cterm->bg_tc_str);
    2140 }
    2141 strcat(tmp, "m\x1b\\");
    2142 cterm_respond(cterm, tmp, strlen(tmp));
    2143 }
    2144 else { /tmp/sbbs-Apr-19-2026/src/conio/cterm_dec.c: 2135 in cterm_dec_dcs_finish()
    2129 case 6: strcat(tmp, ";43"); break;
    2130 case 7: strcat(tmp, ";47"); break;
    2131 }
    2132 }
    2133 if (cterm->fg_tc_str) {
    2134 strcat(tmp, ";");
    CID 645704: (STRING_OVERFLOW)
    You might overrun the 3072-character fixed-size string "tmp" by copying "cterm->fg_tc_str" without checking the length.
    2135 strcat(tmp, cterm->fg_tc_str);
    2136 }
    2137 if (cterm->bg_tc_str) {
    2138 strcat(tmp, ";");
    2139 strcat(tmp, cterm->bg_tc_str);
    2140 }


    ________________________________________________________________________________________________________
    To view the defects in Coverity Scan visit, https://scan.coverity.com/projects/synchronet?tab=overview


    ----==_mimepart_69e4d004e21bf_13347f2c65a87519a05474a
    Content-Type: text/html; charset=us-ascii
    Content-Transfer-Encoding: 7bit

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>New Defects Reported - Synchronet</title>
    <style>
    body { font-family: Arial, sans-serif; color: #222; line-height: 1.6; }
    .button {
    display: inline-block;
    padding: 10px 20px;
    margin: 20px 0;
    font-size: 16px;
    color: #fff !important;
    background-color: #0056b3;
    text-decoration: none;
    border-radius: 5px;
    }
    pre {
    background: #f8f9fa;
    padding: 10px;
    border-radius: 5px;
    font-size: 14px;
    overflow-x: auto;
    }
    </style>
    </head>
    <body>
    <p>Hi,</p>

    <p>
    Please find the latest report on new defect(s) introduced to <strong>Synchronet</strong>
    found with Coverity Scan.
    </p>

    <ul>
    <li><strong>New Defects Found:</strong> 3</li>
    <li>
    3 defect(s), reported by Coverity Scan earlier, were marked fixed in the recent build analyzed by Coverity Scan.
    </li>
    <li><strong>Defects Shown:</strong> Showing 3 of 3 defect(s)</li>
    </ul>

    <h3>Defect Details</h3>
    <pre>
    ** CID 645706: Error handling issues (NEGATIVE_RETURNS) /tmp/sbbs-Apr-19-2026/src/conio/cterm_cterm.c: 635 in cterm_cterm_handle_font_dcs()


    _____________________________________________________________________________________________
    *** CID 645706: Error handling issues (NEGATIVE_RETURNS) /tmp/sbbs-Apr-19-2026/src/conio/cterm_cterm.c: 635 in cterm_cterm_handle_font_dcs()
    629 return;
    630 if (cterm-&gt;font_slot &gt; 255)
    631 return;
    632 if (p &amp;&amp; *p == &#39;:&#39;) {
    633 p++;
    634 i = b64_decode(cterm-&gt;fontbuf, sizeof(cterm-&gt;fontbuf), p, 0);
    &gt;&gt;&gt; CID 645706: Error handling issues (NEGATIVE_RETURNS) &gt;&gt;&gt; &quot;i&quot; is passed to a parameter that cannot be negative.
    635 p2 = malloc(i);
    636 if (p2) {
    637 memcpy(p2, cterm-&gt;fontbuf, i);
    638 replace_font(cterm-&gt;font_slot,
    639 strdup(&quot;Remote Defined Font&quot;), p2, i);
    640 }

    ** CID 645705: Memory - corruptions (OVERRUN) /tmp/sbbs-Apr-19-2026/src/conio/cterm_cterm.c: 637 in cterm_cterm_handle_font_dcs()


    _____________________________________________________________________________________________
    *** CID 645705: Memory - corruptions (OVERRUN) /tmp/sbbs-Apr-19-2026/src/conio/cterm_cterm.c: 637 in cterm_cterm_handle_font_dcs()
    631 return;
    632 if (p &amp;&amp; *p == &#39;:&#39;) {
    633 p++;
    634 i = b64_decode(cterm-&gt;fontbuf, sizeof(cterm-&gt;fontbuf), p, 0);
    635 p2 = malloc(i);
    636 if (p2) {
    &gt;&gt;&gt; CID 645705: Memory - corruptions (OVERRUN) &gt;&gt;&gt; Calling &quot;memcpy&quot; with &quot;p2&quot; and &quot;i&quot; is suspicious because of the very large index, 18446744073709551615. The index may be due to a negative parameter being interpreted as unsigned.
    637 memcpy(p2, cterm-&gt;fontbuf, i);
    638 replace_font(cterm-&gt;font_slot,
    639 strdup(&quot;Remote Defined Font&quot;), p2, i);
    640 }
    641 }
    642 }

    ** CID 645704: (STRING_OVERFLOW) /tmp/sbbs-Apr-19-2026/src/conio/cterm_dec.c: 2139 in cterm_dec_dcs_finish()
    /tmp/sbbs-Apr-19-2026/src/conio/cterm_dec.c: 2135 in cterm_dec_dcs_finish()


    _____________________________________________________________________________________________
    *** CID 645704: (STRING_OVERFLOW) /tmp/sbbs-Apr-19-2026/src/conio/cterm_dec.c: 2139 in cterm_dec_dcs_finish()
    2133 if (cterm-&gt;fg_tc_str) {
    2134 strcat(tmp, &quot;;&quot;);
    2135 strcat(tmp, cterm-&gt;fg_tc_str);
    2136 }
    2137 if (cterm-&gt;bg_tc_str) {
    2138 strcat(tmp, &quot;;&quot;);
    &gt;&gt;&gt; CID 645704: (STRING_OVERFLOW)
    &gt;&gt;&gt; You might overrun the 3072-character fixed-size string &quot;tmp&quot; by copying &quot;cterm-&gt;bg_tc_str&quot; without checking the length.
    2139 strcat(tmp, cterm-&gt;bg_tc_str);
    2140 }
    2141 strcat(tmp, &quot;m\x1b\\&quot;);
    2142 cterm_respond(cterm, tmp, strlen(tmp));
    2143 }
    2144 else { /tmp/sbbs-Apr-19-2026/src/conio/cterm_dec.c: 2135 in cterm_dec_dcs_finish()
    2129 case 6: strcat(tmp, &quot;;43&quot;); break;
    2130 case 7: strcat(tmp, &quot;;47&quot;); break;
    2131 }
    2132 }
    2133 if (cterm-&gt;fg_tc_str) {
    2134 strcat(tmp, &quot;;&quot;);
    &gt;&gt;&gt; CID 645704: (STRING_OVERFLOW)
    &gt;&gt;&gt; You might overrun the 3072-character fixed-size string &quot;tmp&quot; by copying &quot;cterm-&gt;fg_tc_str&quot; without checking the length.
    2135 strcat(tmp, cterm-&gt;fg_tc_str);
    2136 }
    2137 if (cterm-&gt;bg_tc_str) {
    2138 strcat(tmp, &quot;;&quot;);
    2139 strcat(tmp, cterm-&gt;bg_tc_str);
    2140 }

    </pre>

    <p>
    <a href="https://scan.coverity.com/projects/synchronet?tab=overview" class="button">View Defects in Coverity Scan</a>
    </p>

    <p>Best regards,</p>
    <p>The Coverity Scan Admin Team</p>
    <img class="logo" width="140" src="https://scan.coverity.com/assets/BlackDuckLogo-6697adc63e07340464201a2ad534d3d3e44f95d36edda20b140440d34f05372f.svg" />
    </body>
    </html>
    ----==_mimepart_69e4d004e21bf_13347f2c65a87519a05474a--

    --- SBBSecho 3.37-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From [email protected]@1:103/705 to All on Tue Apr 21 12:52:54 2026

    ----==_mimepart_69e77325c1f19_1534e22c65a87519a054733
    Content-Type: text/plain; charset=us-ascii
    Content-Transfer-Encoding: 7bit

    Hi,

    Please find the latest report on new defect(s) introduced to Synchronet found with Coverity Scan.

    6 new defect(s) introduced to Synchronet found with Coverity Scan.
    2 defect(s), reported by Coverity Scan earlier, were marked fixed in the recent build analyzed by Coverity Scan.

    New defect(s) Reported-by: Coverity Scan
    Showing 6 of 6 defect(s)


    ** CID 645741: Data race undermines locking (LOCK_EVASION) /tmp/sbbs-Apr-21-2026/src/xpdev/xpbeep.c: 2092 in xp_audio_play()


    _____________________________________________________________________________________________
    *** CID 645741: Data race undermines locking (LOCK_EVASION) /tmp/sbbs-Apr-21-2026/src/xpdev/xpbeep.c: 2092 in xp_audio_play() 2086 if (!newring) {
    2087 assert_pthread_mutex_unlock(&s->mutex);
    2088 xp_audio_close(h);
    2089 return -1;
    2090 }
    2091 s->ring = newring;
    CID 645741: Data race undermines locking (LOCK_EVASION)
    Thread1 sets "ring_frames" to a new value. Now the two threads have an inconsistent view of "ring_frames" and updates to fields correlated with "ring_frames" may be lost.
    2092 s->ring_frames = nframes;
    2093 assert_pthread_mutex_unlock(&s->mutex);
    2094 }
    2095 if (loop) {
    2096 assert_pthread_mutex_lock(&s->mutex);
    2097 s->loop = true;

    ** CID 645740: Null pointer dereferences (NULL_RETURNS) /tmp/sbbs-Apr-21-2026/src/xpdev/xpbeep.c: 2082 in xp_audio_play()


    _____________________________________________________________________________________________
    *** CID 645740: Null pointer dereferences (NULL_RETURNS) /tmp/sbbs-Apr-21-2026/src/xpdev/xpbeep.c: 2082 in xp_audio_play() 2076
    2077 if (h < 0)
    2078 return -1;
    2079 s = stream_from_handle(h);
    2080 /* Resize ring to fit exactly if larger than default. Loop mode requires
    2081 * the ring to hold the full sample (read wraps to write_pos). */
    CID 645740: Null pointer dereferences (NULL_RETURNS)
    Dereferencing "s", which is known to be "NULL".
    2082 if (nframes > s->ring_frames) {
    2083 int16_t *newring;
    2084 assert_pthread_mutex_lock(&s->mutex);
    2085 newring = realloc(s->ring, nframes * S_CHANNELS * sizeof(int16_t));
    2086 if (!newring) {
    2087 assert_pthread_mutex_unlock(&s->mutex);

    ** CID 645739: Concurrent data access violations (MISSING_LOCK) /tmp/sbbs-Apr-21-2026/src/xpdev/xpbeep.c: 1862 in xp_audio_open()


    _____________________________________________________________________________________________
    *** CID 645739: Concurrent data access violations (MISSING_LOCK) /tmp/sbbs-Apr-21-2026/src/xpdev/xpbeep.c: 1862 in xp_audio_open() 1856
    1857 assert_pthread_mutex_lock(&mixer_lock);
    1858 /* Reap any done+auto_close streams first to free slots. Safe under
    1859 * mixer_lock no mixer pull is in progress. */
    1860 for (i = 0; i < XP_AUDIO_MAX_STREAMS; i++) {
    1861 struct xp_audio_stream *r = mixer_streams[i];
    CID 645739: Concurrent data access violations (MISSING_LOCK) >>> Accessing "r->done" without holding lock "xp_audio_stream.mutex". Elsewhere, "xp_audio_stream.done" is written to with "xp_audio_stream.mutex" held 4 out of 4 times (1 of these accesses strongly imply that it is necessary).
    1862 if (r && r->auto_close && r->done) {
    1863 mixer_streams[i] = NULL;
    1864 free_stream_locked(r);
    1865 }
    1866 }
    1867 for (i = 0; i < XP_AUDIO_MAX_STREAMS; i++) {

    ** CID 645738: Uninitialized variables (UNINIT)


    _____________________________________________________________________________________________
    *** CID 645738: Uninitialized variables (UNINIT) /tmp/sbbs-Apr-21-2026/src/conio/cterm_cterm.c: 1125 in play_music() 1119 if (buf) {
    1120 if (note_frames > 0)
    1121 xptone_makewave(freq, buf, note_frames, WAVE_SHAPE_SINE_SAW_HARM);
    1122 if (pause_frames > 0)
    1123 memset(buf + (size_t)note_frames * XPBEEP_CHANNELS, 0,
    1124 (size_t)pause_frames * XPBEEP_FRAMESIZE);
    CID 645738: Uninitialized variables (UNINIT)
    Using uninitialized value "*buf" when calling "xp_audio_append".
    1125 xp_audio_append(cterm->music_stream, buf, total_frames);
    1126 free(buf);
    1127 if (cterm->musicfore) {
    1128 xp_audio_wait(cterm->music_stream);
    1129 had_foreground = 1;
    1130 }

    ** CID 645737: Concurrent data access violations (MISSING_LOCK) /tmp/sbbs-Apr-21-2026/src/xpdev/xpbeep.c: 2082 in xp_audio_play()


    _____________________________________________________________________________________________
    *** CID 645737: Concurrent data access violations (MISSING_LOCK) /tmp/sbbs-Apr-21-2026/src/xpdev/xpbeep.c: 2082 in xp_audio_play() 2076
    2077 if (h < 0)
    2078 return -1;
    2079 s = stream_from_handle(h);
    2080 /* Resize ring to fit exactly if larger than default. Loop mode requires
    2081 * the ring to hold the full sample (read wraps to write_pos). */
    CID 645737: Concurrent data access violations (MISSING_LOCK) >>> Accessing "s->ring_frames" without holding lock "xp_audio_stream.mutex". Elsewhere, "xp_audio_stream.ring_frames" is written to with "xp_audio_stream.mutex" held 1 out of 1 times.
    2082 if (nframes > s->ring_frames) {
    2083 int16_t *newring;
    2084 assert_pthread_mutex_lock(&s->mutex);
    2085 newring = realloc(s->ring, nframes * S_CHANNELS * sizeof(int16_t));
    2086 if (!newring) {
    2087 assert_pthread_mutex_unlock(&s->mutex);

    ** CID 645736: Concurrent data access violations (MISSING_LOCK) /tmp/sbbs-Apr-21-2026/src/xpdev/xpbeep.c: 1862 in xp_audio_open()


    _____________________________________________________________________________________________
    *** CID 645736: Concurrent data access violations (MISSING_LOCK) /tmp/sbbs-Apr-21-2026/src/xpdev/xpbeep.c: 1862 in xp_audio_open() 1856
    1857 assert_pthread_mutex_lock(&mixer_lock);
    1858 /* Reap any done+auto_close streams first to free slots. Safe under
    1859 * mixer_lock no mixer pull is in progress. */
    1860 for (i = 0; i < XP_AUDIO_MAX_STREAMS; i++) {
    1861 struct xp_audio_stream *r = mixer_streams[i];
    CID 645736: Concurrent data access violations (MISSING_LOCK) >>> Accessing "r->auto_close" without holding lock "xp_audio_stream.mutex". Elsewhere, "xp_audio_stream.auto_close" is written to with "xp_audio_stream.mutex" held 1 out of 1 times (1 of these accesses strongly imply that it is necessary).
    1862 if (r && r->auto_close && r->done) {
    1863 mixer_streams[i] = NULL;
    1864 free_stream_locked(r);
    1865 }
    1866 }
    1867 for (i = 0; i < XP_AUDIO_MAX_STREAMS; i++) {


    ________________________________________________________________________________________________________
    To view the defects in Coverity Scan visit, https://scan.coverity.com/projects/synchronet?tab=overview


    ----==_mimepart_69e77325c1f19_1534e22c65a87519a054733
    Content-Type: text/html; charset=us-ascii
    Content-Transfer-Encoding: 7bit

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>New Defects Reported - Synchronet</title>
    <style>
    body { font-family: Arial, sans-serif; color: #222; line-height: 1.6; }
    .button {
    display: inline-block;
    padding: 10px 20px;
    margin: 20px 0;
    font-size: 16px;
    color: #fff !important;
    background-color: #0056b3;
    text-decoration: none;
    border-radius: 5px;
    }
    pre {
    background: #f8f9fa;
    padding: 10px;
    border-radius: 5px;
    font-size: 14px;
    overflow-x: auto;
    }
    </style>
    </head>
    <body>
    <p>Hi,</p>

    <p>
    Please find the latest report on new defect(s) introduced to <strong>Synchronet</strong>
    found with Coverity Scan.
    </p>

    <ul>
    <li><strong>New Defects Found:</strong> 6</li>
    <li>
    2 defect(s), reported by Coverity Scan earlier, were marked fixed in the recent build analyzed by Coverity Scan.
    </li>
    <li><strong>Defects Shown:</strong> Showing 6 of 6 defect(s)</li>
    </ul>

    <h3>Defect Details</h3>
    <pre>
    ** CID 645741: Data race undermines locking (LOCK_EVASION) /tmp/sbbs-Apr-21-2026/src/xpdev/xpbeep.c: 2092 in xp_audio_play()


    _____________________________________________________________________________________________
    *** CID 645741: Data race undermines locking (LOCK_EVASION) /tmp/sbbs-Apr-21-2026/src/xpdev/xpbeep.c: 2092 in xp_audio_play() 2086 if (!newring) {
    2087 assert_pthread_mutex_unlock(&amp;s-&gt;mutex); 2088 xp_audio_close(h);
    2089 return -1;
    2090 }
    2091 s-&gt;ring = newring;
    &gt;&gt;&gt; CID 645741: Data race undermines locking (LOCK_EVASION)
    &gt;&gt;&gt; Thread1 sets &quot;ring_frames&quot; to a new value. Now the two threads have an inconsistent view of &quot;ring_frames&quot; and updates to fields correlated with &quot;ring_frames&quot; may be lost.
    2092 s-&gt;ring_frames = nframes;
    2093 assert_pthread_mutex_unlock(&amp;s-&gt;mutex);
    2094 }
    2095 if (loop) {
    2096 assert_pthread_mutex_lock(&amp;s-&gt;mutex);
    2097 s-&gt;loop = true;

    ** CID 645740: Null pointer dereferences (NULL_RETURNS) /tmp/sbbs-Apr-21-2026/src/xpdev/xpbeep.c: 2082 in xp_audio_play()


    _____________________________________________________________________________________________
    *** CID 645740: Null pointer dereferences (NULL_RETURNS) /tmp/sbbs-Apr-21-2026/src/xpdev/xpbeep.c: 2082 in xp_audio_play() 2076
    2077 if (h &lt; 0)
    2078 return -1;
    2079 s = stream_from_handle(h);
    2080 /* Resize ring to fit exactly if larger than default. Loop mode requires
    2081 * the ring to hold the full sample (read wraps to write_pos). */
    &gt;&gt;&gt; CID 645740: Null pointer dereferences (NULL_RETURNS) &gt;&gt;&gt; Dereferencing &quot;s&quot;, which is known to be &quot;NULL&quot;.
    2082 if (nframes &gt; s-&gt;ring_frames) {
    2083 int16_t *newring;
    2084 assert_pthread_mutex_lock(&amp;s-&gt;mutex);
    2085 newring = realloc(s-&gt;ring, nframes * S_CHANNELS * sizeof(int16_t));
    2086 if (!newring) {
    2087 assert_pthread_mutex_unlock(&amp;s-&gt;mutex);

    ** CID 645739: Concurrent data access violations (MISSING_LOCK) /tmp/sbbs-Apr-21-2026/src/xpdev/xpbeep.c: 1862 in xp_audio_open()


    _____________________________________________________________________________________________
    *** CID 645739: Concurrent data access violations (MISSING_LOCK) /tmp/sbbs-Apr-21-2026/src/xpdev/xpbeep.c: 1862 in xp_audio_open() 1856
    1857 assert_pthread_mutex_lock(&amp;mixer_lock);
    1858 /* Reap any done+auto_close streams first to free slots. Safe under
    1859 * mixer_lock no mixer pull is in progress. */
    1860 for (i = 0; i &lt; XP_AUDIO_MAX_STREAMS; i++) {
    1861 struct xp_audio_stream *r = mixer_streams[i]; &gt;&gt;&gt; CID 645739: Concurrent data access violations (MISSING_LOCK)
    &gt;&gt;&gt; Accessing &quot;r-&gt;done&quot; without holding lock &quot;xp_audio_stream.mutex&quot;. Elsewhere, &quot;xp_audio_stream.done&quot; is written to with &quot;xp_audio_stream.mutex&quot; held 4 out of 4 times (1 of these accesses strongly imply that it is necessary).
    1862 if (r &amp;&amp; r-&gt;auto_close &amp;&amp; r-&gt;done) {
    1863 mixer_streams[i] = NULL;
    1864 free_stream_locked(r);
    1865 }
    1866 }
    1867 for (i = 0; i &lt; XP_AUDIO_MAX_STREAMS; i++) {

    ** CID 645738: Uninitialized variables (UNINIT)


    _____________________________________________________________________________________________
    *** CID 645738: Uninitialized variables (UNINIT) /tmp/sbbs-Apr-21-2026/src/conio/cterm_cterm.c: 1125 in play_music() 1119 if (buf) {
    1120 if (note_frames &gt; 0)
    1121 xptone_makewave(freq, buf, note_frames, WAVE_SHAPE_SINE_SAW_HARM);
    1122 if (pause_frames &gt; 0)
    1123 memset(buf + (size_t)note_frames * XPBEEP_CHANNELS, 0,
    1124 (size_t)pause_frames * XPBEEP_FRAMESIZE);
    &gt;&gt;&gt; CID 645738: Uninitialized variables (UNINIT) &gt;&gt;&gt; Using uninitialized value &quot;*buf&quot; when calling &quot;xp_audio_append&quot;.
    1125 xp_audio_append(cterm-&gt;music_stream, buf, total_frames);
    1126 free(buf);
    1127 if (cterm-&gt;musicfore) {
    1128 xp_audio_wait(cterm-&gt;music_stream);
    1129 had_foreground = 1;
    1130 }

    ** CID 645737: Concurrent data access violations (MISSING_LOCK) /tmp/sbbs-Apr-21-2026/src/xpdev/xpbeep.c: 2082 in xp_audio_play()


    _____________________________________________________________________________________________
    *** CID 645737: Concurrent data access violations (MISSING_LOCK) /tmp/sbbs-Apr-21-2026/src/xpdev/xpbeep.c: 2082 in xp_audio_play() 2076
    2077 if (h &lt; 0)
    2078 return -1;
    2079 s = stream_from_handle(h);
    2080 /* Resize ring to fit exactly if larger than default. Loop mode requires
    2081 * the ring to hold the full sample (read wraps to write_pos). */
    &gt;&gt;&gt; CID 645737: Concurrent data access violations (MISSING_LOCK)
    &gt;&gt;&gt; Accessing &quot;s-&gt;ring_frames&quot; without holding lock &quot;xp_audio_stream.mutex&quot;. Elsewhere, &quot;xp_audio_stream.ring_frames&quot; is written to with &quot;xp_audio_stream.mutex&quot; held 1 out of 1 times.
    2082 if (nframes &gt; s-&gt;ring_frames) {
    2083 int16_t *newring;
    2084 assert_pthread_mutex_lock(&amp;s-&gt;mutex);
    2085 newring = realloc(s-&gt;ring, nframes * S_CHANNELS * sizeof(int16_t));
    2086 if (!newring) {
    2087 assert_pthread_mutex_unlock(&amp;s-&gt;mutex);

    ** CID 645736: Concurrent data access violations (MISSING_LOCK) /tmp/sbbs-Apr-21-2026/src/xpdev/xpbeep.c: 1862 in xp_audio_open()


    _____________________________________________________________________________________________
    *** CID 645736: Concurrent data access violations (MISSING_LOCK) /tmp/sbbs-Apr-21-2026/src/xpdev/xpbeep.c: 1862 in xp_audio_open() 1856
    1857 assert_pthread_mutex_lock(&amp;mixer_lock);
    1858 /* Reap any done+auto_close streams first to free slots. Safe under
    1859 * mixer_lock no mixer pull is in progress. */
    1860 for (i = 0; i &lt; XP_AUDIO_MAX_STREAMS; i++) {
    1861 struct xp_audio_stream *r = mixer_streams[i]; &gt;&gt;&gt; CID 645736: Concurrent data access violations (MISSING_LOCK)
    &gt;&gt;&gt; Accessing &quot;r-&gt;auto_close&quot; without holding lock &quot;xp_audio_stream.mutex&quot;. Elsewhere, &quot;xp_audio_stream.auto_close&quot; is written to with &quot;xp_audio_stream.mutex&quot; held 1 out of 1 times (1 of these accesses strongly imply that it is necessary).
    1862 if (r &amp;&amp; r-&gt;auto_close &amp;&amp; r-&gt;done) {
    1863 mixer_streams[i] = NULL;
    1864 free_stream_locked(r);
    1865 }
    1866 }
    1867 for (i = 0; i &lt; XP_AUDIO_MAX_STREAMS; i++) {

    </pre>

    <p>
    <a href="https://scan.coverity.com/projects/synchronet?tab=overview" class="button">View Defects in Coverity Scan</a>
    </p>

    <p>Best regards,</p>
    <p>The Coverity Scan Admin Team</p>
    <img class="logo" width="140" src="https://scan.coverity.com/assets/BlackDuckLogo-6697adc63e07340464201a2ad534d3d3e44f95d36edda20b140440d34f05372f.svg" />
    </body>
    </html>
    ----==_mimepart_69e77325c1f19_1534e22c65a87519a054733--

    --- SBBSecho 3.37-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From [email protected]@1:103/705 to All on Wed Apr 22 13:18:50 2026

    ----==_mimepart_69e8cab9a8d78_1637042c65a87519a0547fb
    Content-Type: text/plain; charset=us-ascii
    Content-Transfer-Encoding: 7bit

    Hi,

    Please find the latest report on new defect(s) introduced to Synchronet found with Coverity Scan.

    1 new defect(s) introduced to Synchronet found with Coverity Scan.
    4 defect(s), reported by Coverity Scan earlier, were marked fixed in the recent build analyzed by Coverity Scan.

    New defect(s) Reported-by: Coverity Scan
    Showing 1 of 1 defect(s)


    ** CID 645757: Control flow issues (DEADCODE) /tmp/sbbs-Apr-22-2026/src/conio/cterm_cterm.c: 1228 in cterm_play_fx_tone()


    _____________________________________________________________________________________________
    *** CID 645757: Control flow issues (DEADCODE) /tmp/sbbs-Apr-22-2026/src/conio/cterm_cterm.c: 1228 in cterm_play_fx_tone()
    1222 if (!cterm || duration_ms == 0)
    1223 return false;
    1224 if (!cterm_fx_ensure_open(cterm))
    1225 return false;
    1226 nframes = (size_t)XPBEEP_SAMPLE_RATE * duration_ms / 1000;
    1227 if (nframes == 0)
    CID 645757: Control flow issues (DEADCODE)
    Execution cannot reach this statement: "return true;".
    1228 return true;
    1229 buf = (int16_t *)malloc(nframes * XPBEEP_FRAMESIZE);
    1230 if (!buf)
    1231 return false;
    1232 xptone_makewave(freq, buf, (int)nframes, shape);
    1233 return xp_audio_append(cterm->fx_stream, buf, nframes, NULL);


    ________________________________________________________________________________________________________
    To view the defects in Coverity Scan visit, https://scan.coverity.com/projects/synchronet?tab=overview


    ----==_mimepart_69e8cab9a8d78_1637042c65a87519a0547fb
    Content-Type: text/html; charset=us-ascii
    Content-Transfer-Encoding: 7bit

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>New Defects Reported - Synchronet</title>
    <style>
    body { font-family: Arial, sans-serif; color: #222; line-height: 1.6; }
    .button {
    display: inline-block;
    padding: 10px 20px;
    margin: 20px 0;
    font-size: 16px;
    color: #fff !important;
    background-color: #0056b3;
    text-decoration: none;
    border-radius: 5px;
    }
    pre {
    background: #f8f9fa;
    padding: 10px;
    border-radius: 5px;
    font-size: 14px;
    overflow-x: auto;
    }
    </style>
    </head>
    <body>
    <p>Hi,</p>

    <p>
    Please find the latest report on new defect(s) introduced to <strong>Synchronet</strong>
    found with Coverity Scan.
    </p>

    <ul>
    <li><strong>New Defects Found:</strong> 1</li>
    <li>
    4 defect(s), reported by Coverity Scan earlier, were marked fixed in the recent build analyzed by Coverity Scan.
    </li>
    <li><strong>Defects Shown:</strong> Showing 1 of 1 defect(s)</li>
    </ul>

    <h3>Defect Details</h3>
    <pre>
    ** CID 645757: Control flow issues (DEADCODE) /tmp/sbbs-Apr-22-2026/src/conio/cterm_cterm.c: 1228 in cterm_play_fx_tone()


    _____________________________________________________________________________________________
    *** CID 645757: Control flow issues (DEADCODE) /tmp/sbbs-Apr-22-2026/src/conio/cterm_cterm.c: 1228 in cterm_play_fx_tone()
    1222 if (!cterm || duration_ms == 0)
    1223 return false;
    1224 if (!cterm_fx_ensure_open(cterm))
    1225 return false;
    1226 nframes = (size_t)XPBEEP_SAMPLE_RATE * duration_ms / 1000;
    1227 if (nframes == 0)
    &gt;&gt;&gt; CID 645757: Control flow issues (DEADCODE) &gt;&gt;&gt; Execution cannot reach this statement: &quot;return true;&quot;.
    1228 return true;
    1229 buf = (int16_t *)malloc(nframes * XPBEEP_FRAMESIZE);
    1230 if (!buf)
    1231 return false;
    1232 xptone_makewave(freq, buf, (int)nframes, shape);
    1233 return xp_audio_append(cterm-&gt;fx_stream, buf, nframes, NULL);

    </pre>

    <p>
    <a href="https://scan.coverity.com/projects/synchronet?tab=overview" class="button">View Defects in Coverity Scan</a>
    </p>

    <p>Best regards,</p>
    <p>The Coverity Scan Admin Team</p>
    <img class="logo" width="140" src="https://scan.coverity.com/assets/BlackDuckLogo-6697adc63e07340464201a2ad534d3d3e44f95d36edda20b140440d34f05372f.svg" />
    </body>
    </html>
    ----==_mimepart_69e8cab9a8d78_1637042c65a87519a0547fb--

    --- SBBSecho 3.37-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)