• New Defects reported by Coverity Scan for Synchronet

    From scan-admin@coverity.com@VERT to cov-scan@synchro.net on Wed Mar 11 13:28:10 2026
    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.


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


    ** CID 644869: Code maintainability issues (UNUSED_VALUE)
    /main.cpp: 5548 in bbs_thread()


    _____________________________________________________________________________________________
    *** CID 644869: Code maintainability issues (UNUSED_VALUE)
    /main.cpp: 5548 in bbs_thread()
    5542 client_socket = xpms_accept(ts_set, &client_addr
    5543 , &client_addr_len, startup->sem_chk_freq * 1000, (startup->options & BBS_OPT_HAPROXY_PROTO) ? XPMS_ACCEPT_FLAG_HAPROXY : XPMS_FLAGS_NONE, &ts_cb);
    5544
    5545 if (terminate_server) { /* terminated */
    5546 if (client_socket != INVALID_SOCKET) 5547 close_socket(client_socket); >>> CID 644869: Code maintainability issues (UNUSED_VALUE)
    Assigning value "-1" to "client_socket" here, but that stored value is overwritten before it can be used.
    5548 client_socket = INVALID_SOCKET;
    5549 break;
    5550 }
    5551
    5552 if ((p = semfile_list_check(&initialized, clear_attempts_semfiles)) != NULL) {
    5553 lprintf(LOG_INFO, "Clear Failed Login Attempts semaphore file (%s) detected", p);


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



    ---
    * Synchronet * Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From scan-admin@coverity.com@VERT to cov-scan@synchro.net on Fri Mar 13 13:00:05 2026
    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.


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


    ** CID 644892: Resource leaks (RESOURCE_LEAK)
    /smbutil.c: 836 in maint()


    _____________________________________________________________________________________________
    *** CID 644892: Resource leaks (RESOURCE_LEAK)
    /smbutil.c: 836 in maint()
    830 l = fread(idxbuf, idxreclen, smb.status.total_msgs, smb.sid_fp);
    831
    832 printf("\nDone.\n\n");
    833 printf("Scanning for pre-flagged messages...\n");
    834 for (m = 0; m < l; m++) {
    835 if (terminated)
    CID 644892: Resource leaks (RESOURCE_LEAK)
    Variable "idxbuf" going out of scope leaks the storage it points to. 836 return;
    837 idx = (idxrec_t*)(idxbuf + (m * idxreclen));
    838 // printf("\r%2lu%%",m ? (long)(100.0/((float)l/m)) : 0); 839 if (idx->attr & MSG_DELETE)
    840 flagged++;
    841 }


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



    ---
    * Synchronet * Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From scan-admin@coverity.com@VERT to All on Sun Mar 15 14:04:34 2026
    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.


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


    ** CID 644904: Concurrent data access violations (MISSING_LOCK) /tmp/sbbs-Mar-15-2026/src/conio/bitmap_con.c: 1139 in blinker_thread()


    _____________________________________________________________________________________________
    *** CID 644904: Concurrent data access violations (MISSING_LOCK) /tmp/sbbs-Mar-15-2026/src/conio/bitmap_con.c: 1139 in blinker_thread()
    1133 assert_pthread_mutex_unlock(&screenlock);
    1134 assert_rwlock_unlock(&vstatlock);
    1135 continue;
    1136 }
    1137 assert_pthread_mutex_unlock(&screenlock);
    1138 if (curs_changed || blink_changed || lfc)
    CID 644904: Concurrent data access violations (MISSING_LOCK) >>> Accessing "vstat.vmem->changed" without holding lock "vstat_chlock". Elsewhere, "vstat_vmem.changed" is written to with "vstat_chlock" held 7 out of 8 times (6 of these accesses strongly imply that it is necessary).
    1139 vstat.vmem->changed = true;
    1140 assert_rwlock_unlock(&vstatlock);
    1141
    1142 if (check_redraw()) {
    1143 if (update_from_vmem(TRUE))
    1144 request_redraw();

    ** CID 644903: Concurrent data access violations (MISSING_LOCK) /tmp/sbbs-Mar-15-2026/src/conio/bitmap_con.c: 861 in draw_char_row_slow()


    _____________________________________________________________________________________________
    *** CID 644903: Concurrent data access violations (MISSING_LOCK) /tmp/sbbs-Mar-15-2026/src/conio/bitmap_con.c: 861 in draw_char_row_slow()
    855 ac = cs->bg;
    856 bc = cs->bg;
    857 }
    858
    859 if (screena.rect->data[pixeloffset] != ac) {
    860 screena.rect->data[pixeloffset] = ac;
    CID 644903: Concurrent data access violations (MISSING_LOCK) >>> Accessing "screena.update_pixels" without holding lock "screenlock". Elsewhere, "bitmap_screen.update_pixels" is written to with "screenlock" held 18 out of 24 times.
    861 screena.update_pixels = 1;
    862 }
    863 if (screenb.rect->data[pixeloffset] != bc) {
    864 screenb.rect->data[pixeloffset] = bc;
    865 screenb.update_pixels = 1;
    866 }

    ** CID 644905: Concurrent data access violations (MISSING_LOCK) /tmp/sbbs-Mar-15-2026/src/conio/bitmap_con.c: 988 in bitmap_draw_vmem_locked()


    _____________________________________________________________________________________________
    *** CID 644905: Concurrent data access violations (MISSING_LOCK) /tmp/sbbs-Mar-15-2026/src/conio/bitmap_con.c: 988 in bitmap_draw_vmem_locked()
    982 bs.pixeloffset += rsz;
    983 if (bs.pixeloffset >= bs.maxpix)
    984 bs.pixeloffset -= bs.maxpix; 985 }
    986 }
    987 if (didfast) {
    CID 644905: Concurrent data access violations (MISSING_LOCK) >>> Accessing "screena.update_pixels" without holding lock "screenlock". Elsewhere, "bitmap_screen.update_pixels" is written to with "screenlock" held 18 out of 24 times.
    988 screena.update_pixels = true;
    989 screenb.update_pixels = true;
    990 }
    991 }
    992 }
    993


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



    ---
    * Synchronet * Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From scan-admin@coverity.com@VERT to cov-scan@synchro.net on Mon Mar 16 15:28:31 2026
    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.


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


    ** CID 644927: (RESOURCE_LEAK)
    /tmp/sbbs-Mar-16-2026/src/conio/scale.c: 462 in do_scale() /tmp/sbbs-Mar-16-2026/src/conio/scale.c: 462 in do_scale() /tmp/sbbs-Mar-16-2026/src/conio/scale.c: 462 in do_scale() /tmp/sbbs-Mar-16-2026/src/conio/scale.c: 462 in do_scale() /tmp/sbbs-Mar-16-2026/src/conio/scale.c: 462 in do_scale()


    _____________________________________________________________________________________________
    *** CID 644927: (RESOURCE_LEAK) /tmp/sbbs-Mar-16-2026/src/conio/scale.c: 462 in do_scale()
    456 ctarget = ret2;
    457 else
    458 ctarget = ret1;
    459 }
    460
    461 release_buffer(ctarget);
    CID 644927: (RESOURCE_LEAK)
    Variable "nt" going out of scope leaks the storage it points to.
    462 return csrc;
    463 }
    464
    465 static void
    466 pointy_scale_odd(const uint32_t* src, uint32_t* dest, const int width, const int height, const int mult)
    467 {
    /tmp/sbbs-Mar-16-2026/src/conio/scale.c: 462 in do_scale()
    456 ctarget = ret2;
    457 else
    458 ctarget = ret1;
    459 }
    460
    461 release_buffer(ctarget);
    CID 644927: (RESOURCE_LEAK)
    Variable "nt" going out of scope leaks the storage it points to.
    462 return csrc;
    463 }
    464
    465 static void
    466 pointy_scale_odd(const uint32_t* src, uint32_t* dest, const int width, const int height, const int mult)
    467 {
    /tmp/sbbs-Mar-16-2026/src/conio/scale.c: 462 in do_scale()
    456 ctarget = ret2;
    457 else
    458 ctarget = ret1;
    459 }
    460
    461 release_buffer(ctarget);
    CID 644927: (RESOURCE_LEAK)
    Variable "nt" going out of scope leaks the storage it points to.
    462 return csrc;
    463 }
    464
    465 static void
    466 pointy_scale_odd(const uint32_t* src, uint32_t* dest, const int width, const int height, const int mult)
    467 {
    /tmp/sbbs-Mar-16-2026/src/conio/scale.c: 462 in do_scale()
    456 ctarget = ret2;
    457 else
    458 ctarget = ret1;
    459 }
    460
    461 release_buffer(ctarget);
    CID 644927: (RESOURCE_LEAK)
    Variable "nt" going out of scope leaks the storage it points to.
    462 return csrc;
    463 }
    464
    465 static void
    466 pointy_scale_odd(const uint32_t* src, uint32_t* dest, const int width, const int height, const int mult)
    467 {
    /tmp/sbbs-Mar-16-2026/src/conio/scale.c: 462 in do_scale()
    456 ctarget = ret2;
    457 else
    458 ctarget = ret1;
    459 }
    460
    461 release_buffer(ctarget);
    CID 644927: (RESOURCE_LEAK)
    Variable "nt" going out of scope leaks the storage it points to.
    462 return csrc;
    463 }
    464
    465 static void
    466 pointy_scale_odd(const uint32_t* src, uint32_t* dest, const int width, const int height, const int mult)
    467 {


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



    ---
    * Synchronet * Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From scan-admin@coverity.com@VERT to All on Tue Mar 17 12:54:04 2026
    Hi,

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

    4 new defect(s) introduced to Synchronet found with Coverity Scan.


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


    ** CID 645010: Insecure data handling (INTEGER_OVERFLOW) /tmp/sbbs-Mar-17-2026/src/conio/wl_events.c: 1136 in ds_send()


    _____________________________________________________________________________________________
    *** CID 645010: Insecure data handling (INTEGER_OVERFLOW) /tmp/sbbs-Mar-17-2026/src/conio/wl_events.c: 1136 in ds_send()
    1130 {
    1131 assert_pthread_mutex_lock(&wl_copybuf_mutex);
    1132 if (wl_copybuf) {
    1133 size_t len = strlen(wl_copybuf);
    1134 size_t sent = 0;
    1135 while (sent < len) {
    CID 645010: Insecure data handling (INTEGER_OVERFLOW)
    "len - sent", which might have underflowed, is passed to "write(fd, wl_copybuf + sent, len - sent)".
    1136 ssize_t rv = write(fd, wl_copybuf + sent, len - sent);
    1137 if (rv <= 0)
    1138 break;
    1139 sent += rv;
    1140 }
    1141 }

    ** CID 645009: Insecure data handling (INTEGER_OVERFLOW) /tmp/sbbs-Mar-17-2026/src/conio/wl_events.c: 1459 in readev()


    _____________________________________________________________________________________________
    *** CID 645009: Insecure data handling (INTEGER_OVERFLOW) /tmp/sbbs-Mar-17-2026/src/conio/wl_events.c: 1459 in readev()
    1453 readev(struct wl_local_event *lev)
    1454 {
    1455 size_t got = 0;
    1456 char *buf = (char *)lev;
    1457
    1458 while (got < sizeof(*lev)) {
    CID 645009: Insecure data handling (INTEGER_OVERFLOW)
    "96UL - got", which might have underflowed, is passed to "read(wl_local_pipe[0], buf + got, 96UL - got)".
    1459 int rv = read(wl_local_pipe[0], buf + got, sizeof(*lev) - got);
    1460 if (rv > 0)
    1461 got += rv;
    1462 }
    1463 }
    1464

    ** CID 645008: Concurrent data access violations (MISSING_LOCK) /tmp/sbbs-Mar-17-2026/src/conio/wl_cio.c: 243 in wl_copytext()


    _____________________________________________________________________________________________
    *** CID 645008: Concurrent data access violations (MISSING_LOCK) /tmp/sbbs-Mar-17-2026/src/conio/wl_cio.c: 243 in wl_copytext()
    237
    238 assert_pthread_mutex_lock(&wl_copybuf_mutex);
    239 FREE_AND_NULL(wl_copybuf);
    240 wl_copybuf = strdup(text);
    241 assert_pthread_mutex_unlock(&wl_copybuf_mutex);
    242
    CID 645008: Concurrent data access violations (MISSING_LOCK) >>> Accessing "wl_copybuf" without holding lock "wl_copybuf_mutex". Elsewhere, "wl_copybuf" is written to with "wl_copybuf_mutex" held 2 out of 2 times.
    243 if (wl_copybuf) {
    244 ev.type = WL_LOCAL_COPY;
    245 write_event(&ev);
    246 }
    247 }
    248

    ** CID 645007: Program hangs (SLEEP)


    _____________________________________________________________________________________________
    *** CID 645007: Program hangs (SLEEP) /tmp/sbbs-Mar-17-2026/src/conio/ciolib.c: 2754 in ciolib_add_hyperlink()
    2748 }
    2749 }
    2750
    2751 /* Run GC if free list is empty */
    2752 if (hyperlink_free_head == 0)
    2753 hyperlink_gc();
    CID 645007: Program hangs (SLEEP)
    Call to "hyperlink_gc" might sleep while holding lock "hyperlink_mutex".
    2754
    2755 /* Still empty after GC table is full */
    2756 if (hyperlink_free_head == 0) {
    2757 pthread_mutex_unlock(&hyperlink_mutex);
    2758 return 0;
    2759 }


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



    ---
    * Synchronet * Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From scan-admin@coverity.com@VERT to cov-scan@synchro.net on Wed Mar 18 13:09:05 2026
    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 645069: Control flow issues (DEADCODE) /tmp/sbbs-Mar-18-2026/src/conio/cterm.c: 2702 in sgr_diff()


    _____________________________________________________________________________________________
    *** CID 645069: Control flow issues (DEADCODE) /tmp/sbbs-Mar-18-2026/src/conio/cterm.c: 2702 in sgr_diff()
    2696 else {
    2697 int params = 0;
    2698 char sgrbuf[128];
    2699 sgrbuf[0] = '\0';
    2700
    2701 if ((na & 0x08) && !(pa & 0x08)) {
    CID 645069: Control flow issues (DEADCODE)
    Execution cannot reach the expression "";1"" inside this statement: "strcat(sgrbuf, (params++ ? ...".
    2702 strcat(sgrbuf, params++ ? ";1" : "1");
    2703 }
    2704 if ((na & 0x80) && !(pa & 0x80)) {
    2705 strcat(sgrbuf, params++ ? ";5" : "5");
    2706 }
    2707 if ((na & 0x07) != (pa & 0x07)) {


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



    ---
    * Synchronet * Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net