• New Defects reported by Coverity Scan for Synchronet

    From scan-admin@coverity.com@VERT to All on Fri Dec 19 13:45:09 2025
    ----==_mimepart_694556e537c80_cf6232c07a52839ac1056
    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.


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


    ** CID 640043: (USE_AFTER_FREE)
    /js_socket.cpp: 3566 in js_listening_socket_constructor(JSContext *, unsigned int, unsigned long *)()
    /js_socket.cpp: 3540 in js_listening_socket_constructor(JSContext *, unsigned int, unsigned long *)()
    /js_socket.cpp: 3593 in js_listening_socket_constructor(JSContext *, unsigned int, unsigned long *)()


    _____________________________________________________________________________________________
    *** CID 640043: (USE_AFTER_FREE)
    /js_socket.cpp: 3566 in js_listening_socket_constructor(JSContext *, unsigned int, unsigned long *)()
    3560 }
    3561
    3562 if (!js_DefineSocketOptionsArray(cx, obj, type)) {
    3563 JS_ReportError(cx, "js_DefineSocketOptionsArray failed");
    3564 xpms_destroy(set, sock_close_cb, nullptr);
    3565 free(p);
    CID 640043: (USE_AFTER_FREE)
    Calling "free" frees pointer "set" which has already been freed.
    3566 free(set);
    3567 return JS_FALSE;
    3568 }
    3569
    3570 #ifdef BUILD_JSDOCS
    3571 js_DescribeSyncObject(cx, obj, "Class used for incoming TCP/IP socket communications", 317);
    /js_socket.cpp: 3540 in js_listening_socket_constructor(JSContext *, unsigned int, unsigned long *)()
    3534 JS_SET_RVAL(cx, arglist, OBJECT_TO_JSVAL(obj));
    3535
    3536 if ((p = (js_socket_private_t*)malloc(sizeof(js_socket_private_t))) == NULL) {
    3537 JS_ReportError(cx, "malloc failed");
    3538 free(protocol);
    3539 xpms_destroy(set, sock_close_cb, nullptr);
    CID 640043: (USE_AFTER_FREE)
    Calling "free" frees pointer "set" which has already been freed.
    3540 free(set);
    3541 return JS_FALSE;
    3542 }
    3543 memset(p, 0, sizeof(js_socket_private_t));
    3544 p->type = type;
    3545 p->set = set;
    /js_socket.cpp: 3593 in js_listening_socket_constructor(JSContext *, unsigned int, unsigned long *)()
    3587
    3588 return JS_TRUE;
    3589
    3590 fail:
    3591 xpms_destroy(set, sock_close_cb, nullptr);
    3592 free(protocol);
    CID 640043: (USE_AFTER_FREE)
    Calling "free" frees pointer "set" which has already been freed.
    3593 free(set);
    3594 return JS_FALSE;
    3595 }
    3596
    3597 static JSBool
    3598 js_socket_constructor(JSContext *cx, uintN argc, jsval *arglist)


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


    ----==_mimepart_694556e537c80_cf6232c07a52839ac1056
    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><strong>Defects Shown:</strong> Showing 1 of 1 defect(s)</li>
    </ul>

    <h3>Defect Details</h3>
    <pre>
    ** CID 640043: (USE_AFTER_FREE)
    /js_socket.cpp: 3566 in js_listening_socket_constructor(JSContext *, unsigned int, unsigned long *)()
    /js_socket.cpp: 3540 in js_listening_socket_constructor(JSContext *, unsigned int, unsigned long *)()
    /js_socket.cpp: 3593 in js_listening_socket_constructor(JSContext *, unsigned int, unsigned long *)()


    _____________________________________________________________________________________________
    *** CID 640043: (USE_AFTER_FREE)
    /js_socket.cpp: 3566 in js_listening_socket_constructor(JSContext *, unsigned int, unsigned long *)()
    3560 }
    3561
    3562 if (!js_DefineSocketOptionsArray(cx, obj, type)) {
    3563 JS_ReportError(cx, &quot;js_DefineSocketOptionsArray failed&quot;);
    3564 xpms_destroy(set, sock_close_cb, nullptr);
    3565 free(p);
    &gt;&gt;&gt; CID 640043: (USE_AFTER_FREE)
    &gt;&gt;&gt; Calling &quot;free&quot; frees pointer &quot;set&quot; which has already been freed.
    3566 free(set);
    3567 return JS_FALSE;
    3568 }
    3569
    3570 #ifdef BUILD_JSDOCS
    3571 js_DescribeSyncObject(cx, obj, &quot;Class used for incoming TCP/IP socket communications&quot;, 317);
    /js_socket.cpp: 3540 in js_listening_socket_constructor(JSContext *, unsigned int, unsigned long *)()
    3534 JS_SET_RVAL(cx, arglist, OBJECT_TO_JSVAL(obj));
    3535
    3536 if ((p = (js_socket_private_t*)malloc(sizeof(js_socket_private_t))) == NULL) {
    3537 JS_ReportError(cx, &quot;malloc failed&quot;);
    3538 free(protocol);
    3539 xpms_destroy(set, sock_close_cb, nullptr);
    &gt;&gt;&gt; CID 640043: (USE_AFTER_FREE)
    &gt;&gt;&gt; Calling &quot;free&quot; frees pointer &quot;set&quot; which has already been freed.
    3540 free(set);
    3541 return JS_FALSE;
    3542 }
    3543 memset(p, 0, sizeof(js_socket_private_t));
    3544 p-&gt;type = type;
    3545 p-&gt;set = set;
    /js_socket.cpp: 3593 in js_listening_socket_constructor(JSContext *, unsigned int, unsigned long *)()
    3587
    3588 return JS_TRUE;
    3589
    3590 fail:
    3591 xpms_destroy(set, sock_close_cb, nullptr);
    3592 free(protocol);
    &gt;&gt;&gt; CID 640043: (USE_AFTER_FREE)
    &gt;&gt;&gt; Calling &quot;free&quot; frees pointer &quot;set&quot; which has already been freed.
    3593 free(set);
    3594 return JS_FALSE;
    3595 }
    3596
    3597 static JSBool
    3598 js_socket_constructor(JSContext *cx, uintN argc, jsval *arglist)

    </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_694556e537c80_cf6232c07a52839ac1056--


    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
  • From scan-admin@coverity.com@VERT to All on Sat Dec 27 13:44:41 2025
    ----==_mimepart_694fe2c8bcbb0_14b1952c2daae15998453b2
    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.


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


    ** CID 640112: (RESOURCE_LEAK)
    /js_bbs.cpp: 1875 in js_logline(JSContext *, unsigned int, unsigned long *)()
    /js_bbs.cpp: 1880 in js_logline(JSContext *, unsigned int, unsigned long *)()


    _____________________________________________________________________________________________
    *** CID 640112: (RESOURCE_LEAK)
    /js_bbs.cpp: 1875 in js_logline(JSContext *, unsigned int, unsigned long *)()
    1869
    1870 JSSTRING_TO_MSTRING(cx, js_str, code, NULL);
    1871 if (code == NULL)
    1872 return JS_FALSE;
    1873
    1874 if ((js_str = JS_ValueToString(cx, argv[argn])) == NULL)
    CID 640112: (RESOURCE_LEAK)
    Variable "code" going out of scope leaks the storage it points to.
    1875 return JS_FALSE;
    1876 argn++;
    1877
    1878 JSSTRING_TO_MSTRING(cx, js_str, str, NULL);
    1879 if (str == NULL)
    1880 return JS_FALSE;
    /js_bbs.cpp: 1880 in js_logline(JSContext *, unsigned int, unsigned long *)()
    1874 if ((js_str = JS_ValueToString(cx, argv[argn])) == NULL)
    1875 return JS_FALSE;
    1876 argn++;
    1877
    1878 JSSTRING_TO_MSTRING(cx, js_str, str, NULL);
    1879 if (str == NULL)
    CID 640112: (RESOURCE_LEAK)
    Variable "code" going out of scope leaks the storage it points to.
    1880 return JS_FALSE;
    1881
    1882 rc = JS_SUSPENDREQUEST(cx);
    1883 sbbs->logline(level, code, str);
    1884 free(code);
    1885 free(str);


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


    ----==_mimepart_694fe2c8bcbb0_14b1952c2daae15998453b2
    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><strong>Defects Shown:</strong> Showing 1 of 1 defect(s)</li>
    </ul>

    <h3>Defect Details</h3>
    <pre>
    ** CID 640112: (RESOURCE_LEAK)
    /js_bbs.cpp: 1875 in js_logline(JSContext *, unsigned int, unsigned long *)()
    /js_bbs.cpp: 1880 in js_logline(JSContext *, unsigned int, unsigned long *)()


    _____________________________________________________________________________________________
    *** CID 640112: (RESOURCE_LEAK)
    /js_bbs.cpp: 1875 in js_logline(JSContext *, unsigned int, unsigned long *)()
    1869
    1870 JSSTRING_TO_MSTRING(cx, js_str, code, NULL);
    1871 if (code == NULL)
    1872 return JS_FALSE;
    1873
    1874 if ((js_str = JS_ValueToString(cx, argv[argn])) == NULL) &gt;&gt;&gt; CID 640112: (RESOURCE_LEAK)
    &gt;&gt;&gt; Variable &quot;code&quot; going out of scope leaks the storage it points to.
    1875 return JS_FALSE;
    1876 argn++;
    1877
    1878 JSSTRING_TO_MSTRING(cx, js_str, str, NULL);
    1879 if (str == NULL)
    1880 return JS_FALSE;
    /js_bbs.cpp: 1880 in js_logline(JSContext *, unsigned int, unsigned long *)()
    1874 if ((js_str = JS_ValueToString(cx, argv[argn])) == NULL)
    1875 return JS_FALSE;
    1876 argn++;
    1877
    1878 JSSTRING_TO_MSTRING(cx, js_str, str, NULL);
    1879 if (str == NULL)
    &gt;&gt;&gt; CID 640112: (RESOURCE_LEAK)
    &gt;&gt;&gt; Variable &quot;code&quot; going out of scope leaks the storage it points to.
    1880 return JS_FALSE;
    1881
    1882 rc = JS_SUSPENDREQUEST(cx);
    1883 sbbs-&gt;logline(level, code, str);
    1884 free(code);
    1885 free(str);

    </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_694fe2c8bcbb0_14b1952c2daae15998453b2--


    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
  • From scan-admin@coverity.com@VERT to All on Wed Dec 31 13:45:24 2025
    ----==_mimepart_695528f458f41_188c5a2c2daae1599845314
    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 640333: (NEGATIVE_RETURNS)
    /writemsg.cpp: 463 in sbbs_t::writemsg(const char *, const char *, char *, int, int, const char *, const char *, const char **, const char **)()
    /writemsg.cpp: 428 in sbbs_t::writemsg(const char *, const char *, char *, int, int, const char *, const char *, const char **, const char **)()
    /writemsg.cpp: 440 in sbbs_t::writemsg(const char *, const char *, char *, int, int, const char *, const char *, const char **, const char **)()


    _____________________________________________________________________________________________
    *** CID 640333: (NEGATIVE_RETURNS)
    /writemsg.cpp: 463 in sbbs_t::writemsg(const char *, const char *, char *, int, int, const char *, const char *, const char **, const char **)()
    457 while (p) {
    458 if (*p == ',' || *p == ' ')
    459 p++;
    460 i = atoi(p);
    461 if (!i)
    462 break;
    CID 640333: (NEGATIVE_RETURNS)
    "l" is passed to a parameter that cannot be negative.
    463 fseek(stream, l, SEEK_SET);
    464 j = 1;
    465 while (!feof(stream) && !ferror(stream) && j < i) {
    466 if (!fgets(tmp, sizeof(tmp), stream))
    467 break;
    468 j++; /* skip beginning */
    /writemsg.cpp: 428 in sbbs_t::writemsg(const char *, const char *, char *, int, int, const char *, const char *, const char **, const char **)()
    422 free(buf);
    423 return false;
    424 }
    425 if (!i && linesquoted)
    426 break;
    427 if (!i || quote[0] == all_key()) { /* Quote all */
    CID 640333: (NEGATIVE_RETURNS)
    "l" is passed to a parameter that cannot be negative.
    428 fseek(stream, l, SEEK_SET);
    429 while (!feof(stream) && !ferror(stream)) {
    430 if (!fgets(str, sizeof(str), stream))
    431 break;
    432 quotestr(str);
    433 SAFEPRINTF2(tmp, quote_fmt, term->cols - 4, str);
    /writemsg.cpp: 440 in sbbs_t::writemsg(const char *, const char *, char *, int, int, const char *, const char *, const char **, const char **)()
    434 if (write(file, tmp, strlen(tmp)) > 0)
    435 linesquoted++; 436 }
    437 break;
    438 }
    439 if (quote[0] == list_key()) {
    CID 640333: (NEGATIVE_RETURNS)
    "l" is passed to a parameter that cannot be negative.
    440 fseek(stream, l, SEEK_SET);
    441 i = 1;
    442 term->newline();
    443 attr(LIGHTGRAY);
    444 while (!feof(stream) && !ferror(stream) && !msgabort()) {
    445 if (!fgets(str, sizeof(str), stream))


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


    ----==_mimepart_695528f458f41_188c5a2c2daae1599845314
    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 640333: (NEGATIVE_RETURNS)
    /writemsg.cpp: 463 in sbbs_t::writemsg(const char *, const char *, char *, int, int, const char *, const char *, const char **, const char **)()
    /writemsg.cpp: 428 in sbbs_t::writemsg(const char *, const char *, char *, int, int, const char *, const char *, const char **, const char **)()
    /writemsg.cpp: 440 in sbbs_t::writemsg(const char *, const char *, char *, int, int, const char *, const char *, const char **, const char **)()


    _____________________________________________________________________________________________
    *** CID 640333: (NEGATIVE_RETURNS)
    /writemsg.cpp: 463 in sbbs_t::writemsg(const char *, const char *, char *, int, int, const char *, const char *, const char **, const char **)()
    457 while (p) {
    458 if (*p == &#39;,&#39; || *p == &#39; &#39;)
    459 p++;
    460 i = atoi(p);
    461 if (!i)
    462 break;
    &gt;&gt;&gt; CID 640333: (NEGATIVE_RETURNS)
    &gt;&gt;&gt; &quot;l&quot; is passed to a parameter that cannot be negative.
    463 fseek(stream, l, SEEK_SET);
    464 j = 1;
    465 while (!feof(stream) &amp;&amp; !ferror(stream) &amp;&amp; j &lt; i) {
    466 if (!fgets(tmp, sizeof(tmp), stream))
    467 break;
    468 j++; /* skip beginning */
    /writemsg.cpp: 428 in sbbs_t::writemsg(const char *, const char *, char *, int, int, const char *, const char *, const char **, const char **)()
    422 free(buf);
    423 return false;
    424 }
    425 if (!i &amp;&amp; linesquoted)
    426 break;
    427 if (!i || quote[0] == all_key()) { /* Quote all */
    &gt;&gt;&gt; CID 640333: (NEGATIVE_RETURNS)
    &gt;&gt;&gt; &quot;l&quot; is passed to a parameter that cannot be negative.
    428 fseek(stream, l, SEEK_SET);
    429 while (!feof(stream) &amp;&amp; !ferror(stream)) {
    430 if (!fgets(str, sizeof(str), stream))
    431 break;
    432 quotestr(str);
    433 SAFEPRINTF2(tmp, quote_fmt, term-&gt;cols - 4, str);
    /writemsg.cpp: 440 in sbbs_t::writemsg(const char *, const char *, char *, int, int, const char *, const char *, const char **, const char **)()
    434 if (write(file, tmp, strlen(tmp)) &gt; 0)
    435 linesquoted++; 436 }
    437 break;
    438 }
    439 if (quote[0] == list_key()) { &gt;&gt;&gt; CID 640333: (NEGATIVE_RETURNS)
    &gt;&gt;&gt; &quot;l&quot; is passed to a parameter that cannot be negative.
    440 fseek(stream, l, SEEK_SET);
    441 i = 1;
    442 term-&gt;newline();
    443 attr(LIGHTGRAY);
    444 while (!feof(stream) &amp;&amp; !ferror(stream) &amp;&amp; !msgabort()) {
    445 if (!fgets(str, sizeof(str), stream))

    </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_695528f458f41_188c5a2c2daae1599845314--


    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
  • From scan-admin@coverity.com@VERT to All on Sun Jan 4 13:50:57 2026
    ----==_mimepart_695a7040d64d9_1c5eff2c2daae1599845367
    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.
    1 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 640376: (SLEEP)


    _____________________________________________________________________________________________
    *** CID 640376: (SLEEP)
    /tmp/sbbs-Jan-04-2026/src/conio/ciolib.c: 575 in initciolib()
    569 try_x_init(mode);
    570 #endif
    571 break;
    572 #endif
    573 case CIOLIB_MODE_ANSI:
    574 try_ansi_init(mode);
    CID 640376: (SLEEP)
    Call to "try_ansi_init" might sleep while holding lock "init_mutex". 575 break;
    576
    577 #if defined(WITH_SDL)
    578 case CIOLIB_MODE_SDL:
    579 case CIOLIB_MODE_SDL_FULLSCREEN:
    580 try_sdl_init(mode); /tmp/sbbs-Jan-04-2026/src/conio/ciolib.c: 548 in initciolib()
    542 if(!try_sdl_init(CIOLIB_MODE_SDL))
    543 #endif
    544 #ifndef _WIN32
    545 if(!try_curses_init(mode))
    546 #endif
    547 if (!try_ansi_init(mode))
    CID 640376: (SLEEP)
    Call to "try_ansi_init" might sleep while holding lock "init_mutex". 548 #ifdef _WIN32
    549 if(!try_conio_init(mode));
    550 #else
    551 ;
    552 #endif
    553 break; /tmp/sbbs-Jan-04-2026/src/conio/ciolib.c: 543 in initciolib()
    537 #endif
    538 #if defined(WITH_GDI)
    539 if (!try_gdi_init(mode))
    540 #endif
    541 #if defined(WITH_SDL)
    542 if(!try_sdl_init(CIOLIB_MODE_SDL))
    CID 640376: (SLEEP)
    Call to "try_sdl_init" might sleep while holding lock "init_mutex".
    543 #endif
    544 #ifndef _WIN32
    545 if(!try_curses_init(mode))
    546 #endif
    547 if (!try_ansi_init(mode))
    548 #ifdef _WIN32
    /tmp/sbbs-Jan-04-2026/src/conio/ciolib.c: 581 in initciolib()
    575 break;
    576
    577 #if defined(WITH_SDL)
    578 case CIOLIB_MODE_SDL:
    579 case CIOLIB_MODE_SDL_FULLSCREEN:
    580 try_sdl_init(mode);
    CID 640376: (SLEEP)
    Call to "try_sdl_init" might sleep while holding lock "init_mutex".
    581 break;
    582 #endif
    583
    584 #if defined(WITH_GDI)
    585 case CIOLIB_MODE_GDI:
    586 case CIOLIB_MODE_GDI_FULLSCREEN:


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


    ----==_mimepart_695a7040d64d9_1c5eff2c2daae1599845367
    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>
    1 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 640376: (SLEEP)


    _____________________________________________________________________________________________
    *** CID 640376: (SLEEP)
    /tmp/sbbs-Jan-04-2026/src/conio/ciolib.c: 575 in initciolib()
    569 try_x_init(mode);
    570 #endif
    571 break;
    572 #endif
    573 case CIOLIB_MODE_ANSI:
    574 try_ansi_init(mode);
    &gt;&gt;&gt; CID 640376: (SLEEP)
    &gt;&gt;&gt; Call to &quot;try_ansi_init&quot; might sleep while holding lock &quot;init_mutex&quot;.
    575 break;
    576
    577 #if defined(WITH_SDL)
    578 case CIOLIB_MODE_SDL:
    579 case CIOLIB_MODE_SDL_FULLSCREEN:
    580 try_sdl_init(mode); /tmp/sbbs-Jan-04-2026/src/conio/ciolib.c: 548 in initciolib()
    542 if(!try_sdl_init(CIOLIB_MODE_SDL))
    543 #endif
    544 #ifndef _WIN32
    545 if(!try_curses_init(mode))
    546 #endif
    547 if (!try_ansi_init(mode))
    &gt;&gt;&gt; CID 640376: (SLEEP)
    &gt;&gt;&gt; Call to &quot;try_ansi_init&quot; might sleep while holding lock &quot;init_mutex&quot;.
    548 #ifdef _WIN32
    549 if(!try_conio_init(mode));
    550 #else
    551 ;
    552 #endif
    553 break; /tmp/sbbs-Jan-04-2026/src/conio/ciolib.c: 543 in initciolib()
    537 #endif
    538 #if defined(WITH_GDI)
    539 if (!try_gdi_init(mode))
    540 #endif
    541 #if defined(WITH_SDL)
    542 if(!try_sdl_init(CIOLIB_MODE_SDL))
    &gt;&gt;&gt; CID 640376: (SLEEP)
    &gt;&gt;&gt; Call to &quot;try_sdl_init&quot; might sleep while holding lock &quot;init_mutex&quot;.
    543 #endif
    544 #ifndef _WIN32
    545 if(!try_curses_init(mode))
    546 #endif
    547 if (!try_ansi_init(mode))
    548 #ifdef _WIN32
    /tmp/sbbs-Jan-04-2026/src/conio/ciolib.c: 581 in initciolib()
    575 break;
    576
    577 #if defined(WITH_SDL)
    578 case CIOLIB_MODE_SDL:
    579 case CIOLIB_MODE_SDL_FULLSCREEN:
    580 try_sdl_init(mode);
    &gt;&gt;&gt; CID 640376: (SLEEP)
    &gt;&gt;&gt; Call to &quot;try_sdl_init&quot; might sleep while holding lock &quot;init_mutex&quot;.
    581 break;
    582 #endif
    583
    584 #if defined(WITH_GDI)
    585 case CIOLIB_MODE_GDI:
    586 case CIOLIB_MODE_GDI_FULLSCREEN:

    </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_695a7040d64d9_1c5eff2c2daae1599845367--


    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
  • From scan-admin@coverity.com@VERT to All on Mon Jan 5 13:46:18 2026
    ----==_mimepart_695bc0a9c87c5_1d5c082c2daae1599845356
    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.

    4 new defect(s) introduced to Synchronet found with Coverity Scan.
    1 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 4 of 4 defect(s)


    ** CID 640406: High impact quality (Y2K38_SAFETY)
    /getstats.c: 127 in fread_dstats()


    _____________________________________________________________________________________________
    *** CID 640406: High impact quality (Y2K38_SAFETY)
    /getstats.c: 127 in fread_dstats()
    121 if (fp == NULL)
    122 return false;
    123
    124 memset(stats, 0, sizeof(*stats));
    125 if ((ini = iniReadFile(fp)) == NULL)
    126 return false;
    CID 640406: High impact quality (Y2K38_SAFETY)
    A "time_t" value is stored in an integer with too few bits to accommodate it. The expression "iniGetDateTime(ini, NULL, "Date", 0L)" is cast to "time32_t".
    127 stats->date = (time32_t)iniGetDateTime(ini, NULL, strStatsDate, 0);
    128 gettotals(ini, strStatsToday, &stats->today);
    129 gettotals(ini, strStatsTotal, &stats->total);
    130 iniFreeStringList(ini);
    131 stats->last = time32(NULL);
    132

    ** CID 640405: API usage errors (PW.PRINTF_ARG_MISMATCH)
    /atcodes.cpp: 844 in ()


    _____________________________________________________________________________________________
    *** CID 640405: API usage errors (PW.PRINTF_ARG_MISMATCH) /atcodes.cpp: 844 in ()
    838 if (strcmp(sp, "CLOCK") == 0) {
    839 snprintf(str, maxlen, "%" PRIu64, xp_timer64());
    840 return str;
    841 }
    842
    843 if (strcmp(sp, "TIMER") == 0) {
    CID 640405: API usage errors (PW.PRINTF_ARG_MISMATCH)
    argument is incompatible with corresponding format string conversion (expected type "double" but argument has type "long double")
    844 snprintf(str, maxlen, "%f", xp_timer());
    845 return str;
    846 }
    847
    848 if (strcmp(sp, "GENDERS") == 0)
    849 return cfg.new_genders;

    ** CID 640404: API usage errors (PRINTF_ARGS)
    /atcodes.cpp: 844 in sbbs_t::atcode(const char *, char *, unsigned long, int *, bool, JSObject *)()


    _____________________________________________________________________________________________
    *** CID 640404: API usage errors (PRINTF_ARGS)
    /atcodes.cpp: 844 in sbbs_t::atcode(const char *, char *, unsigned long, int *, bool, JSObject *)()
    838 if (strcmp(sp, "CLOCK") == 0) {
    839 snprintf(str, maxlen, "%" PRIu64, xp_timer64());
    840 return str;
    841 }
    842
    843 if (strcmp(sp, "TIMER") == 0) {
    CID 640404: API usage errors (PRINTF_ARGS)
    Argument "xp_timer()" to format specifier "%f" was expected to have type "double" but has type "long double". [Note: The source code implementation of the function has been overridden by a builtin model.]
    844 snprintf(str, maxlen, "%f", xp_timer());
    845 return str;
    846 }
    847
    848 if (strcmp(sp, "GENDERS") == 0)
    849 return cfg.new_genders;

    ** CID 640403: Error handling issues (CHECKED_RETURN)
    /js_system.cpp: 1351 in js_minutestr(JSContext *, unsigned int, unsigned long *)()


    _____________________________________________________________________________________________
    *** CID 640403: Error handling issues (CHECKED_RETURN)
    /js_system.cpp: 1351 in js_minutestr(JSContext *, unsigned int, unsigned long *)()
    1345 if (js_argvIsNullOrVoid(cx, argv, 0))
    1346 return JS_FALSE;
    1347
    1348 if (argc > 1 && JSVAL_IS_BOOLEAN(argv[1]))
    1349 estimate = JSVAL_TO_BOOLEAN(argv[1]);
    1350
    CID 640403: Error handling issues (CHECKED_RETURN)
    Calling "JS_ValueToECMAUint32" without checking return value (as is done elsewhere 96 out of 102 times).
    1351 JS_ValueToECMAUint32(cx, argv[0], &t);
    1352 if ((js_str = JS_NewStringCopyZ(cx, minutes_to_str(t, str, sizeof str, estimate))) == NULL)
    1353 return JS_FALSE;
    1354
    1355 JS_SET_RVAL(cx, arglist, STRING_TO_JSVAL(js_str));
    1356 return JS_TRUE;


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


    ----==_mimepart_695bc0a9c87c5_1d5c082c2daae1599845356
    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> 4</li>
    <li>
    1 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 4 of 4 defect(s)</li>
    </ul>

    <h3>Defect Details</h3>
    <pre>
    ** CID 640406: High impact quality (Y2K38_SAFETY)
    /getstats.c: 127 in fread_dstats()


    _____________________________________________________________________________________________
    *** CID 640406: High impact quality (Y2K38_SAFETY)
    /getstats.c: 127 in fread_dstats()
    121 if (fp == NULL)
    122 return false;
    123
    124 memset(stats, 0, sizeof(*stats));
    125 if ((ini = iniReadFile(fp)) == NULL)
    126 return false;
    &gt;&gt;&gt; CID 640406: High impact quality (Y2K38_SAFETY) &gt;&gt;&gt; A &quot;time_t&quot; value is stored in an integer with too few bits to accommodate it. The expression &quot;iniGetDateTime(ini, NULL, &quot;Date&quot;, 0L)&quot; is cast to &quot;time32_t&quot;.
    127 stats-&gt;date = (time32_t)iniGetDateTime(ini, NULL, strStatsDate, 0);
    128 gettotals(ini, strStatsToday, &amp;stats-&gt;today);
    129 gettotals(ini, strStatsTotal, &amp;stats-&gt;total);
    130 iniFreeStringList(ini);
    131 stats-&gt;last = time32(NULL);
    132

    ** CID 640405: API usage errors (PW.PRINTF_ARG_MISMATCH)
    /atcodes.cpp: 844 in ()


    _____________________________________________________________________________________________
    *** CID 640405: API usage errors (PW.PRINTF_ARG_MISMATCH) /atcodes.cpp: 844 in ()
    838 if (strcmp(sp, &quot;CLOCK&quot;) == 0) {
    839 snprintf(str, maxlen, &quot;%&quot; PRIu64, xp_timer64());
    840 return str;
    841 }
    842
    843 if (strcmp(sp, &quot;TIMER&quot;) == 0) {
    &gt;&gt;&gt; CID 640405: API usage errors (PW.PRINTF_ARG_MISMATCH) &gt;&gt;&gt; argument is incompatible with corresponding format string conversion (expected type &quot;double&quot; but argument has type &quot;long double&quot;)
    844 snprintf(str, maxlen, &quot;%f&quot;, xp_timer());
    845 return str;
    846 }
    847
    848 if (strcmp(sp, &quot;GENDERS&quot;) == 0)
    849 return cfg.new_genders;

    ** CID 640404: API usage errors (PRINTF_ARGS)
    /atcodes.cpp: 844 in sbbs_t::atcode(const char *, char *, unsigned long, int *, bool, JSObject *)()


    _____________________________________________________________________________________________
    *** CID 640404: API usage errors (PRINTF_ARGS)
    /atcodes.cpp: 844 in sbbs_t::atcode(const char *, char *, unsigned long, int *, bool, JSObject *)()
    838 if (strcmp(sp, &quot;CLOCK&quot;) == 0) {
    839 snprintf(str, maxlen, &quot;%&quot; PRIu64, xp_timer64());
    840 return str;
    841 }
    842
    843 if (strcmp(sp, &quot;TIMER&quot;) == 0) {
    &gt;&gt;&gt; CID 640404: API usage errors (PRINTF_ARGS) &gt;&gt;&gt; Argument &quot;xp_timer()&quot; to format specifier &quot;%f&quot; was expected to have type &quot;double&quot; but has type &quot;long double&quot;. [Note: The source code implementation of the function has been overridden by a builtin model.]
    844 snprintf(str, maxlen, &quot;%f&quot;, xp_timer());
    845 return str;
    846 }
    847
    848 if (strcmp(sp, &quot;GENDERS&quot;) == 0)
    849 return cfg.new_genders;

    ** CID 640403: Error handling issues (CHECKED_RETURN)
    /js_system.cpp: 1351 in js_minutestr(JSContext *, unsigned int, unsigned long *)()


    _____________________________________________________________________________________________
    *** CID 640403: Error handling issues (CHECKED_RETURN)
    /js_system.cpp: 1351 in js_minutestr(JSContext *, unsigned int, unsigned long *)()
    1345 if (js_argvIsNullOrVoid(cx, argv, 0))
    1346 return JS_FALSE;
    1347
    1348 if (argc &gt; 1 &amp;&amp; JSVAL_IS_BOOLEAN(argv[1]))
    1349 estimate = JSVAL_TO_BOOLEAN(argv[1]);
    1350
    &gt;&gt;&gt; CID 640403: Error handling issues (CHECKED_RETURN) &gt;&gt;&gt; Calling &quot;JS_ValueToECMAUint32&quot; without checking return value (as is done elsewhere 96 out of 102 times).
    1351 JS_ValueToECMAUint32(cx, argv[0], &amp;t);
    1352 if ((js_str = JS_NewStringCopyZ(cx, minutes_to_str(t, str, sizeof str, estimate))) == NULL)
    1353 return JS_FALSE;
    1354
    1355 JS_SET_RVAL(cx, arglist, STRING_TO_JSVAL(js_str));
    1356 return JS_TRUE;

    </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_695bc0a9c87c5_1d5c082c2daae1599845356--


    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
  • From scan-admin@coverity.com@VERT to All on Wed Jan 7 13:48:08 2026
    ----==_mimepart_695e6417e6a62_1f55b62c2daae1599845373
    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.


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


    ** CID 640928: Performance inefficiencies (PASS_BY_VALUE)
    /js_user.cpp: 60 in user_private_t::user_private_t(scfg_t *, user_t)()


    _____________________________________________________________________________________________
    *** CID 640928: Performance inefficiencies (PASS_BY_VALUE) /js_user.cpp: 60 in user_private_t::user_private_t(scfg_t *, user_t)()
    54 cached_mail_count mail_pending{cfg, user, true, 0};
    55 cached_mail_count spam_waiting{cfg, user, false, MSG_SPAM};
    56
    57 user_private_t(scfg_t* cfg)
    58 : cfg(cfg)
    59 {}
    CID 640928: Performance inefficiencies (PASS_BY_VALUE)
    Passing parameter user of type "user_t" (size 784 bytes) by value, which exceeds the high threshold of 512 bytes.
    60 user_private_t(scfg_t* cfg, user_t user)
    61 : storage(user)
    62 , cached(user.number == 0 ? false : true)
    63 , cfg(cfg)
    64 {}
    65 };

    ** CID 640927: API usage errors (PRINTF_ARGS)


    _____________________________________________________________________________________________
    *** CID 640927: API usage errors (PRINTF_ARGS)
    /date_str.c: 301 in tm_as_hhmmss()
    295 /* Returns 8 character string (e.g. hh:mm:ss or hh:mm am/pm) */
    296 /****************************************************************************/
    297 char* tm_as_hhmmss(scfg_t* cfg, struct tm* tm, char* str, size_t size) 298 {
    299 if (cfg != NULL && (cfg->sys_misc & SM_MILITARY))
    300 snprintf(str, size, "%02d:%02d:02d"
    CID 640927: API usage errors (PRINTF_ARGS)
    This argument was not used by the format string: "tm->tm_sec".
    301 , tm->tm_hour, tm->tm_min, tm->tm_sec);
    302 else
    303 snprintf(str, size, "%02d:%02d %cm"
    304 , tm->tm_hour > 12 ? tm->tm_hour - 12 : tm->tm_hour == 0 ? 12 : tm->tm_hour
    305 , tm->tm_min, tm->tm_hour >= 12 ? 'p' : 'a'); 306 return str;

    ** CID 640926: API usage errors (PW.TOO_MANY_PRINTF_ARGS)
    /date_str.c: 301 in ()


    _____________________________________________________________________________________________
    *** CID 640926: API usage errors (PW.TOO_MANY_PRINTF_ARGS) /date_str.c: 301 in ()
    295 /* Returns 8 character string (e.g. hh:mm:ss or hh:mm am/pm) */
    296 /****************************************************************************/
    297 char* tm_as_hhmmss(scfg_t* cfg, struct tm* tm, char* str, size_t size) 298 {
    299 if (cfg != NULL && (cfg->sys_misc & SM_MILITARY))
    300 snprintf(str, size, "%02d:%02d:02d"
    CID 640926: API usage errors (PW.TOO_MANY_PRINTF_ARGS)
    the format string ends before this argument
    301 , tm->tm_hour, tm->tm_min, tm->tm_sec);
    302 else
    303 snprintf(str, size, "%02d:%02d %cm"
    304 , tm->tm_hour > 12 ? tm->tm_hour - 12 : tm->tm_hour == 0 ? 12 : tm->tm_hour
    305 , tm->tm_min, tm->tm_hour >= 12 ? 'p' : 'a'); 306 return str;


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


    ----==_mimepart_695e6417e6a62_1f55b62c2daae1599845373
    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><strong>Defects Shown:</strong> Showing 3 of 3 defect(s)</li>
    </ul>

    <h3>Defect Details</h3>
    <pre>
    ** CID 640928: Performance inefficiencies (PASS_BY_VALUE)
    /js_user.cpp: 60 in user_private_t::user_private_t(scfg_t *, user_t)()


    _____________________________________________________________________________________________
    *** CID 640928: Performance inefficiencies (PASS_BY_VALUE) /js_user.cpp: 60 in user_private_t::user_private_t(scfg_t *, user_t)()
    54 cached_mail_count mail_pending{cfg, user, true, 0};
    55 cached_mail_count spam_waiting{cfg, user, false, MSG_SPAM};
    56
    57 user_private_t(scfg_t* cfg)
    58 : cfg(cfg)
    59 {}
    &gt;&gt;&gt; CID 640928: Performance inefficiencies (PASS_BY_VALUE)
    &gt;&gt;&gt; Passing parameter user of type &quot;user_t&quot; (size 784 bytes) by value, which exceeds the high threshold of 512 bytes.
    60 user_private_t(scfg_t* cfg, user_t user)
    61 : storage(user)
    62 , cached(user.number == 0 ? false : true)
    63 , cfg(cfg)
    64 {}
    65 };

    ** CID 640927: API usage errors (PRINTF_ARGS)


    _____________________________________________________________________________________________
    *** CID 640927: API usage errors (PRINTF_ARGS)
    /date_str.c: 301 in tm_as_hhmmss()
    295 /* Returns 8 character string (e.g. hh:mm:ss or hh:mm am/pm) */
    296 /****************************************************************************/
    297 char* tm_as_hhmmss(scfg_t* cfg, struct tm* tm, char* str, size_t size) 298 {
    299 if (cfg != NULL &amp;&amp; (cfg-&gt;sys_misc &amp; SM_MILITARY))
    300 snprintf(str, size, &quot;%02d:%02d:02d&quot; &gt;&gt;&gt; CID 640927: API usage errors (PRINTF_ARGS) &gt;&gt;&gt; This argument was not used by the format string: &quot;tm-&gt;tm_sec&quot;.
    301 , tm-&gt;tm_hour, tm-&gt;tm_min, tm-&gt;tm_sec);
    302 else
    303 snprintf(str, size, &quot;%02d:%02d %cm&quot;
    304 , tm-&gt;tm_hour &gt; 12 ? tm-&gt;tm_hour - 12 : tm-&gt;tm_hour == 0 ? 12 : tm-&gt;tm_hour
    305 , tm-&gt;tm_min, tm-&gt;tm_hour &gt;= 12 ? &#39;p&#39; : &#39;a&#39;);
    306 return str;

    ** CID 640926: API usage errors (PW.TOO_MANY_PRINTF_ARGS)
    /date_str.c: 301 in ()


    _____________________________________________________________________________________________
    *** CID 640926: API usage errors (PW.TOO_MANY_PRINTF_ARGS) /date_str.c: 301 in ()
    295 /* Returns 8 character string (e.g. hh:mm:ss or hh:mm am/pm) */
    296 /****************************************************************************/
    297 char* tm_as_hhmmss(scfg_t* cfg, struct tm* tm, char* str, size_t size) 298 {
    299 if (cfg != NULL &amp;&amp; (cfg-&gt;sys_misc &amp; SM_MILITARY))
    300 snprintf(str, size, &quot;%02d:%02d:02d&quot; &gt;&gt;&gt; CID 640926: API usage errors (PW.TOO_MANY_PRINTF_ARGS)
    &gt;&gt;&gt; the format string ends before this argument
    301 , tm-&gt;tm_hour, tm-&gt;tm_min, tm-&gt;tm_sec);
    302 else
    303 snprintf(str, size, &quot;%02d:%02d %cm&quot;
    304 , tm-&gt;tm_hour &gt; 12 ? tm-&gt;tm_hour - 12 : tm-&gt;tm_hour == 0 ? 12 : tm-&gt;tm_hour
    305 , tm-&gt;tm_min, tm-&gt;tm_hour &gt;= 12 ? &#39;p&#39; : &#39;a&#39;);
    306 return str;

    </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_695e6417e6a62_1f55b62c2daae1599845373--


    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
  • From scan-admin@coverity.com@VERT to All on Thu Jan 8 13:44:45 2026
    ----==_mimepart_695fb4cd3c9f7_2053bf2c2daae15998453fd
    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.
    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 1 of 1 defect(s)


    ** CID 640932: Insecure data handling (INTEGER_OVERFLOW)
    /atcodes.cpp: 1664 in sbbs_t::atcode(const char *, char *, unsigned long, int *, bool, JSObject *)()


    _____________________________________________________________________________________________
    *** CID 640932: Insecure data handling (INTEGER_OVERFLOW) /atcodes.cpp: 1664 in sbbs_t::atcode(const char *, char *, unsigned long, int *, bool, JSObject *)()
    1658 if (!strcmp(sp, "BYTESLEFT")) {
    1659 safe_snprintf(str, maxlen, "%" PRIu64, user_available_credits(&useron));
    1660 return str;
    1661 }
    1662
    1663 if (code_match(sp, "CDTLEFT", &param))
    CID 640932: Insecure data handling (INTEGER_OVERFLOW)
    The cast of "user_available_credits(&this->useron)" to a signed type could result in a negative number.
    1664 return byte_count(user_available_credits(&useron), str, maxlen, param, BYTE_COUNT_VERBAL);
    1665
    1666 if (code_match(sp, "CREDITS", &param))
    1667 return byte_count(useron.cdt, str, maxlen, param, BYTE_COUNT_BYTES);
    1668
    1669 if (code_match(sp, "FREECDT", &param))


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


    ----==_mimepart_695fb4cd3c9f7_2053bf2c2daae15998453fd
    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>
    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 1 of 1 defect(s)</li>
    </ul>

    <h3>Defect Details</h3>
    <pre>
    ** CID 640932: Insecure data handling (INTEGER_OVERFLOW)
    /atcodes.cpp: 1664 in sbbs_t::atcode(const char *, char *, unsigned long, int *, bool, JSObject *)()


    _____________________________________________________________________________________________
    *** CID 640932: Insecure data handling (INTEGER_OVERFLOW) /atcodes.cpp: 1664 in sbbs_t::atcode(const char *, char *, unsigned long, int *, bool, JSObject *)()
    1658 if (!strcmp(sp, &quot;BYTESLEFT&quot;)) {
    1659 safe_snprintf(str, maxlen, &quot;%&quot; PRIu64, user_available_credits(&amp;useron));
    1660 return str;
    1661 }
    1662
    1663 if (code_match(sp, &quot;CDTLEFT&quot;, &amp;param)) &gt;&gt;&gt; CID 640932: Insecure data handling (INTEGER_OVERFLOW) &gt;&gt;&gt; The cast of &quot;user_available_credits(&amp;this-&gt;useron)&quot; to a signed type could result in a negative number.
    1664 return byte_count(user_available_credits(&amp;useron), str, maxlen, param, BYTE_COUNT_VERBAL);
    1665
    1666 if (code_match(sp, &quot;CREDITS&quot;, &amp;param))
    1667 return byte_count(useron.cdt, str, maxlen, param, BYTE_COUNT_BYTES);
    1668
    1669 if (code_match(sp, &quot;FREECDT&quot;, &amp;param))

    </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_695fb4cd3c9f7_2053bf2c2daae15998453fd--


    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
  • From scan-admin@coverity.com@VERT to All on Sat Jan 10 13:44:53 2026
    ----==_mimepart_696257d4e4005_22599f2afbc97ad9ac59824
    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.


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


    ** CID 640959: (CHECKED_RETURN) /tmp/sbbs-Jan-10-2026/src/xpdev/genwrap.c: 479 in add_suffix() /tmp/sbbs-Jan-10-2026/src/xpdev/genwrap.c: 481 in add_suffix() /tmp/sbbs-Jan-10-2026/src/xpdev/genwrap.c: 483 in add_suffix() /tmp/sbbs-Jan-10-2026/src/xpdev/genwrap.c: 480 in add_suffix()


    _____________________________________________________________________________________________
    *** CID 640959: (CHECKED_RETURN) /tmp/sbbs-Jan-10-2026/src/xpdev/genwrap.c: 479 in add_suffix()
    473 char* p = strstr(str, ".0");
    474 if (p != NULL && *(p + 2) == '\0') // remove trailing ".0"
    475 *p = '\0';
    476 if (strcmp(str, "1") == 0)
    477 plural = "";
    478 if (is_word) {
    CID 640959: (CHECKED_RETURN)
    Calling "strlcat" without checking return value (as is done elsewhere 29 out of 33 times).
    479 strlcat(str, " ", size);
    480 strlcat(str, suffix, size);
    481 strlcat(str, plural, size);
    482 } else
    483 strlcat(str, suffix, size);
    484 }
    /tmp/sbbs-Jan-10-2026/src/xpdev/genwrap.c: 481 in add_suffix()
    475 *p = '\0';
    476 if (strcmp(str, "1") == 0)
    477 plural = "";
    478 if (is_word) {
    479 strlcat(str, " ", size);
    480 strlcat(str, suffix, size);
    CID 640959: (CHECKED_RETURN)
    Calling "strlcat" without checking return value (as is done elsewhere 29 out of 33 times).
    481 strlcat(str, plural, size);
    482 } else
    483 strlcat(str, suffix, size);
    484 }
    485
    486 /* Convert a duration estimate (in seconds) to a string /tmp/sbbs-Jan-10-2026/src/xpdev/genwrap.c: 483 in add_suffix()
    477 plural = "";
    478 if (is_word) {
    479 strlcat(str, " ", size);
    480 strlcat(str, suffix, size);
    481 strlcat(str, plural, size);
    482 } else
    CID 640959: (CHECKED_RETURN)
    Calling "strlcat" without checking return value (as is done elsewhere 29 out of 33 times).
    483 strlcat(str, suffix, size);
    484 }
    485
    486 /* Convert a duration estimate (in seconds) to a string
    487 * with a single letter multiplier/suffix:
    488 * (y)ears, (w)eeks, (d)ays, (h)ours, (m)inutes, or (s)econds /tmp/sbbs-Jan-10-2026/src/xpdev/genwrap.c: 480 in add_suffix()
    474 if (p != NULL && *(p + 2) == '\0') // remove trailing ".0"
    475 *p = '\0';
    476 if (strcmp(str, "1") == 0)
    477 plural = "";
    478 if (is_word) {
    479 strlcat(str, " ", size);
    CID 640959: (CHECKED_RETURN)
    Calling "strlcat" without checking return value (as is done elsewhere 29 out of 33 times).
    480 strlcat(str, suffix, size);
    481 strlcat(str, plural, size);
    482 } else
    483 strlcat(str, suffix, size);
    484 }
    485


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


    ----==_mimepart_696257d4e4005_22599f2afbc97ad9ac59824
    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><strong>Defects Shown:</strong> Showing 1 of 1 defect(s)</li>
    </ul>

    <h3>Defect Details</h3>
    <pre>
    ** CID 640959: (CHECKED_RETURN) /tmp/sbbs-Jan-10-2026/src/xpdev/genwrap.c: 479 in add_suffix() /tmp/sbbs-Jan-10-2026/src/xpdev/genwrap.c: 481 in add_suffix() /tmp/sbbs-Jan-10-2026/src/xpdev/genwrap.c: 483 in add_suffix() /tmp/sbbs-Jan-10-2026/src/xpdev/genwrap.c: 480 in add_suffix()


    _____________________________________________________________________________________________
    *** CID 640959: (CHECKED_RETURN) /tmp/sbbs-Jan-10-2026/src/xpdev/genwrap.c: 479 in add_suffix()
    473 char* p = strstr(str, &quot;.0&quot;);
    474 if (p != NULL &amp;&amp; *(p + 2) == &#39;\0&#39;) // remove trailing &quot;.0&quot;
    475 *p = &#39;\0&#39;;
    476 if (strcmp(str, &quot;1&quot;) == 0)
    477 plural = &quot;&quot;;
    478 if (is_word) {
    &gt;&gt;&gt; CID 640959: (CHECKED_RETURN)
    &gt;&gt;&gt; Calling &quot;strlcat&quot; without checking return value (as is done elsewhere 29 out of 33 times).
    479 strlcat(str, &quot; &quot;, size);
    480 strlcat(str, suffix, size);
    481 strlcat(str, plural, size);
    482 } else
    483 strlcat(str, suffix, size);
    484 }
    /tmp/sbbs-Jan-10-2026/src/xpdev/genwrap.c: 481 in add_suffix()
    475 *p = &#39;\0&#39;;
    476 if (strcmp(str, &quot;1&quot;) == 0)
    477 plural = &quot;&quot;;
    478 if (is_word) {
    479 strlcat(str, &quot; &quot;, size);
    480 strlcat(str, suffix, size);
    &gt;&gt;&gt; CID 640959: (CHECKED_RETURN)
    &gt;&gt;&gt; Calling &quot;strlcat&quot; without checking return value (as is done elsewhere 29 out of 33 times).
    481 strlcat(str, plural, size);
    482 } else
    483 strlcat(str, suffix, size);
    484 }
    485
    486 /* Convert a duration estimate (in seconds) to a string /tmp/sbbs-Jan-10-2026/src/xpdev/genwrap.c: 483 in add_suffix()
    477 plural = &quot;&quot;;
    478 if (is_word) {
    479 strlcat(str, &quot; &quot;, size);
    480 strlcat(str, suffix, size);
    481 strlcat(str, plural, size);
    482 } else
    &gt;&gt;&gt; CID 640959: (CHECKED_RETURN)
    &gt;&gt;&gt; Calling &quot;strlcat&quot; without checking return value (as is done elsewhere 29 out of 33 times).
    483 strlcat(str, suffix, size);
    484 }
    485
    486 /* Convert a duration estimate (in seconds) to a string
    487 * with a single letter multiplier/suffix:
    488 * (y)ears, (w)eeks, (d)ays, (h)ours, (m)inutes, or (s)econds /tmp/sbbs-Jan-10-2026/src/xpdev/genwrap.c: 480 in add_suffix()
    474 if (p != NULL &amp;&amp; *(p + 2) == &#39;\0&#39;) // remove trailing &quot;.0&quot;
    475 *p = &#39;\0&#39;;
    476 if (strcmp(str, &quot;1&quot;) == 0)
    477 plural = &quot;&quot;;
    478 if (is_word) {
    479 strlcat(str, &quot; &quot;, size);
    &gt;&gt;&gt; CID 640959: (CHECKED_RETURN)
    &gt;&gt;&gt; Calling &quot;strlcat&quot; without checking return value (as is done elsewhere 29 out of 33 times).
    480 strlcat(str, suffix, size);
    481 strlcat(str, plural, size);
    482 } else
    483 strlcat(str, suffix, size);
    484 }
    485

    </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_696257d4e4005_22599f2afbc97ad9ac59824--


    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
  • From scan-admin@coverity.com@VERT to All on Sun Jan 11 13:48:17 2026
    ----==_mimepart_6963aa20b22c3_235b0c2afbc97ad9ac59882
    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.

    2 new defect(s) introduced to Synchronet found with Coverity Scan.
    1 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 2 of 2 defect(s)


    ** CID 640963: Resource leaks (RESOURCE_LEAK)
    /sbbs_ini.c: 401 in sbbs_read_ini()


    _____________________________________________________________________________________________
    *** CID 640963: Resource leaks (RESOURCE_LEAK)
    /sbbs_ini.c: 401 in sbbs_read_ini()
    395 , services
    396 );
    397
    398 list = iniReadFile(fp);
    399
    400 if (!get_ini_globals(list, global))
    CID 640963: Resource leaks (RESOURCE_LEAK)
    Variable "list" going out of scope leaks the storage it points to.
    401 return false;
    402
    403 if (global->ctrl_dir[0]) {
    404 if (bbs != NULL)
    405 SAFECOPY(bbs->ctrl_dir, global->ctrl_dir);
    406 if (ftp != NULL)

    ** CID 640962: Resource leaks (RESOURCE_LEAK)
    /sbbs_ini.c: 442 in sbbs_read_ini()


    _____________________________________________________________________________________________
    *** CID 640962: Resource leaks (RESOURCE_LEAK)
    /sbbs_ini.c: 442 in sbbs_read_ini()
    436 if (run_bbs != NULL)
    437 *run_bbs = iniGetBool(list, section, strAutoStart, true);
    438
    439 if (bbs != NULL) {
    440
    441 if (bbs->size != sizeof *bbs)
    CID 640962: Resource leaks (RESOURCE_LEAK)
    Variable "global_interfaces" going out of scope leaks the storage it points to.
    442 return false;
    443
    444 bbs->outgoing4.s_addr
    445 = iniGetIpAddress(list, section, strOutgoing4, global->outgoing4.s_addr);
    446 bbs->outgoing6
    447 = iniGetIp6Address(list, section, strOutgoing6, global->outgoing6);


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


    ----==_mimepart_6963aa20b22c3_235b0c2afbc97ad9ac59882
    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> 2</li>
    <li>
    1 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 2 of 2 defect(s)</li>
    </ul>

    <h3>Defect Details</h3>
    <pre>
    ** CID 640963: Resource leaks (RESOURCE_LEAK)
    /sbbs_ini.c: 401 in sbbs_read_ini()


    _____________________________________________________________________________________________
    *** CID 640963: Resource leaks (RESOURCE_LEAK)
    /sbbs_ini.c: 401 in sbbs_read_ini()
    395 , services
    396 );
    397
    398 list = iniReadFile(fp);
    399
    400 if (!get_ini_globals(list, global))
    &gt;&gt;&gt; CID 640963: Resource leaks (RESOURCE_LEAK) &gt;&gt;&gt; Variable &quot;list&quot; going out of scope leaks the storage it points to.
    401 return false;
    402
    403 if (global-&gt;ctrl_dir[0]) {
    404 if (bbs != NULL)
    405 SAFECOPY(bbs-&gt;ctrl_dir, global-&gt;ctrl_dir);
    406 if (ftp != NULL)

    ** CID 640962: Resource leaks (RESOURCE_LEAK)
    /sbbs_ini.c: 442 in sbbs_read_ini()


    _____________________________________________________________________________________________
    *** CID 640962: Resource leaks (RESOURCE_LEAK)
    /sbbs_ini.c: 442 in sbbs_read_ini()
    436 if (run_bbs != NULL)
    437 *run_bbs = iniGetBool(list, section, strAutoStart, true);
    438
    439 if (bbs != NULL) {
    440
    441 if (bbs-&gt;size != sizeof *bbs)
    &gt;&gt;&gt; CID 640962: Resource leaks (RESOURCE_LEAK) &gt;&gt;&gt; Variable &quot;global_interfaces&quot; going out of scope leaks the storage it points to.
    442 return false;
    443
    444 bbs-&gt;outgoing4.s_addr
    445 = iniGetIpAddress(list, section, strOutgoing4, global-&gt;outgoing4.s_addr);
    446 bbs-&gt;outgoing6
    447 = iniGetIp6Address(list, section, strOutgoing6, global-&gt;outgoing6);

    </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_6963aa20b22c3_235b0c2afbc97ad9ac59882--


    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
  • From scan-admin@coverity.com@VERT to All on Mon Jan 12 13:47:57 2026
    ----==_mimepart_6964fb8d1cdba_2460bc2afbc97ad9ac59882
    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.

    2 new defect(s) introduced to Synchronet found with Coverity Scan.
    6 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 2 of 2 defect(s)


    ** CID 640971: High impact quality (Y2K38_SAFETY)
    /atcodes.cpp: 620 in sbbs_t::atcode(const char *, char *, unsigned long, int *, bool, unsigned int, JSObject *)()


    _____________________________________________________________________________________________
    *** CID 640971: High impact quality (Y2K38_SAFETY)
    /atcodes.cpp: 620 in sbbs_t::atcode(const char *, char *, unsigned long, int *, bool, unsigned int, JSObject *)()
    614
    615 if (code_match(sp, "UPTIME", &param)) {
    616 extern volatile time_t uptime;
    617 time_t up = 0;
    618 if (uptime != 0 && time(&now) >= uptime)
    619 up = now - uptime;
    CID 640971: High impact quality (Y2K38_SAFETY)
    A "time_t" value is stored in an integer with too few bits to accommodate it. The expression "up" is cast to "uint".
    620 return duration((uint)up, str, maxlen, param, DURATION_MINIMAL_VERBAL);
    621 }
    622
    623 if (!strcmp(sp, "SERVED")) {
    624 extern volatile uint served;
    625 safe_snprintf(str, maxlen, "%u", served);

    ** CID 640970: Insecure data handling (INTEGER_OVERFLOW)
    /atcodes.cpp: 1695 in sbbs_t::atcode(const char *, char *, unsigned long, int *, bool, unsigned int, JSObject *)()


    _____________________________________________________________________________________________
    *** CID 640970: Insecure data handling (INTEGER_OVERFLOW) /atcodes.cpp: 1695 in sbbs_t::atcode(const char *, char *, unsigned long, int *, bool, unsigned int, JSObject *)()
    1689 if (!strcmp(sp, "BYTESLEFT")) {
    1690 safe_snprintf(str, maxlen, "%" PRIu64, user_available_credits(&useron));
    1691 return str;
    1692 }
    1693
    1694 if (code_match(sp, "CDTLEFT", &param))
    CID 640970: Insecure data handling (INTEGER_OVERFLOW)
    The cast of "user_available_credits(&this->useron)" to a signed type could result in a negative number.
    1695 return byte_count(static_cast<int64_t>(user_available_credits(&useron)), str, maxlen, param, BYTE_COUNT_VERBAL);
    1696
    1697 if (code_match(sp, "CREDITS", &param))
    1698 return byte_count(useron.cdt, str, maxlen, param, BYTE_COUNT_BYTES);
    1699
    1700 if (code_match(sp, "FREECDT", &param))


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


    ----==_mimepart_6964fb8d1cdba_2460bc2afbc97ad9ac59882
    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> 2</li>
    <li>
    6 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 2 of 2 defect(s)</li>
    </ul>

    <h3>Defect Details</h3>
    <pre>
    ** CID 640971: High impact quality (Y2K38_SAFETY)
    /atcodes.cpp: 620 in sbbs_t::atcode(const char *, char *, unsigned long, int *, bool, unsigned int, JSObject *)()


    _____________________________________________________________________________________________
    *** CID 640971: High impact quality (Y2K38_SAFETY)
    /atcodes.cpp: 620 in sbbs_t::atcode(const char *, char *, unsigned long, int *, bool, unsigned int, JSObject *)()
    614
    615 if (code_match(sp, &quot;UPTIME&quot;, &amp;param)) {
    616 extern volatile time_t uptime;
    617 time_t up = 0;
    618 if (uptime != 0 &amp;&amp; time(&amp;now) &gt;= uptime) 619 up = now - uptime;
    &gt;&gt;&gt; CID 640971: High impact quality (Y2K38_SAFETY) &gt;&gt;&gt; A &quot;time_t&quot; value is stored in an integer with too few bits to accommodate it. The expression &quot;up&quot; is cast to &quot;uint&quot;.
    620 return duration((uint)up, str, maxlen, param, DURATION_MINIMAL_VERBAL);
    621 }
    622
    623 if (!strcmp(sp, &quot;SERVED&quot;)) {
    624 extern volatile uint served;
    625 safe_snprintf(str, maxlen, &quot;%u&quot;, served);

    ** CID 640970: Insecure data handling (INTEGER_OVERFLOW)
    /atcodes.cpp: 1695 in sbbs_t::atcode(const char *, char *, unsigned long, int *, bool, unsigned int, JSObject *)()


    _____________________________________________________________________________________________
    *** CID 640970: Insecure data handling (INTEGER_OVERFLOW) /atcodes.cpp: 1695 in sbbs_t::atcode(const char *, char *, unsigned long, int *, bool, unsigned int, JSObject *)()
    1689 if (!strcmp(sp, &quot;BYTESLEFT&quot;)) {
    1690 safe_snprintf(str, maxlen, &quot;%&quot; PRIu64, user_available_credits(&amp;useron));
    1691 return str;
    1692 }
    1693
    1694 if (code_match(sp, &quot;CDTLEFT&quot;, &amp;param)) &gt;&gt;&gt; CID 640970: Insecure data handling (INTEGER_OVERFLOW) &gt;&gt;&gt; The cast of &quot;user_available_credits(&amp;this-&gt;useron)&quot; to a signed type could result in a negative number.
    1695 return byte_count(static_cast&lt;int64_t&gt;(user_available_credits(&amp;useron)), str, maxlen, param, BYTE_COUNT_VERBAL);
    1696
    1697 if (code_match(sp, &quot;CREDITS&quot;, &amp;param))
    1698 return byte_count(useron.cdt, str, maxlen, param, BYTE_COUNT_BYTES);
    1699
    1700 if (code_match(sp, &quot;FREECDT&quot;, &amp;param))

    </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_6964fb8d1cdba_2460bc2afbc97ad9ac59882--


    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
  • From scan-admin@coverity.com@VERT to All on Tue Jan 13 13:45:40 2026
    ----==_mimepart_69664c8455017_2561de2afbc97ad9ac598df
    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.


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


    ** CID 640989: (CONSTANT_EXPRESSION_RESULT)
    /chk_ar.cpp: 752 in sbbs_t::ar_exp(const unsigned char **, user_t *, client_t *)()
    /chk_ar.cpp: 763 in sbbs_t::ar_exp(const unsigned char **, user_t *, client_t *)()


    _____________________________________________________________________________________________
    *** CID 640989: (CONSTANT_EXPRESSION_RESULT)
    /chk_ar.cpp: 752 in sbbs_t::ar_exp(const unsigned char **, user_t *, client_t *)()
    746 while (**ptrptr != '\0' && **ptrptr != ']' && i < sizeof(tmp) - 1)
    747 tmp[i++] = *(*ptrptr)++;
    748 tmp[i] = '\0';
    749 if (**ptrptr == ']') {
    750 (*ptrptr)++;
    751 section = tmp;
    CID 640989: (CONSTANT_EXPRESSION_RESULT)
    "**ptrptr == CP437_NO_BREAK_SPACE" is always false regardless of the values of its operands. This occurs as the logical second operand of "||".
    752 SKIP_WHITESPACE(*ptrptr);
    753 }
    754 }
    755 else if (strchr((char *)(*ptrptr), ':') != nullptr) { // [section:]key
    756 i = 0;
    757 while (**ptrptr != '\0' && **ptrptr != ':' && i < sizeof(tmp) - 1)
    /chk_ar.cpp: 763 in sbbs_t::ar_exp(const unsigned char **, user_t *, client_t *)()
    757 while (**ptrptr != '\0' && **ptrptr != ':' && i < sizeof(tmp) - 1)
    758 tmp[i++] = *(*ptrptr)++;
    759 tmp[i] = '\0';
    760 if (**ptrptr != '\0') {
    761 (*ptrptr)++;
    762 section = tmp;
    CID 640989: (CONSTANT_EXPRESSION_RESULT)
    "**ptrptr == CP437_NO_BREAK_SPACE" is always false regardless of the values of its operands. This occurs as the logical second operand of "||".
    763 SKIP_WHITESPACE(*ptrptr);
    764 }
    765 }
    766 SKIP_CHAR((*ptrptr), ':');
    767 if (!user_get_bool_property(&cfg, user->number, section, (char*)*ptrptr, false))
    768 result = _not;

    ** CID 640988: Null pointer dereferences (FORWARD_NULL)


    _____________________________________________________________________________________________
    *** CID 640988: Null pointer dereferences (FORWARD_NULL)
    /userdat.c: 4877 in user_get_bool_property()
    4871 c_unescape_printable((char*)section);
    4872 }
    4873 if (key != NULL) {
    4874 key = strdup(key);
    4875 c_unescape_printable((char*)key);
    4876 }
    CID 640988: Null pointer dereferences (FORWARD_NULL)
    Passing null pointer "key" to "iniReadBool", which dereferences it. 4877 bool result = iniReadBool(fp, section, key, deflt);
    4878 iniCloseFile(fp);
    4879 free((char*)section);
    4880 free((char*)key);
    4881 return result;
    4882 }

    ** CID 640987: (CONSTANT_EXPRESSION_RESULT)
    /userdat.c: 2740 in ar_exp()
    /userdat.c: 2729 in ar_exp()


    _____________________________________________________________________________________________
    *** CID 640987: (CONSTANT_EXPRESSION_RESULT)
    /userdat.c: 2740 in ar_exp()
    2734 while (**ptrptr != '\0' && **ptrptr != ':' && i < sizeof(tmp) - 1)
    2735 tmp[i++] = *(*ptrptr)++;
    2736 tmp[i] = '\0';
    2737 if (**ptrptr != '\0') {
    2738 (*ptrptr)++;
    2739 section = tmp;
    CID 640987: (CONSTANT_EXPRESSION_RESULT)
    "**ptrptr == CP437_NO_BREAK_SPACE" is always false regardless of the values of its operands. This occurs as the logical second operand of "||".
    2740 SKIP_WHITESPACE(*ptrptr);
    2741 }
    2742 }
    2743 SKIP_CHAR((*ptrptr), ':');
    2744 if (!user_get_bool_property(cfg, user->number, section, (char*)*ptrptr, false))
    2745 result = not;
    /userdat.c: 2729 in ar_exp()
    2723 while (**ptrptr != '\0' && **ptrptr != ']' && i < sizeof(tmp) - 1)
    2724 tmp[i++] = *(*ptrptr)++;
    2725 tmp[i] = '\0';
    2726 if (**ptrptr == ']') {
    2727 (*ptrptr)++;
    2728 section = tmp;
    CID 640987: (CONSTANT_EXPRESSION_RESULT)
    "**ptrptr == CP437_NO_BREAK_SPACE" is always false regardless of the values of its operands. This occurs as the logical second operand of "||".
    2729 SKIP_WHITESPACE(*ptrptr);
    2730 }
    2731 }
    2732 else if (strchr((char *)(*ptrptr), ':') != NULL) { // [section:]key
    2733 i = 0;
    2734 while (**ptrptr != '\0' && **ptrptr != ':' && i < sizeof(tmp) - 1)


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


    ----==_mimepart_69664c8455017_2561de2afbc97ad9ac598df
    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><strong>Defects Shown:</strong> Showing 3 of 3 defect(s)</li>
    </ul>

    <h3>Defect Details</h3>
    <pre>
    ** CID 640989: (CONSTANT_EXPRESSION_RESULT)
    /chk_ar.cpp: 752 in sbbs_t::ar_exp(const unsigned char **, user_t *, client_t *)()
    /chk_ar.cpp: 763 in sbbs_t::ar_exp(const unsigned char **, user_t *, client_t *)()


    _____________________________________________________________________________________________
    *** CID 640989: (CONSTANT_EXPRESSION_RESULT)
    /chk_ar.cpp: 752 in sbbs_t::ar_exp(const unsigned char **, user_t *, client_t *)()
    746 while (**ptrptr != &#39;\0&#39; &amp;&amp; **ptrptr != &#39;]&#39; &amp;&amp; i &lt; sizeof(tmp) - 1)
    747 tmp[i++] = *(*ptrptr)++;
    748 tmp[i] = &#39;\0&#39;;
    749 if (**ptrptr == &#39;]&#39;) { 750 (*ptrptr)++;
    751 section = tmp; &gt;&gt;&gt; CID 640989: (CONSTANT_EXPRESSION_RESULT) &gt;&gt;&gt; &quot;**ptrptr == CP437_NO_BREAK_SPACE&quot; is always false regardless of the values of its operands. This occurs as the logical second operand of &quot;||&quot;.
    752 SKIP_WHITESPACE(*ptrptr);
    753 }
    754 }
    755 else if (strchr((char *)(*ptrptr), &#39;:&#39;) != nullptr) { // [section:]key
    756 i = 0;
    757 while (**ptrptr != &#39;\0&#39; &amp;&amp; **ptrptr != &#39;:&#39; &amp;&amp; i &lt; sizeof(tmp) - 1)
    /chk_ar.cpp: 763 in sbbs_t::ar_exp(const unsigned char **, user_t *, client_t *)()
    757 while (**ptrptr != &#39;\0&#39; &amp;&amp; **ptrptr != &#39;:&#39; &amp;&amp; i &lt; sizeof(tmp) - 1)
    758 tmp[i++] = *(*ptrptr)++;
    759 tmp[i] = &#39;\0&#39;;
    760 if (**ptrptr != &#39;\0&#39;) { 761 (*ptrptr)++;
    762 section = tmp; &gt;&gt;&gt; CID 640989: (CONSTANT_EXPRESSION_RESULT) &gt;&gt;&gt; &quot;**ptrptr == CP437_NO_BREAK_SPACE&quot; is always false regardless of the values of its operands. This occurs as the logical second operand of &quot;||&quot;.
    763 SKIP_WHITESPACE(*ptrptr);
    764 }
    765 }
    766 SKIP_CHAR((*ptrptr), &#39;:&#39;);
    767 if (!user_get_bool_property(&amp;cfg, user-&gt;number, section, (char*)*ptrptr, false))
    768 result = _not;

    ** CID 640988: Null pointer dereferences (FORWARD_NULL)


    _____________________________________________________________________________________________
    *** CID 640988: Null pointer dereferences (FORWARD_NULL)
    /userdat.c: 4877 in user_get_bool_property()
    4871 c_unescape_printable((char*)section);
    4872 }
    4873 if (key != NULL) {
    4874 key = strdup(key);
    4875 c_unescape_printable((char*)key);
    4876 }
    &gt;&gt;&gt; CID 640988: Null pointer dereferences (FORWARD_NULL) &gt;&gt;&gt; Passing null pointer &quot;key&quot; to &quot;iniReadBool&quot;, which dereferences it.
    4877 bool result = iniReadBool(fp, section, key, deflt);
    4878 iniCloseFile(fp);
    4879 free((char*)section);
    4880 free((char*)key);
    4881 return result;
    4882 }

    ** CID 640987: (CONSTANT_EXPRESSION_RESULT)
    /userdat.c: 2740 in ar_exp()
    /userdat.c: 2729 in ar_exp()


    _____________________________________________________________________________________________
    *** CID 640987: (CONSTANT_EXPRESSION_RESULT)
    /userdat.c: 2740 in ar_exp()
    2734 while (**ptrptr != &#39;\0&#39; &amp;&amp; **ptrptr != &#39;:&#39; &amp;&amp; i &lt; sizeof(tmp) - 1)
    2735 tmp[i++] = *(*ptrptr)++;
    2736 tmp[i] = &#39;\0&#39;;
    2737 if (**ptrptr != &#39;\0&#39;) { 2738 (*ptrptr)++;
    2739 section = tmp; &gt;&gt;&gt; CID 640987: (CONSTANT_EXPRESSION_RESULT) &gt;&gt;&gt; &quot;**ptrptr == CP437_NO_BREAK_SPACE&quot; is always false regardless of the values of its operands. This occurs as the logical second operand of &quot;||&quot;.
    2740 SKIP_WHITESPACE(*ptrptr);
    2741 }
    2742 }
    2743 SKIP_CHAR((*ptrptr), &#39;:&#39;);
    2744 if (!user_get_bool_property(cfg, user-&gt;number, section, (char*)*ptrptr, false))
    2745 result = not;
    /userdat.c: 2729 in ar_exp()
    2723 while (**ptrptr != &#39;\0&#39; &amp;&amp; **ptrptr != &#39;]&#39; &amp;&amp; i &lt; sizeof(tmp) - 1)
    2724 tmp[i++] = *(*ptrptr)++;
    2725 tmp[i] = &#39;\0&#39;;
    2726 if (**ptrptr == &#39;]&#39;) { 2727 (*ptrptr)++;
    2728 section = tmp; &gt;&gt;&gt; CID 640987: (CONSTANT_EXPRESSION_RESULT) &gt;&gt;&gt; &quot;**ptrptr == CP437_NO_BREAK_SPACE&quot; is always false regardless of the values of its operands. This occurs as the logical second operand of &quot;||&quot;.
    2729 SKIP_WHITESPACE(*ptrptr);
    2730 }
    2731 }
    2732 else if (strchr((char *)(*ptrptr), &#39;:&#39;) != NULL) { // [section:]key
    2733 i = 0;
    2734 while (**ptrptr != &#39;\0&#39; &amp;&amp; **ptrptr != &#39;:&#39; &amp;&amp; i &lt; sizeof(tmp) - 1)

    </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_69664c8455017_2561de2afbc97ad9ac598df--


    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
  • From scan-admin@coverity.com@VERT to All on Wed Jan 14 13:46:35 2026
    ----==_mimepart_69679e3a9f33a_26617a2afbc97ad9ac59811
    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.

    113 new defect(s) introduced to Synchronet found with Coverity Scan.
    7 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 20 of 113 defect(s)


    ** CID 641219: Integer handling issues (CONSTANT_EXPRESSION_RESULT) /userdat.c: 3499 in alias()


    _____________________________________________________________________________________________
    *** CID 641219: Integer handling issues (CONSTANT_EXPRESSION_RESULT) /userdat.c: 3499 in alias()
    3493
    3494 if (*tp == 0) /* no alias value */
    3495 continue;
    3496 *tp = 0;
    3497
    3498 vp = tp + 1;
    CID 641219: Integer handling issues (CONSTANT_EXPRESSION_RESULT)
    "(unsigned char)*vp == CP437_NO_BREAK_SPACE" is always false regardless of the values of its operands. This occurs as the logical second operand of "||".
    3499 SKIP_WHITESPACE(vp);
    3500 truncsp(vp);
    3501 if (*vp == 0) /* no value */
    3502 continue;
    3503
    3504 if (*np == '*') {

    ** CID 641218: (CONSTANT_EXPRESSION_RESULT)
    /ftpsrvr.c: 3761 in ctrl_thread()
    /ftpsrvr.c: 4084 in ctrl_thread()


    _____________________________________________________________________________________________
    *** CID 641218: (CONSTANT_EXPRESSION_RESULT)
    /ftpsrvr.c: 3761 in ctrl_thread()
    3755 tp = np; /* terminator pointer */
    3756 FIND_WHITESPACE(tp);
    3757 if (*tp)
    3758 *tp = 0;
    3759
    3760 dp = tp + 1; /* description pointer */
    CID 641218: (CONSTANT_EXPRESSION_RESULT)
    "(unsigned char)*dp == CP437_NO_BREAK_SPACE" is always false regardless of the values of its operands. This occurs as the logical second operand of "||".
    3761 SKIP_WHITESPACE(dp);
    3762 truncsp(dp);
    3763
    3764 if (stricmp(dp, BBS_HIDDEN_ALIAS) == 0)
    3765 continue;
    3766
    /ftpsrvr.c: 4084 in ctrl_thread()
    4078 tp = np; /* terminator pointer */
    4079 FIND_WHITESPACE(tp); 4080 if (*tp)
    4081 *tp = 0;
    4082
    4083 dp = tp + 1; /* description pointer */
    CID 641218: (CONSTANT_EXPRESSION_RESULT)
    "(unsigned char)*dp == CP437_NO_BREAK_SPACE" is always false regardless of the values of its operands. This occurs as the logical second operand of "||".
    4084 SKIP_WHITESPACE(dp); 4085 truncsp(dp);
    4086
    4087 if (stricmp(dp, BBS_HIDDEN_ALIAS) == 0)
    4088 continue;
    4089

    ** CID 641217: (CONSTANT_EXPRESSION_RESULT) /tmp/sbbs-Jan-14-2026/src/smblib/smbstr.c: 353 in smb_netaddr_type() /tmp/sbbs-Jan-14-2026/src/smblib/smbstr.c: 343 in smb_netaddr_type()


    _____________________________________________________________________________________________
    *** CID 641217: (CONSTANT_EXPRESSION_RESULT) /tmp/sbbs-Jan-14-2026/src/smblib/smbstr.c: 353 in smb_netaddr_type()
    347 return NET_FIDO;
    348 return NET_NONE;
    349 }
    350 if (p == str)
    351 return NET_UNKNOWN;
    352 p++;
    CID 641217: (CONSTANT_EXPRESSION_RESULT)
    "(unsigned char)*p == CP437_NO_BREAK_SPACE" is always false regardless of the values of its operands. This occurs as the logical second operand of "||".
    353 SKIP_WHITESPACE(p);
    354 if (*p == 0)
    355 return NET_UNKNOWN;
    356
    357 type = smb_get_net_type_by_addr(p);
    358 if (type == NET_INTERNET && strchr(str, ' ') != NULL) /tmp/sbbs-Jan-14-2026/src/smblib/smbstr.c: 343 in smb_netaddr_type()
    337 const char* p;
    338
    339 if (str == NULL || IS_WHITESPACE(*str))
    340 return NET_NONE;
    341 if ((p = strchr(str, '@')) == NULL) {
    342 p = str;
    CID 641217: (CONSTANT_EXPRESSION_RESULT)
    "(unsigned char)*p == CP437_NO_BREAK_SPACE" is always false regardless of the values of its operands. This occurs as the logical second operand of "||".
    343 SKIP_WHITESPACE(p);
    344 if (*p == 0)
    345 return NET_NONE;
    346 if (smb_get_net_type_by_addr(p) == NET_FIDO)
    347 return NET_FIDO;
    348 return NET_NONE;

    ** CID 641216: Integer handling issues (CONSTANT_EXPRESSION_RESULT) /sbbsecho.c: 6561 in read_areafile_bbs()


    _____________________________________________________________________________________________
    *** CID 641216: Integer handling issues (CONSTANT_EXPRESSION_RESULT) /sbbsecho.c: 6561 in read_areafile_bbs()
    6555 lprintf(LOG_ERR, "ERROR allocating memory for area #%u.", cfg.areas + 1);
    6556 bail(1);
    6557 return;
    6558 }
    6559 sprintf(tmp_code, "%-.*s", LEN_EXTCODE, p);
    6560 tp = tmp_code;
    CID 641216: Integer handling issues (CONSTANT_EXPRESSION_RESULT)
    "(unsigned char)*tp == CP437_NO_BREAK_SPACE" is always false regardless of the values of its operands. This occurs as the logical second operand of "||".
    6561 FIND_WHITESPACE(tp);
    6562 *tp = '\0';
    6563 for (i = 0; i < scfg.total_subs; i++)
    6564 if (!stricmp(tmp_code, scfg.sub[i]->code))
    6565 break;
    6566 if (i < scfg.total_subs)

    ** CID 641215: (CONSTANT_EXPRESSION_RESULT)
    /un_rep.cpp: 567 in sbbs_t::unpack_rep(char *)()
    /un_rep.cpp: 554 in sbbs_t::unpack_rep(char *)()
    /un_rep.cpp: 570 in sbbs_t::unpack_rep(char *)()
    /un_rep.cpp: 569 in sbbs_t::unpack_rep(char *)()
    /un_rep.cpp: 552 in sbbs_t::unpack_rep(char *)()
    /un_rep.cpp: 555 in sbbs_t::unpack_rep(char *)()


    _____________________________________________________________________________________________
    *** CID 641215: (CONSTANT_EXPRESSION_RESULT)
    /un_rep.cpp: 567 in sbbs_t::unpack_rep(char *)()
    561 subscan[n].cfg |= SUB_CFG_NSCAN | SUB_CFG_YSCAN;
    562 }
    563 continue;
    564 }
    565 if (strnicmp(str, "RESET ", 6) == 0) { 566 p = str + 6;
    CID 641215: (CONSTANT_EXPRESSION_RESULT)
    "(unsigned char)*p == CP437_NO_BREAK_SPACE" is always false regardless of the values of its operands. This occurs as the logical second operand of "||".
    567 SKIP_WHITESPACE(p);
    568 if ((n = resolve_qwkconf(atoi(p))) != INVALID_SUB) {
    569 FIND_WHITESPACE(p);
    570 SKIP_WHITESPACE(p);
    571 /* If the [#ofmessages] is blank then the pointer should be set back to the start of the message base */
    572 if (*p == 0) /un_rep.cpp: 554 in sbbs_t::unpack_rep(char *)()
    548 if (!fgets(str, sizeof(str) - 1, fp)) 549 break;
    550 if (strnicmp(str, "AREA ", 5) == 0) { 551 p = str + 5;
    552 SKIP_WHITESPACE(p);
    553 if ((n = resolve_qwkconf(atoi(p))) != INVALID_SUB) {
    CID 641215: (CONSTANT_EXPRESSION_RESULT)
    "(unsigned char)*p == CP437_NO_BREAK_SPACE" is always false regardless of the values of its operands. This occurs as the logical second operand of "||".
    554 FIND_WHITESPACE(p);
    555 SKIP_WHITESPACE(p);
    556 if (strchr(p, 'D'))
    557 subscan[n].cfg &= ~SUB_CFG_NSCAN;
    558 else if (strchr(p, 'a') || strchr(p, 'g'))
    559 subscan[n].cfg |= SUB_CFG_NSCAN;
    /un_rep.cpp: 570 in sbbs_t::unpack_rep(char *)()
    564 }
    565 if (strnicmp(str, "RESET ", 6) == 0) { 566 p = str + 6;
    567 SKIP_WHITESPACE(p);
    568 if ((n = resolve_qwkconf(atoi(p))) != INVALID_SUB) {
    569 FIND_WHITESPACE(p);
    CID 641215: (CONSTANT_EXPRESSION_RESULT)
    "(unsigned char)*p == CP437_NO_BREAK_SPACE" is always false regardless of the values of its operands. This occurs as the logical second operand of "||".
    570 SKIP_WHITESPACE(p);
    571 /* If the [#ofmessages] is blank then the pointer should be set back to the start of the message base */
    572 if (*p == 0)
    573 subscan[n].ptr = 0;
    574 else {
    575 /* otherwise it should be set back [#ofmessages] back from the end of the message base. */
    /un_rep.cpp: 569 in sbbs_t::unpack_rep(char *)()
    563 continue;
    564 }
    565 if (strnicmp(str, "RESET ", 6) == 0) { 566 p = str + 6;
    567 SKIP_WHITESPACE(p);
    568 if ((n = resolve_qwkconf(atoi(p))) != INVALID_SUB) {
    CID 641215: (CONSTANT_EXPRESSION_RESULT)
    "(unsigned char)*p == CP437_NO_BREAK_SPACE" is always false regardless of the values of its operands. This occurs as the logical second operand of "||".
    569 FIND_WHITESPACE(p);
    570 SKIP_WHITESPACE(p);
    571 /* If the [#ofmessages] is blank then the pointer should be set back to the start of the message base */
    572 if (*p == 0)
    573 subscan[n].ptr = 0;
    574 else {
    /un_rep.cpp: 552 in sbbs_t::unpack_rep(char *)()
    546 if (fp != NULL) {
    547 while (!feof(fp)) {
    548 if (!fgets(str, sizeof(str) - 1, fp)) 549 break;
    550 if (strnicmp(str, "AREA ", 5) == 0) { 551 p = str + 5;
    CID 641215: (CONSTANT_EXPRESSION_RESULT)
    "(unsigned char)*p == CP437_NO_BREAK_SPACE" is always false regardless of the values of its operands. This occurs as the logical second operand of "||".
    552 SKIP_WHITESPACE(p);
    553 if ((n = resolve_qwkconf(atoi(p))) != INVALID_SUB) {
    554 FIND_WHITESPACE(p);
    555 SKIP_WHITESPACE(p);
    556 if (strchr(p, 'D'))
    557 subscan[n].cfg &= ~SUB_CFG_NSCAN;
    /un_rep.cpp: 555 in sbbs_t::unpack_rep(char *)()
    549 break;
    550 if (strnicmp(str, "AREA ", 5) == 0) { 551 p = str + 5;
    552 SKIP_WHITESPACE(p);
    553 if ((n = resolve_qwkconf(atoi(p))) != INVALID_SUB) {
    554 FIND_WHITESPACE(p);
    CID 641215: (CONSTANT_EXPRESSION_RESULT)
    "(unsigned char)*p == CP437_NO_BREAK_SPACE" is always false regardless of the values of its operands. This occurs as the logical second operand of "||".
    555 SKIP_WHITESPACE(p);
    556 if (strchr(p, 'D'))
    557 subscan[n].cfg &= ~SUB_CFG_NSCAN;
    558 else if (strchr(p, 'a') || strchr(p, 'g'))
    559 subscan[n].cfg |= SUB_CFG_NSCAN;
    560 else if (strchr(p, 'p'))

    ** CID 641214: Integer handling issues (CONSTANT_EXPRESSION_RESULT) /sbbsecho.c: 1603 in check_elists()


    _____________________________________________________________________________________________
    *** CID 641214: Integer handling issues (CONSTANT_EXPRESSION_RESULT) /sbbsecho.c: 1603 in check_elists()
    1597 break;
    1598 p = str;
    1599 SKIP_WHITESPACE(p); 1600 if (*p == ';') /* Ignore Comment Lines */
    1601 continue;
    1602 tp = p;
    CID 641214: Integer handling issues (CONSTANT_EXPRESSION_RESULT)
    "(unsigned char)*tp == CP437_NO_BREAK_SPACE" is always false regardless of the values of its operands. This occurs as the logical second operand of "||".
    1603 FIND_WHITESPACE(tp); 1604 *tp = '\0';
    1605 if (!stricmp(areatag, p)) {
    1606 match = true; 1607 break;
    1608 }

    ** CID 641213: Integer handling issues (CONSTANT_EXPRESSION_RESULT) /userdat.c: 3492 in alias()


    _____________________________________________________________________________________________
    *** CID 641213: Integer handling issues (CONSTANT_EXPRESSION_RESULT) /userdat.c: 3492 in alias()
    3486 break;
    3487 np = line;
    3488 SKIP_WHITESPACE(np);
    3489 if (*np == ';' || *np == 0) /* no name value, or comment */
    3490 continue;
    3491 tp = np;
    CID 641213: Integer handling issues (CONSTANT_EXPRESSION_RESULT)
    "(unsigned char)*tp == CP437_NO_BREAK_SPACE" is always false regardless of the values of its operands. This occurs as the logical second operand of "||".
    3492 FIND_WHITESPACE(tp);
    3493
    3494 if (*tp == 0) /* no alias value */
    3495 continue;
    3496 *tp = 0;
    3497

    ** CID 641212: Integer handling issues (CONSTANT_EXPRESSION_RESULT) /sbbsecho.c: 1531 in netmail_arealist()


    _____________________________________________________________________________________________
    *** CID 641212: Integer handling issues (CONSTANT_EXPRESSION_RESULT) /sbbsecho.c: 1531 in netmail_arealist()
    1525 truncsp(str);
    1526 p = str;
    1527 SKIP_WHITESPACE(p);
    1528 if (*p == 0 || *p == ';') /* Ignore Blank and Comment Lines */
    1529 continue;
    1530 tp = p; >>> CID 641212: Integer handling issues (CONSTANT_EXPRESSION_RESULT)
    "(unsigned char)*tp == CP437_NO_BREAK_SPACE" is always false regardless of the values of its operands. This occurs as the logical second operand of "||".
    1531 FIND_WHITESPACE(tp);
    1532 *tp = '\0';
    1533 if (find_linked_area(p, addr) == SUB_NOT_FOUND) {
    1534 if (strListFind(area_list, p, /* case_sensitive */ false) < 0)
    1535 strListPush(&area_list, p);
    1536 }

    ** CID 641211: Integer handling issues (CONSTANT_EXPRESSION_RESULT) /tmp/sbbs-Jan-14-2026/src/xpdev/ini_file.c: 232 in key_name()


    _____________________________________________________________________________________________
    *** CID 641211: Integer handling issues (CONSTANT_EXPRESSION_RESULT) /tmp/sbbs-Jan-14-2026/src/xpdev/ini_file.c: 232 in key_name()
    226 *vp = NULL;
    227
    228 if (p == NULL)
    229 return NULL;
    230
    231 /* Parse value name */
    CID 641211: Integer handling issues (CONSTANT_EXPRESSION_RESULT)
    "(unsigned char)*p == CP437_NO_BREAK_SPACE" is always false regardless of the values of its operands. This occurs as the logical second operand of "||".
    232 SKIP_WHITESPACE(p);
    233 if (*p == INI_COMMENT_CHAR)
    234 return NULL;
    235 if (*p == INI_OPEN_SECTION_CHAR)
    236 return INI_NEW_SECTION;
    237 equal = strchr(p, '=');

    ** CID 641210: Integer handling issues (CONSTANT_EXPRESSION_RESULT) /wordwrap.c: 211 in get_ws_len()


    _____________________________________________________________________________________________
    *** CID 641210: Integer handling issues (CONSTANT_EXPRESSION_RESULT) /wordwrap.c: 211 in get_ws_len()
    205 {
    206 struct section_len ret = {0, 0};
    207
    208 for (ret.bytes = 0; ; ret.bytes++) {
    209 if (!buf[ret.bytes])
    210 break;
    CID 641210: Integer handling issues (CONSTANT_EXPRESSION_RESULT)
    "(unsigned char)buf[ret.bytes] == CP437_NO_BREAK_SPACE" is always false regardless of the values of its operands. This occurs as the logical second operand of "||".
    211 if (!IS_WHITESPACE(buf[ret.bytes]))
    212 break;
    213 if (buf[ret.bytes] == '\t') {
    214 ret.len++;
    215 while ((ret.len + col) % 8)
    216 ret.len++;

    ** CID 641209: (CONSTANT_EXPRESSION_RESULT) /tmp/sbbs-Jan-14-2026/src/xpdev/ini_file.c: 83 in section_name() /tmp/sbbs-Jan-14-2026/src/xpdev/ini_file.c: 87 in section_name()


    _____________________________________________________________________________________________
    *** CID 641209: (CONSTANT_EXPRESSION_RESULT) /tmp/sbbs-Jan-14-2026/src/xpdev/ini_file.c: 83 in section_name()
    77 }
    78
    79 static char* section_name(char* p)
    80 {
    81 char* tp;
    82
    CID 641209: (CONSTANT_EXPRESSION_RESULT)
    "(unsigned char)*p == CP437_NO_BREAK_SPACE" is always false regardless of the values of its operands. This occurs as the logical second operand of "||".
    83 SKIP_WHITESPACE(p);
    84 if (*p != INI_OPEN_SECTION_CHAR)
    85 return NULL;
    86 p++;
    87 SKIP_WHITESPACE(p);
    88 tp = strrchr(p, INI_CLOSE_SECTION_CHAR); /tmp/sbbs-Jan-14-2026/src/xpdev/ini_file.c: 87 in section_name()
    81 char* tp;
    82
    83 SKIP_WHITESPACE(p);
    84 if (*p != INI_OPEN_SECTION_CHAR)
    85 return NULL;
    86 p++;
    CID 641209: (CONSTANT_EXPRESSION_RESULT)
    "(unsigned char)*p == CP437_NO_BREAK_SPACE" is always false regardless of the values of its operands. This occurs as the logical second operand of "||".
    87 SKIP_WHITESPACE(p);
    88 tp = strrchr(p, INI_CLOSE_SECTION_CHAR);
    89 if (tp == NULL)
    90 return NULL;
    91 *tp = 0;
    92 truncsp(p);

    ** CID 641208: Integer handling issues (CONSTANT_EXPRESSION_RESULT) /mailsrvr.cpp: 1989 in parse_mail_address(const char *, char *, unsigned long, char *, unsigned long)()


    _____________________________________________________________________________________________
    *** CID 641208: Integer handling issues (CONSTANT_EXPRESSION_RESULT) /mailsrvr.cpp: 1989 in parse_mail_address(const char *, char *, unsigned long, char *, unsigned long)()
    1983
    1984 /* Get the address */
    1985 if ((tp = (char*)strchr(p, '<')) != NULL)
    1986 tp++;
    1987 else
    1988 tp = (char*)p;
    CID 641208: Integer handling issues (CONSTANT_EXPRESSION_RESULT)
    "(unsigned char)*tp == CP437_NO_BREAK_SPACE" is always false regardless of the values of its operands. This occurs as the logical second operand of "||".
    1989 SKIP_WHITESPACE(tp);
    1990 sprintf(addr, "%.*s", (int)addr_len, tp);
    1991 truncstr(addr, ">( ");
    1992
    1993 if (name != NULL) {
    1994 SAFECOPY(tmp, p);

    ** CID 641207: Integer handling issues (CONSTANT_EXPRESSION_RESULT) /sbbsecho.c: 2496 in process_areamgr()


    _____________________________________________________________________________________________
    *** CID 641207: Integer handling issues (CONSTANT_EXPRESSION_RESULT) /sbbsecho.c: 2496 in process_areamgr()
    2490 }
    2491
    2492 m = strlen(p);
    2493 add_area = strListInit();
    2494 del_area = strListInit();
    2495 for (l = 0; l < m; l++) {
    CID 641207: Integer handling issues (CONSTANT_EXPRESSION_RESULT)
    "(unsigned char)p[l] == CP437_NO_BREAK_SPACE" is always false regardless of the values of its operands. This occurs as the logical second operand of "||".
    2496 while (*(p + l) && IS_WHITESPACE(*(p + l))) l++;
    2497 while (*(p + l) == CTRL_A) { /* Ignore kludge lines June-13-2004 */
    2498 while (*(p + l) && *(p + l) != '\r') l++;
    2499 continue;
    2500 }
    2501 if (!(*(p + l)))

    ** CID 641206: Integer handling issues (CONSTANT_EXPRESSION_RESULT) /tmp/sbbs-Jan-14-2026/src/xpdev/ini_file.c: 118 in section_match()


    _____________________________________________________________________________________________
    *** CID 641206: Integer handling issues (CONSTANT_EXPRESSION_RESULT) /tmp/sbbs-Jan-14-2026/src/xpdev/ini_file.c: 118 in section_match() 112 /* Search for matches */
    113 for (i = 0; names[i] != NULL && !found; i++)
    114 for (j = 0; comps[j] != NULL && !found; j++) {
    115 n = names[i];
    116 SKIP_WHITESPACE(n);
    117 c = comps[j];
    CID 641206: Integer handling issues (CONSTANT_EXPRESSION_RESULT)
    "(unsigned char)*c == CP437_NO_BREAK_SPACE" is always false regardless of the values of its operands. This occurs as the logical second operand of "||".
    118 SKIP_WHITESPACE(c);
    119 if (case_sensitive)
    120 found = strcmp(n, c) == 0;
    121 else
    122 found = stricmp(n, c) == 0;
    123 }

    ** CID 641205: (CONSTANT_EXPRESSION_RESULT)
    /sbbsecho.c: 2225 in areamgr_command()
    /sbbsecho.c: 2191 in areamgr_command()
    /sbbsecho.c: 2224 in areamgr_command()
    /sbbsecho.c: 2335 in areamgr_command()
    /sbbsecho.c: 2156 in areamgr_command()
    /sbbsecho.c: 2273 in areamgr_command()
    /sbbsecho.c: 2192 in areamgr_command()
    /sbbsecho.c: 2336 in areamgr_command()
    /sbbsecho.c: 2250 in areamgr_command()
    /sbbsecho.c: 2155 in areamgr_command()
    /sbbsecho.c: 2274 in areamgr_command()
    /sbbsecho.c: 2306 in areamgr_command()
    /sbbsecho.c: 2249 in areamgr_command()


    _____________________________________________________________________________________________
    *** CID 641205: (CONSTANT_EXPRESSION_RESULT)
    /sbbsecho.c: 2225 in areamgr_command()
    2219 }
    2220
    2221 if (strnicmp(instr, "PKTPWD ", 7) == 0) {
    2222 char pktpwd[FIDO_PASS_LEN + 1]; /* Packet password for this node */
    2223 char* p = instr;
    2224 FIND_WHITESPACE(p);
    CID 641205: (CONSTANT_EXPRESSION_RESULT)
    "(unsigned char)*p == CP437_NO_BREAK_SPACE" is always false regardless of the values of its operands. This occurs as the logical second operand of "||".
    2225 SKIP_WHITESPACE(p);
    2226 SAFECOPY(pktpwd, p);
    2227 if (!stricmp(pktpwd, nodecfg->pktpwd)) {
    2228 snprintf(str, sizeof str, "Your packet password was already set to '%s'."
    2229 , nodecfg->pktpwd);
    2230 lprintf(LOG_INFO, "AreaMgr (for %s) %s", faddrtoa(&addr), str);
    /sbbsecho.c: 2191 in areamgr_command()
    2185 return true;
    2186 }
    2187
    2188 if (strnicmp(instr, "PASSWORD ", 9) == 0 || strnicmp(instr, "PWD ", 4) == 0) {
    2189 char password[FIDO_SUBJ_LEN]; /* AreaMgr password for this node */
    2190 char* p = instr;
    CID 641205: (CONSTANT_EXPRESSION_RESULT)
    "(unsigned char)*p == CP437_NO_BREAK_SPACE" is always false regardless of the values of its operands. This occurs as the logical second operand of "||".
    2191 FIND_WHITESPACE(p);
    2192 SKIP_WHITESPACE(p);
    2193 SAFECOPY(password, p);
    2194 if (strchr(password, ' ') != NULL) {
    2195 snprintf(str, sizeof str, "Your AreaMgr password cannot contain spaces.");
    2196 lprintf(LOG_INFO, "AreaMgr (for %s) %s", faddrtoa(&addr), str);
    /sbbsecho.c: 2224 in areamgr_command()
    2218 return true;
    2219 }
    2220
    2221 if (strnicmp(instr, "PKTPWD ", 7) == 0) {
    2222 char pktpwd[FIDO_PASS_LEN + 1]; /* Packet password for this node */
    2223 char* p = instr;
    CID 641205: (CONSTANT_EXPRESSION_RESULT)
    "(unsigned char)*p == CP437_NO_BREAK_SPACE" is always false regardless of the values of its operands. This occurs as the logical second operand of "||".
    2224 FIND_WHITESPACE(p);
    2225 SKIP_WHITESPACE(p);
    2226 SAFECOPY(pktpwd, p);
    2227 if (!stricmp(pktpwd, nodecfg->pktpwd)) {
    2228 snprintf(str, sizeof str, "Your packet password was already set to '%s'."
    2229 , nodecfg->pktpwd);
    /sbbsecho.c: 2335 in areamgr_command()
    2329 , str, /* dest: */ addr, /* src: */ NULL);
    2330 return true;
    2331 }
    2332
    2333 if (strnicmp(instr, "ECHOSTATS ", 10) == 0) {
    2334 char* p = instr;
    CID 641205: (CONSTANT_EXPRESSION_RESULT)
    "(unsigned char)*p == CP437_NO_BREAK_SPACE" is always false regardless of the values of its operands. This occurs as the logical second operand of "||".
    2335 FIND_WHITESPACE(p);
    2336 SKIP_WHITESPACE(p);
    2337 echostat_t* stat = get_echostat(p, /* create: */ false);
    2338 if (stat == NULL) {
    2339 lprintf(LOG_INFO, "AreaMgr (for %s) EchoStats request for unknown echo: %s", faddrtoa(&addr), p);
    2340 } else {
    /sbbsecho.c: 2156 in areamgr_command()
    2150 alter_config(nodecfg, "Name", to);
    2151 }
    2152
    2153 if (strnicmp(instr, "COMPRESSION ", 12) == 0 || strnicmp(instr, "COMPRESS ", 9) == 0) {
    2154 char* p = instr;
    2155 FIND_WHITESPACE(p);
    CID 641205: (CONSTANT_EXPRESSION_RESULT)
    "(unsigned char)*p == CP437_NO_BREAK_SPACE" is always false regardless of the values of its operands. This occurs as the logical second operand of "||".
    2156 SKIP_WHITESPACE(p);
    2157 if (!stricmp(p, "NONE"))
    2158 nodecfg->archive = SBBSECHO_ARCHIVE_NONE;
    2159 else {
    2160 for (u = 0; u < cfg.arcdefs; u++)
    2161 if (stricmp(p, cfg.arcdef[u].name) == 0)
    /sbbsecho.c: 2273 in areamgr_command()
    2267 create_netmail(to, /* msg: */ NULL, "TIC File Password Change Request", str, /* dest: */ addr, /* src: */ NULL);
    2268 return true;
    2269 }
    2270
    2271 if (strnicmp(instr, "NOTIFY ", 7) == 0) {
    2272 char* p = instr;
    CID 641205: (CONSTANT_EXPRESSION_RESULT)
    "(unsigned char)*p == CP437_NO_BREAK_SPACE" is always false regardless of the values of its operands. This occurs as the logical second operand of "||".
    2273 FIND_WHITESPACE(p);
    2274 SKIP_WHITESPACE(p);
    2275 if (alter_config(nodecfg, "Notify", p)) {
    2276 SAFEPRINTF2(str, "Your Notification Messages have been changed from '%s' to '%s'."
    2277 , nodecfg->send_notify ? "ON" : "OFF", p);
    2278 } else {
    /sbbsecho.c: 2192 in areamgr_command()
    2186 }
    2187
    2188 if (strnicmp(instr, "PASSWORD ", 9) == 0 || strnicmp(instr, "PWD ", 4) == 0) {
    2189 char password[FIDO_SUBJ_LEN]; /* AreaMgr password for this node */
    2190 char* p = instr;
    2191 FIND_WHITESPACE(p);
    CID 641205: (CONSTANT_EXPRESSION_RESULT)
    "(unsigned char)*p == CP437_NO_BREAK_SPACE" is always false regardless of the values of its operands. This occurs as the logical second operand of "||".
    2192 SKIP_WHITESPACE(p);
    2193 SAFECOPY(password, p);
    2194 if (strchr(password, ' ') != NULL) {
    2195 snprintf(str, sizeof str, "Your AreaMgr password cannot contain spaces.");
    2196 lprintf(LOG_INFO, "AreaMgr (for %s) %s", faddrtoa(&addr), str);
    2197 create_netmail(to, /* msg: */ NULL, "AreaMgr Password Change Request", str
    /sbbsecho.c: 2336 in areamgr_command()
    2330 return true;
    2331 }
    2332
    2333 if (strnicmp(instr, "ECHOSTATS ", 10) == 0) {
    2334 char* p = instr;
    2335 FIND_WHITESPACE(p);
    CID 641205: (CONSTANT_EXPRESSION_RESULT)
    "(unsigned char)*p == CP437_NO_BREAK_SPACE" is always false regardless of the values of its operands. This occurs as the logical second operand of "||".
    2336 SKIP_WHITESPACE(p);
    2337 echostat_t* stat = get_echostat(p, /* create: */ false);
    2338 if (stat == NULL) {
    2339 lprintf(LOG_INFO, "AreaMgr (for %s) EchoStats request for unknown echo: %s", faddrtoa(&addr), p);
    2340 } else {
    2341 FILE* fp;
    /sbbsecho.c: 2250 in areamgr_command()
    2244 }
    2245
    2246 if (strnicmp(instr, "TICPWD ", 7) == 0) {
    2247 char ticpwd[SBBSECHO_MAX_TICPWD_LEN + 1]; /* TIC File password for this node */
    2248 char* p = instr;
    2249 FIND_WHITESPACE(p);
    CID 641205: (CONSTANT_EXPRESSION_RESULT)
    "(unsigned char)*p == CP437_NO_BREAK_SPACE" is always false regardless of the values of its operands. This occurs as the logical second operand of "||".
    2250 SKIP_WHITESPACE(p);
    2251 SAFECOPY(ticpwd, p);
    2252 if (!stricmp(ticpwd, nodecfg->ticpwd)) {
    2253 snprintf(str, sizeof str, "Your TIC File password was already set to '%s'."
    2254 , nodecfg->ticpwd);
    2255 lprintf(LOG_INFO, "AreaMgr (for %s) %s", faddrtoa(&addr), str);
    /sbbsecho.c: 2155 in areamgr_command()
    2149 lprintf(LOG_INFO, "AreaMgr (for %s) Changing name to: %s", faddrtoa(&addr), to);
    2150 alter_config(nodecfg, "Name", to);
    2151 }
    2152
    2153 if (strnicmp(instr, "COMPRESSION ", 12) == 0 || strnicmp(instr, "COMPRESS ", 9) == 0) {
    2154 char* p = instr;
    CID 641205: (CONSTANT_EXPRESSION_RESULT)
    "(unsigned char)*p == CP437_NO_BREAK_SPACE" is always false regardless of the values of its operands. This occurs as the logical second operand of "||".
    2155 FIND_WHITESPACE(p);
    2156 SKIP_WHITESPACE(p);
    2157 if (!stricmp(p, "NONE"))
    2158 nodecfg->archive = SBBSECHO_ARCHIVE_NONE;
    2159 else {
    2160 for (u = 0; u < cfg.arcdefs; u++)
    /sbbsecho.c: 2274 in areamgr_command()
    2268 return true;
    2269 }
    2270
    2271 if (strnicmp(instr, "NOTIFY ", 7) == 0) {
    2272 char* p = instr;
    2273 FIND_WHITESPACE(p);
    CID 641205: (CONSTANT_EXPRESSION_RESULT)
    "(unsigned char)*p == CP437_NO_BREAK_SPACE" is always false regardless of the values of its operands. This occurs as the logical second operand of "||".
    2274 SKIP_WHITESPACE(p);
    2275 if (alter_config(nodecfg, "Notify", p)) {
    2276 SAFEPRINTF2(str, "Your Notification Messages have been changed from '%s' to '%s'."
    2277 , nodecfg->send_notify ? "ON" : "OFF", p);
    2278 } else {
    2279 SAFECOPY(str, "Error changing Notify Setting"); /sbbsecho.c: 2306 in areamgr_command()
    2300 return true;
    2301 }
    2302
    2303 // %RESCAN <area-tag> [R=<count> || D=<days>]
    2304 if (strnicmp(instr, "RESCAN ", 7) == 0) {
    2305 char* p = instr + 7;
    CID 641205: (CONSTANT_EXPRESSION_RESULT)
    "(unsigned char)*p == CP437_NO_BREAK_SPACE" is always false regardless of the values of its operands. This occurs as the logical second operand of "||".
    2306 SKIP_WHITESPACE(p);
    2307 char* tp = p;
    2308 FIND_WHITESPACE(tp);
    2309 if (*tp != '\0') {
    2310 *tp = '\0';
    2311 ++tp;
    /sbbsecho.c: 2249 in areamgr_command()
    2243 return true;
    2244 }
    2245
    2246 if (strnicmp(instr, "TICPWD ", 7) == 0) {
    2247 char ticpwd[SBBSECHO_MAX_TICPWD_LEN + 1]; /* TIC File password for this node */
    2248 char* p = instr;
    CID 641205: (CONSTANT_EXPRESSION_RESULT)
    "(unsigned char)*p == CP437_NO_BREAK_SPACE" is always false regardless of the values of its operands. This occurs as the logical second operand of "||".
    2249 FIND_WHITESPACE(p);
    2250 SKIP_WHITESPACE(p);
    2251 SAFECOPY(ticpwd, p);
    2252 if (!stricmp(ticpwd, nodecfg->ticpwd)) {
    2253 snprintf(str, sizeof str, "Your TIC File password was already set to '%s'."
    2254 , nodecfg->ticpwd);

    ** CID 641204: Integer handling issues (CONSTANT_EXPRESSION_RESULT) /main.cpp: 5749 in bbs_thread()


    _____________________________________________________________________________________________
    *** CID 641204: Integer handling issues (CONSTANT_EXPRESSION_RESULT) /main.cpp: 5749 in bbs_thread()
    5743 /* ToDo: Make ident timeout configurable */
    5744 if (identify(&client_addr, inet_addrport(&client_addr), str, sizeof(str) - 1, /* timeout: */ 1)) {
    5745 lprintf(LOG_DEBUG, "%04d %s [%s] Ident Response: %s", client_socket, client.protocol, host_ip, str);
    5746 identity = strrchr(str, ':'); 5747 if (identity != NULL) {
    5748 identity++; /* skip colon */
    CID 641204: Integer handling issues (CONSTANT_EXPRESSION_RESULT)
    "(unsigned char)*identity == CP437_NO_BREAK_SPACE" is always false regardless of the values of its operands. This occurs as the logical second operand of "||".
    5749 SKIP_WHITESPACE(identity);
    5750 if (*identity)
    5751 lprintf(LOG_INFO, "%04d %s [%s] Identity: %s", client_socket, client.protocol, host_ip, identity);
    5752 }
    5753 }
    5754 sbbs->cp437_out(crlf);

    ** CID 641203: (CONSTANT_EXPRESSION_RESULT)
    /netmail.cpp: 432 in sbbs_t::qwktonetmail(_IO_FILE *, char *, char *, unsigned char)()
    /netmail.cpp: 422 in sbbs_t::qwktonetmail(_IO_FILE *, char *, char *, unsigned char)()


    _____________________________________________________________________________________________
    *** CID 641203: (CONSTANT_EXPRESSION_RESULT)
    /netmail.cpp: 432 in sbbs_t::qwktonetmail(_IO_FILE *, char *, char *, unsigned char)()
    426 SAFECOPY(to, p);
    427 p += strlen(p) + 1;
    428 continue;
    429 }
    430 if (strncmp(p, "Subject:", 8) == 0) {
    431 p += 8;
    CID 641203: (CONSTANT_EXPRESSION_RESULT)
    "(unsigned char)*p == CP437_NO_BREAK_SPACE" is always false regardless of the values of its operands. This occurs as the logical second operand of "||".
    432 SKIP_WHITESPACE(p);
    433 char* tp = strchr(p, QWK_NEWLINE); /* chop off at first CR */
    434 if (tp != NULL)
    435 *tp = 0;
    436 subject = p;
    437 p += strlen(p) + 1;
    /netmail.cpp: 422 in sbbs_t::qwktonetmail(_IO_FILE *, char *, char *, unsigned char)()
    416 SAFECOPY(to, into);
    417
    418 // Parse QWKE Kludge Lines here:
    419 while (p < end && *p != QWK_NEWLINE) {
    420 if (strncmp(p, "To:", 3) == 0) {
    421 p += 3;
    CID 641203: (CONSTANT_EXPRESSION_RESULT)
    "(unsigned char)*p == CP437_NO_BREAK_SPACE" is always false regardless of the values of its operands. This occurs as the logical second operand of "||".
    422 SKIP_WHITESPACE(p);
    423 char* tp = strchr(p, QWK_NEWLINE); /* chop off at first CR */
    424 if (tp != NULL)
    425 *tp = 0;
    426 SAFECOPY(to, p);
    427 p += strlen(p) + 1;

    ** CID 641202: Integer handling issues (CONSTANT_EXPRESSION_RESULT) /mailsrvr.cpp: 1960 in dns_blacklisted(int, const char *, xp_sockaddr *, char *, char *, char *)()


    _____________________________________________________________________________________________
    *** CID 641202: Integer handling issues (CONSTANT_EXPRESSION_RESULT) /mailsrvr.cpp: 1960 in dns_blacklisted(int, const char *, xp_sockaddr *, char *, char *, char *)()
    1954 continue;
    1955
    1956 sprintf(list, "%.100s", p);
    1957
    1958 /* terminate */
    1959 tp = p;
    CID 641202: Integer handling issues (CONSTANT_EXPRESSION_RESULT)
    "(unsigned char)*tp == CP437_NO_BREAK_SPACE" is always false regardless of the values of its operands. This occurs as the logical second operand of "||".
    1960 FIND_WHITESPACE(tp);
    1961 *tp = 0;
    1962
    1963 found = rblchk(sock, prot, addr, p);
    1964 }
    1965 fclose(fp);

    ** CID 641201: (CONSTANT_EXPRESSION_RESULT)
    /netmail.cpp: 1185 in sbbs_t::inetmail(const char *, const char *, int, smb_t *, smbmsg_t *, char **)()
    /netmail.cpp: 1195 in sbbs_t::inetmail(const char *, const char *, int, smb_t *, smbmsg_t *, char **)()
    /netmail.cpp: 975 in sbbs_t::inetmail(const char *, const char *, int, smb_t *, smbmsg_t *, char **)()
    /netmail.cpp: 1202 in sbbs_t::inetmail(const char *, const char *, int, smb_t *, smbmsg_t *, char **)()


    _____________________________________________________________________________________________
    *** CID 641201: (CONSTANT_EXPRESSION_RESULT)
    /netmail.cpp: 1185 in sbbs_t::inetmail(const char *, const char *, int, smb_t *, smbmsg_t *, char **)()
    1179 break;
    1180 }
    1181
    1182 /* Get destination user address */
    1183 if ((p = strrchr(rcpt_list[rcpt_count], '<')) != NULL) {
    1184 p++;
    CID 641201: (CONSTANT_EXPRESSION_RESULT)
    "(unsigned char)*p == CP437_NO_BREAK_SPACE" is always false regardless of the values of its operands. This occurs as the logical second operand of "||".
    1185 SKIP_WHITESPACE(p);
    1186 SAFECOPY(addr, p);
    1187 p = strrchr(addr, '>');
    1188 if (p == NULL) {
    1189 bprintf(text[InvalidNetMailAddr], rcpt_list[rcpt_count]);
    1190 break;
    /netmail.cpp: 1195 in sbbs_t::inetmail(const char *, const char *, int, smb_t *, smbmsg_t *, char **)()
    1189 bprintf(text[InvalidNetMailAddr], rcpt_list[rcpt_count]);
    1190 break;
    1191 }
    1192 *p = 0;
    1193 } else {
    1194 p = rcpt_list[rcpt_count];
    CID 641201: (CONSTANT_EXPRESSION_RESULT)
    "(unsigned char)*p == CP437_NO_BREAK_SPACE" is always false regardless of the values of its operands. This occurs as the logical second operand of "||".
    1195 SKIP_WHITESPACE(p);
    1196 SAFECOPY(addr, p);
    1197 }
    1198 truncsp(addr);
    1199
    1200 /* Get destination user name */
    /netmail.cpp: 975 in sbbs_t::inetmail(const char *, const char *, int, smb_t *, smbmsg_t *, char **)()
    969 bprintf(text[InvalidNetMailAddr], p);
    970 continue;
    971 }
    972 while (at > p && *at > ' ')
    973 at--;
    974 p = at;
    CID 641201: (CONSTANT_EXPRESSION_RESULT)
    "(unsigned char)*p == CP437_NO_BREAK_SPACE" is always false regardless of the values of its operands. This occurs as the logical second operand of "||".
    975 SKIP_WHITESPACE(p);
    976 uint16_t net_type = smb_netaddr_type(p);
    977 if (net_type != NET_INTERNET) {
    978 bprintf(text[InvalidNetMailAddr], p);
    979 break;
    980 }
    /netmail.cpp: 1202 in sbbs_t::inetmail(const char *, const char *, int, smb_t *, smbmsg_t *, char **)()
    1196 SAFECOPY(addr, p);
    1197 }
    1198 truncsp(addr);
    1199
    1200 /* Get destination user name */
    1201 p = rcpt_list[rcpt_count];
    CID 641201: (CONSTANT_EXPRESSION_RESULT)
    "(unsigned char)*p == CP437_NO_BREAK_SPACE" is always false regardless of the values of its operands. This occurs as the logical second operand of "||".
    1202 SKIP_WHITESPACE(p);
    1203 SAFECOPY(name, p);
    1204 p = strrchr(name, '<');
    1205 if (!p)
    1206 p = strrchr(name, '@');
    1207 if (!p)

    ** CID 641200: (CONSTANT_EXPRESSION_RESULT)
    /ftpsrvr.c: 1534 in ftpalias()
    /ftpsrvr.c: 1547 in ftpalias()


    _____________________________________________________________________________________________
    *** CID 641200: (CONSTANT_EXPRESSION_RESULT)
    /ftpsrvr.c: 1534 in ftpalias()
    1528
    1529 while (!feof(fp)) {
    1530 if (!fgets(line, sizeof(line), fp))
    1531 break;
    1532
    1533 p = line; /* alias */
    CID 641200: (CONSTANT_EXPRESSION_RESULT)
    "(unsigned char)*p == CP437_NO_BREAK_SPACE" is always false regardless of the values of its operands. This occurs as the logical second operand of "||".
    1534 SKIP_WHITESPACE(p);
    1535 if (*p == ';') /* comment */
    1536 continue;
    1537
    1538 tp = p; /* terminator */
    1539 FIND_WHITESPACE(tp);
    /ftpsrvr.c: 1547 in ftpalias()
    1541 *tp = 0;
    1542
    1543 if (stricmp(p, alias)) /* Not a match */
    1544 continue;
    1545
    1546 p = tp + 1; /* filename */
    CID 641200: (CONSTANT_EXPRESSION_RESULT)
    "(unsigned char)*p == CP437_NO_BREAK_SPACE" is always false regardless of the values of its operands. This occurs as the logical second operand of "||".
    1547 SKIP_WHITESPACE(p);
    1548
    1549 tp = p; /* terminator */
    1550 FIND_WHITESPACE(tp);
    1551 if (*tp)
    1552 *tp = 0;


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


    ----==_mimepart_69679e3a9f33a_26617a2afbc97ad9ac59811
    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> 113</li>
    <li>
    7 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 20 of 113 defect(s)</li>
    </ul>

    <h3>Defect Details</h3>
    <pre>
    ** CID 641219: Integer handling issues (CONSTANT_EXPRESSION_RESULT) /userdat.c: 3499 in alias()


    _____________________________________________________________________________________________
    *** CID 641219: Integer handling issues (CONSTANT_EXPRESSION_RESULT) /userdat.c: 3499 in alias()
    3493
    3494 if (*tp == 0) /* no alias value */
    3495 continue;
    3496 *tp = 0;
    3497
    3498 vp = tp + 1;
    &gt;&gt;&gt; CID 641219: Integer handling issues (CONSTANT_EXPRESSION_RESULT)
    &gt;&gt;&gt; &quot;(unsigned char)*vp == CP437_NO_BREAK_SPACE&quot; is always false regardless of the values of its operands. This occurs as the logical second operand of &quot;||&quot;.
    3499 SKIP_WHITESPACE(vp);
    3500 truncsp(vp);
    3501 if (*vp == 0) /* no value */
    3502 continue;
    3503
    3504 if (*np == &#39;*&#39;) {

    ** CID 641218: (CONSTANT_EXPRESSION_RESULT)
    /ftpsrvr.c: 3761 in ctrl_thread()
    /ftpsrvr.c: 4084 in ctrl_thread()


    _____________________________________________________________________________________________
    *** CID 641218: (CONSTANT_EXPRESSION_RESULT)
    /ftpsrvr.c: 3761 in ctrl_thread()
    3755 tp = np; /* terminator pointer */
    3756 FIND_WHITESPACE(tp);
    3757 if (*tp)
    3758 *tp = 0;
    3759
    3760 dp = tp + 1; /* description pointer */
    &gt;&gt;&gt; CID 641218: (CONSTANT_EXPRESSION_RESULT) &gt;&gt;&gt; &quot;(unsigned char)*dp == CP437_NO_BREAK_SPACE&quot; is always false regardless of the values of its operands. This occurs as the logical second operand of &quot;||&quot;.
    3761 SKIP_WHITESPACE(dp);
    3762 truncsp(dp);
    3763
    3764 if (stricmp(dp, BBS_HIDDEN_ALIAS) == 0)
    3765 continue;
    3766
    /ftpsrvr.c: 4084 in ctrl_thread()
    4078 tp = np; /* terminator pointer */
    4079 FIND_WHITESPACE(tp); 4080 if (*tp)
    4081 *tp = 0;
    4082
    4083 dp = tp + 1; /* description pointer */
    &gt;&gt;&gt; CID 641218: (CONSTANT_EXPRESSION_RESULT) &gt;&gt;&gt; &quot;(unsigned char)*dp == CP437_NO_BREAK_SPACE&quot; is always false regardless of the values of its operands. This occurs as the logical second operand of &quot;||&quot;.
    4084 SKIP_WHITESPACE(dp); 4085 truncsp(dp);
    4086
    4087 if (stricmp(dp, BBS_HIDDEN_ALIAS) == 0)
    4088 continue;
    4089

    ** CID 641217: (CONSTANT_EXPRESSION_RESULT) /tmp/sbbs-Jan-14-2026/src/smblib/smbstr.c: 353 in smb_netaddr_type() /tmp/sbbs-Jan-14-2026/src/smblib/smbstr.c: 343 in smb_netaddr_type()


    _____________________________________________________________________________________________
    *** CID 641217: (CONSTANT_EXPRESSION_RESULT) /tmp/sbbs-Jan-14-2026/src/smblib/smbstr.c: 353 in smb_netaddr_type()
    347 return NET_FIDO;
    348 return NET_NONE;
    349 }
    350 if (p == str)
    351 return NET_UNKNOWN;
    352 p++;
    &gt;&gt;&gt; CID 641217: (CONSTANT_EXPRESSION_RESULT) &gt;&gt;&gt; &quot;(unsigned char)*p == CP437_NO_BREAK_SPACE&quot; is always false regardless of the values of its operands. This occurs as the logical second operand of &quot;||&quot;.
    353 SKIP_WHITESPACE(p);
    354 if (*p == 0)
    355 return NET_UNKNOWN;
    356
    357 type = smb_get_net_type_by_addr(p);
    358 if (type == NET_INTERNET &amp;&amp; strchr(str, &#39; &#39;) != NULL)
    /tmp/sbbs-Jan-14-2026/src/smblib/smbstr.c: 343 in smb_netaddr_type()
    337 const char* p;
    338
    339 if (str == NULL || IS_WHITESPACE(*str))
    340 return NET_NONE;
    341 if ((p = strchr(str, &#39;@&#39;)) == NULL) {
    342 p = str;
    &gt;&gt;&gt; CID 641217: (CONSTANT_EXPRESSION_RESULT) &gt;&gt;&gt; &quot;(unsigned char)*p == CP437_NO_BREAK_SPACE&quot; is always false regardless of the values of its operands. This occurs as the logical second operand of &quot;||&quot;.
    343 SKIP_WHITESPACE(p);
    344 if (*p == 0)
    345 return NET_NONE;
    346 if (smb_get_net_type_by_addr(p) == NET_FIDO)
    347 return NET_FIDO;
    348 return NET_NONE;

    ** CID 641216: Integer handling issues (CONSTANT_EXPRESSION_RESULT) /sbbsecho.c: 6561 in read_areafile_bbs()


    _____________________________________________________________________________________________
    *** CID 641216: Integer handling issues (CONSTANT_EXPRESSION_RESULT) /sbbsecho.c: 6561 in read_areafile_bbs()
    6555 lprintf(LOG_ERR, &quot;ERROR allocating memory for area #%u.&quot;, cfg.areas + 1);
    6556 bail(1);
    6557 return;
    6558 }
    6559 sprintf(tmp_code, &quot;%-.*s&quot;, LEN_EXTCODE, p); 6560 tp = tmp_code;
    &gt;&gt;&gt; CID 641216: Integer handling issues (CONSTANT_EXPRESSION_RESULT)
    &gt;&gt;&gt; &quot;(unsigned char)*tp == CP437_NO_BREAK_SPACE&quot; is always false regardless of the values of its operands. This occurs as the logical second operand of &quot;||&quot;.
    6561 FIND_WHITESPACE(tp);
    6562 *tp = &#39;\0&#39;;
    6563 for (i = 0; i &lt; scfg.total_subs; i++)
    6564 if (!stricmp(tmp_code, scfg.sub[i]-&gt;code)) 6565 break;
    6566 if (i &lt; scfg.total_subs)

    ** CID 641215: (CONSTANT_EXPRESSION_RESULT)
    /un_rep.cpp: 567 in sbbs_t::unpack_rep(char *)()
    /un_rep.cpp: 554 in sbbs_t::unpack_rep(char *)()
    /un_rep.cpp: 570 in sbbs_t::unpack_rep(char *)()
    /un_rep.cpp: 569 in sbbs_t::unpack_rep(char *)()
    /un_rep.cpp: 552 in sbbs_t::unpack_rep(char *)()
    /un_rep.cpp: 555 in sbbs_t::unpack_rep(char *)()


    _____________________________________________________________________________________________
    *** CID 641215: (CONSTANT_EXPRESSION_RESULT)
    /un_rep.cpp: 567 in sbbs_t::unpack_rep(char *)()
    561 subscan[n].cfg |= SUB_CFG_NSCAN | SUB_CFG_YSCAN;
    562 }
    563 continue;
    564 }
    565 if (strnicmp(str, &quot;RESET &quot;, 6) == 0) {
    566 p = str + 6;
    &gt;&gt;&gt; CID 641215: (CONSTANT_EXPRESSION_RESULT) &gt;&gt;&gt; &quot;(unsigned char)*p == CP437_NO_BREAK_SPACE&quot; is always false regardless of the values of its operands. This occurs as the logical second operand of &quot;||&quot;.
    567 SKIP_WHITESPACE(p);
    568 if ((n = resolve_qwkconf(atoi(p))) != INVALID_SUB) {
    569 FIND_WHITESPACE(p);
    570 SKIP_WHITESPACE(p);
    571 /* If the [#ofmessages] is blank then the pointer should be set back to the start of the message base */
    572 if (*p == 0) /un_rep.cpp: 554 in sbbs_t::unpack_rep(char *)()
    548 if (!fgets(str, sizeof(str) - 1, fp)) 549 break;
    550 if (strnicmp(str, &quot;AREA &quot;, 5) == 0) {
    551 p = str + 5;
    552 SKIP_WHITESPACE(p);
    553 if ((n = resolve_qwkconf(atoi(p))) != INVALID_SUB) {
    &gt;&gt;&gt; CID 641215: (CONSTANT_EXPRESSION_RESULT) &gt;&gt;&gt; &quot;(unsigned char)*p == CP437_NO_BREAK_SPACE&quot; is always false regardless of the values of its operands. This occurs as the logical second operand of &quot;||&quot;.
    554 FIND_WHITESPACE(p);
    555 SKIP_WHITESPACE(p);
    556 if (strchr(p, &#39;D&#39;))
    557 subscan[n].cfg &amp;= ~SUB_CFG_NSCAN;
    558 else if (strchr(p, &#39;a&#39;) || strchr(p, &#39;g&#39;))
    559 subscan[n].cfg |= SUB_CFG_NSCAN;
    /un_rep.cpp: 570 in sbbs_t::unpack_rep(char *)()
    564 }
    565 if (strnicmp(str, &quot;RESET &quot;, 6) == 0) {
    566 p = str + 6;
    567 SKIP_WHITESPACE(p);
    568 if ((n = resolve_qwkconf(atoi(p))) != INVALID_SUB) {
    569 FIND_WHITESPACE(p); &gt;&gt;&gt; CID 641215: (CONSTANT_EXPRESSION_RESULT) &gt;&gt;&gt; &quot;(unsigned char)*p == CP437_NO_BREAK_SPACE&quot; is always false regardless of the values of its operands. This occurs as the logical second operand of &quot;||&quot;.
    570 SKIP_WHITESPACE(p);
    571 /* If the [#ofmessages] is blank then the pointer should be set back to the start of the message base */
    572 if (*p == 0)
    573 subscan[n].ptr = 0;
    574 else {
    575 /* otherwise it should be set back [#ofmessages] back from the end of the message base. */
    /un_rep.cpp: 569 in sbbs_t::unpack_rep(char *)()
    563 continue;
    564 }
    565 if (strnicmp(str, &quot;RESET &quot;, 6) == 0) {
    566 p = str + 6;
    567 SKIP_WHITESPACE(p);
    568 if ((n = resolve_qwkconf(atoi(p))) != INVALID_SUB) {
    &gt;&gt;&gt; CID 641215: (CONSTANT_EXPRESSION_RESULT) &gt;&gt;&gt; &quot;(unsigned char)*p == CP437_NO_BREAK_SPACE&quot; is always false regardless of the values of its operands. This occurs as the logical second operand of &quot;||&quot;.
    569 FIND_WHITESPACE(p);
    570 SKIP_WHITESPACE(p);
    571 /* If the [#ofmessages] is blank then the pointer should be set back to the start of the message base */
    572 if (*p == 0)
    573 subscan[n].ptr = 0;
    574 else {
    /un_rep.cpp: 552 in sbbs_t::unpack_rep(char *)()
    546 if (fp != NULL) {
    547 while (!feof(fp)) {
    548 if (!fgets(str, sizeof(str) - 1, fp)) 549 break;
    550 if (strnicmp(str, &quot;AREA &quot;, 5) == 0) {
    551 p = str + 5;
    &gt;&gt;&gt; CID 641215: (CONSTANT_EXPRESSION_RESULT) &gt;&gt;&gt; &quot;(unsigned char)*p == CP437_NO_BREAK_SPACE&quot; is always false regardless of the values of its operands. This occurs as the logical second operand of &quot;||&quot;.
    552 SKIP_WHITESPACE(p);
    553 if ((n = resolve_qwkconf(atoi(p))) != INVALID_SUB) {
    554 FIND_WHITESPACE(p);
    555 SKIP_WHITESPACE(p);
    556 if (strchr(p, &#39;D&#39;))
    557 subscan[n].cfg &amp;= ~SUB_CFG_NSCAN;
    /un_rep.cpp: 555 in sbbs_t::unpack_rep(char *)()
    549 break;
    550 if (strnicmp(str, &quot;AREA &quot;, 5) == 0) {
    551 p = str + 5;
    552 SKIP_WHITESPACE(p);
    553 if ((n = resolve_qwkconf(atoi(p))) != INVALID_SUB) {
    554 FIND_WHITESPACE(p); &gt;&gt;&gt; CID 641215: (CONSTANT_EXPRESSION_RESULT) &gt;&gt;&gt; &quot;(unsigned char)*p == CP437_NO_BREAK_SPACE&quot; is always false regardless of the values of its operands. This occurs as the logical second operand of &quot;||&quot;.
    555 SKIP_WHITESPACE(p);
    556 if (strchr(p, &#39;D&#39;))
    557 subscan[n].cfg &amp;= ~SUB_CFG_NSCAN;
    558 else if (strchr(p, &#39;a&#39;) || strchr(p, &#39;g&#39;))
    559 subscan[n].cfg |= SUB_CFG_NSCAN;
    560 else if (strchr(p, &#39;p&#39;))

    ** CID 641214: Integer handling issues (CONSTANT_EXPRESSION_RESULT) /sbbsecho.c: 1603 in check_elists()


    _____________________________________________________________________________________________
    *** CID 641214: Integer handling issues (CONSTANT_EXPRESSION_RESULT) /sbbsecho.c: 1603 in check_elists()
    1597 break;
    1598 p = str;
    1599 SKIP_WHITESPACE(p); 1600 if (*p == &#39;;&#39;) /* Ignore Comment Lines */
    1601 continue;
    1602 tp = p;
    &gt;&gt;&gt; CID 641214: Integer handling issues (CONSTANT_EXPRESSION_RESULT)
    &gt;&gt;&gt; &quot;(unsigned char)*tp == CP437_NO_BREAK_SPACE&quot; is always false regardless of the values of its operands. This occurs as the logical second operand of &quot;||&quot;.
    1603 FIND_WHITESPACE(tp); 1604 *tp = &#39;\0&#39;; 1605 if (!stricmp(areatag, p)) {
    1606 match = true; 1607 break;
    1608 }

    ** CID 641213: Integer handling issues (CONSTANT_EXPRESSION_RESULT) /userdat.c: 3492 in alias()


    _____________________________________________________________________________________________
    *** CID 641213: Integer handling issues (CONSTANT_EXPRESSION_RESULT) /userdat.c: 3492 in alias()
    3486 break;
    3487 np = line;
    3488 SKIP_WHITESPACE(np);
    3489 if (*np == &#39;;&#39; || *np == 0) /* no name value, or comment */
    3490 continue;
    3491 tp = np;
    &gt;&gt;&gt; CID 641213: Integer handling issues (CONSTANT_EXPRESSION_RESULT)
    &gt;&gt;&gt; &quot;(unsigned char)*tp == CP437_NO_BREAK_SPACE&quot; is always false regardless of the values of its operands. This occurs as the logical second operand of &quot;||&quot;.
    3492 FIND_WHITESPACE(tp);
    3493
    3494 if (*tp == 0) /* no alias value */
    3495 continue;
    3496 *tp = 0;
    3497

    ** CID 641212: Integer handling issues (CONSTANT_EXPRESSION_RESULT) /sbbsecho.c: 1531 in netmail_arealist()


    _____________________________________________________________________________________________
    *** CID 641212: Integer handling issues (CONSTANT_EXPRESSION_RESULT) /sbbsecho.c: 1531 in netmail_arealist()
    1525 truncsp(str);
    1526 p = str;
    1527 SKIP_WHITESPACE(p);
    1528 if (*p == 0 || *p == &#39;;&#39;) /* Ignore Blank and Comment Lines */
    1529 continue;
    1530 tp = p; &gt;&gt;&gt; CID 641212: Integer handling issues (CONSTANT_EXPRESSION_RESULT)
    &gt;&gt;&gt; &quot;(unsigned char)*tp == CP437_NO_BREAK_SPACE&quot; is always false regardless of the values of its operands. This occurs as the logical second operand of &quot;||&quot;.
    1531 FIND_WHITESPACE(tp);
    1532 *tp = &#39;\0&#39;;
    1533 if (find_linked_area(p, addr) == SUB_NOT_FOUND) {
    1534 if (strListFind(area_list, p, /* case_sensitive */ false) &lt; 0)
    1535 strListPush(&amp;area_list, p);
    1536 }

    ** CID 641211: Integer handling issues (CONSTANT_EXPRESSION_RESULT) /tmp/sbbs-Jan-14-2026/src/xpdev/ini_file.c: 232 in key_name()


    _____________________________________________________________________________________________
    *** CID 641211: Integer handling issues (CONSTANT_EXPRESSION_RESULT) /tmp/sbbs-Jan-14-2026/src/xpdev/ini_file.c: 232 in key_name()
    226 *vp = NULL;
    227
    228 if (p == NULL)
    229 return NULL;
    230
    231 /* Parse value name */
    &gt;&gt;&gt; CID 641211: Integer handling issues (CONSTANT_EXPRESSION_RESULT)
    &gt;&gt;&gt; &quot;(unsigned char)*p == CP437_NO_BREAK_SPACE&quot; is always false regardless of the values of its operands. This occurs as the logical second operand of &quot;||&quot;.
    232 SKIP_WHITESPACE(p);
    233 if (*p == INI_COMMENT_CHAR)
    234 return NULL;
    235 if (*p == INI_OPEN_SECTION_CHAR)
    236 return INI_NEW_SECTION;
    237 equal = strchr(p, &#39;=&#39;);

    ** CID 641210: Integer handling issues (CONSTANT_EXPRESSION_RESULT) /wordwrap.c: 211 in get_ws_len()


    _____________________________________________________________________________________________
    *** CID 641210: Integer handling issues (CONSTANT_EXPRESSION_RESULT) /wordwrap.c: 211 in get_ws_len()
    205 {
    206 struct section_len ret = {0, 0};
    207
    208 for (ret.bytes = 0; ; ret.bytes++) {
    209 if (!buf[ret.bytes])
    210 break;
    &gt;&gt;&gt; CID 641210: Integer handling issues (CONSTANT_EXPRESSION_RESULT)
    &gt;&gt;&gt; &quot;(unsigned char)buf[ret.bytes] == CP437_NO_BREAK_SPACE&quot; is always false regardless of the values of its operands. This occurs as the logical second operand of &quot;||&quot;.
    211 if (!IS_WHITESPACE(buf[ret.bytes]))
    212 break;
    213 if (buf[ret.bytes] == &#39;\t&#39;) {
    214 ret.len++;
    215 while ((ret.len + col) % 8)
    216 ret.len++;

    ** CID 641209: (CONSTANT_EXPRESSION_RESULT) /tmp/sbbs-Jan-14-2026/src/xpdev/ini_file.c: 83 in section_name() /tmp/sbbs-Jan-14-2026/src/xpdev/ini_file.c: 87 in section_name()


    _____________________________________________________________________________________________
    *** CID 641209: (CONSTANT_EXPRESSION_RESULT) /tmp/sbbs-Jan-14-2026/src/xpdev/ini_file.c: 83 in section_name()
    77 }
    78
    79 static char* section_name(char* p)
    80 {
    81 char* tp;
    82
    &gt;&gt;&gt; CID 641209: (CONSTANT_EXPRESSION_RESULT) &gt;&gt;&gt; &quot;(unsigned char)*p == CP437_NO_BREAK_SPACE&quot; is always false regardless of the values of its operands. This occurs as the logical second operand of &quot;||&quot;.
    83 SKIP_WHITESPACE(p);
    84 if (*p != INI_OPEN_SECTION_CHAR)
    85 return NULL;
    86 p++;
    87 SKIP_WHITESPACE(p);
    88 tp = strrchr(p, INI_CLOSE_SECTION_CHAR); /tmp/sbbs-Jan-14-2026/src/xpdev/ini_file.c: 87 in section_name()
    81 char* tp;
    82
    83 SKIP_WHITESPACE(p);
    84 if (*p != INI_OPEN_SECTION_CHAR)
    85 return NULL;
    86 p++;
    &gt;&gt;&gt; CID 641209: (CONSTANT_EXPRESSION_RESULT) &gt;&gt;&gt; &quot;(unsigned char)*p == CP437_NO_BREAK_SPACE&quot; is always false regardless of the values of its operands. This occurs as the logical second operand of &quot;||&quot;.
    87 SKIP_WHITESPACE(p);
    88 tp = strrchr(p, INI_CLOSE_SECTION_CHAR);
    89 if (tp == NULL)
    90 return NULL;
    91 *tp = 0;
    92 truncsp(p);

    ** CID 641208: Integer handling issues (CONSTANT_EXPRESSION_RESULT) /mailsrvr.cpp: 1989 in parse_mail_address(const char *, char *, unsigned long, char *, unsigned long)()


    _____________________________________________________________________________________________
    *** CID 641208: Integer handling issues (CONSTANT_EXPRESSION_RESULT) /mailsrvr.cpp: 1989 in parse_mail_address(const char *, char *, unsigned long, char *, unsigned long)()
    1983
    1984 /* Get the address */
    1985 if ((tp = (char*)strchr(p, &#39;&lt;&#39;)) != NULL)
    1986 tp++;
    1987 else
    1988 tp = (char*)p;
    &gt;&gt;&gt; CID 641208: Integer handling issues (CONSTANT_EXPRESSION_RESULT)
    &gt;&gt;&gt; &quot;(unsigned char)*tp == CP437_NO_BREAK_SPACE&quot; is always false regardless of the values of its operands. This occurs as the logical second operand of &quot;||&quot;.
    1989 SKIP_WHITESPACE(tp);
    1990 sprintf(addr, &quot;%.*s&quot;, (int)addr_len, tp);
    1991 truncstr(addr, &quot;&gt;( &quot;);
    1992
    1993 if (name != NULL) {
    1994 SAFECOPY(tmp, p);

    ** CID 641207: Integer handling issues (CONSTANT_EXPRESSION_RESULT) /sbbsecho.c: 2496 in process_areamgr()


    _____________________________________________________________________________________________
    *** CID 641207: Integer handling issues (CONSTANT_EXPRESSION_RESULT) /sbbsecho.c: 2496 in process_areamgr()
    2490 }
    2491
    2492 m = strlen(p);
    2493 add_area = strListInit();
    2494 del_area = strListInit();
    2495 for (l = 0; l &lt; m; l++) {
    &gt;&gt;&gt; CID 641207: Integer handling issues (CONSTANT_EXPRESSION_RESULT)
    &gt;&gt;&gt; &quot;(unsigned char)p[l] == CP437_NO_BREAK_SPACE&quot; is always false regardless of the values of its operands. This occurs as the logical second operand of &quot;||&quot;.
    2496 while (*(p + l) &amp;&amp; IS_WHITESPACE(*(p + l))) l++;
    2497 while (*(p + l) == CTRL_A) { /* Ignore kludge lines June-13-2004 */
    2498 while (*(p + l) &amp;&amp; *(p + l) != &#39;\r&#39;) l++;
    2499 continue;
    2500 }
    2501 if (!(*(p + l)))

    ** CID 641206: Integer handling issues (CONSTANT_EXPRESSION_RESULT) /tmp/sbbs-Jan-14-2026/src/xpdev/ini_file.c: 118 in section_match()


    _____________________________________________________________________________________________
    *** CID 641206: Integer handling issues (CONSTANT_EXPRESSION_RESULT) /tmp/sbbs-Jan-14-2026/src/xpdev/ini_file.c: 118 in section_match() 112 /* Search for matches */
    113 for (i = 0; names[i] != NULL &amp;&amp; !found; i++)
    114 for (j = 0; comps[j] != NULL &amp;&amp; !found; j++) { 115 n = names[i];
    116 SKIP_WHITESPACE(n);
    117 c = comps[j];
    &gt;&gt;&gt; CID 641206: Integer handling issues (CONSTANT_EXPRESSION_RESULT)
    &gt;&gt;&gt; &quot;(unsigned char)*c == CP437_NO_BREAK_SPACE&quot; is always false regardless of the values of its operands. This occurs as the logical second operand of &quot;||&quot;.
    118 SKIP_WHITESPACE(c);
    119 if (case_sensitive)
    120 found = strcmp(n, c) == 0;
    121 else
    122 found = stricmp(n, c) == 0;
    123 }

    ** CID 641205: (CONSTANT_EXPRESSION_RESULT)
    /sbbsecho.c: 2225 in areamgr_command()
    /sbbsecho.c: 2191 in areamgr_command()
    /sbbsecho.c: 2224 in areamgr_command()
    /sbbsecho.c: 2335 in areamgr_command()
    /sbbsecho.c: 2156 in areamgr_command()
    /sbbsecho.c: 2273 in areamgr_command()
    /sbbsecho.c: 2192 in areamgr_command()
    /sbbsecho.c: 2336 in areamgr_command()
    /sbbsecho.c: 2250 in areamgr_command()
    /sbbsecho.c: 2155 in areamgr_command()
    /sbbsecho.c: 2274 in areamgr_command()
    /sbbsecho.c: 2306 in areamgr_command()
    /sbbsecho.c: 2249 in areamgr_command()


    _____________________________________________________________________________________________
    *** CID 641205: (CONSTANT_EXPRESSION_RESULT)
    /sbbsecho.c: 2225 in areamgr_command()
    2219 }
    2220
    2221 if (strnicmp(instr, &quot;PKTPWD &quot;, 7) == 0) {
    2222 char pktpwd[FIDO_PASS_LEN + 1]; /* Packet password for this node */
    2223 char* p = instr;
    2224 FIND_WHITESPACE(p);
    &gt;&gt;&gt; CID 641205: (CONSTANT_EXPRESSION_RESULT) &gt;&gt;&gt; &quot;(unsigned char)*p == CP437_NO_BREAK_SPACE&quot; is always false regardless of the values of its operands. This occurs as the logical second operand of &quot;||&quot;.
    2225 SKIP_WHITESPACE(p);
    2226 SAFECOPY(pktpwd, p);
    2227 if (!stricmp(pktpwd, nodecfg-&gt;pktpwd)) {
    2228 snprintf(str, sizeof str, &quot;Your packet password was already set to &#39;%s&#39;.&quot;
    2229 , nodecfg-&gt;pktpwd);
    2230 lprintf(LOG_INFO, &quot;AreaMgr (for %s) %s&quot;, faddrtoa(&amp;addr), str);
    /sbbsecho.c: 2191 in areamgr_command()
    2185 return true;
    2186 }
    2187
    2188 if (strnicmp(instr, &quot;PASSWORD &quot;, 9) == 0 || strnicmp(instr, &quot;PWD &quot;, 4) == 0) {
    2189 char password[FIDO_SUBJ_LEN]; /* AreaMgr password for this node */
    2190 char* p = instr;
    &gt;&gt;&gt; CID 641205: (CONSTANT_EXPRESSION_RESULT) &gt;&gt;&gt; &quot;(unsigned char)*p == CP437_NO_BREAK_SPACE&quot; is always false regardless of the values of its operands. This occurs as the logical second operand of &quot;||&quot;.
    2191 FIND_WHITESPACE(p);
    2192 SKIP_WHITESPACE(p);
    2193 SAFECOPY(password, p);
    2194 if (strchr(password, &#39; &#39;) != NULL) {
    2195 snprintf(str, sizeof str, &quot;Your AreaMgr password cannot contain spaces.&quot;);
    2196 lprintf(LOG_INFO, &quot;AreaMgr (for %s) %s&quot;, faddrtoa(&amp;addr), str);
    /sbbsecho.c: 2224 in areamgr_command()
    2218 return true;
    2219 }
    2220
    2221 if (strnicmp(instr, &quot;PKTPWD &quot;, 7) == 0) {
    2222 char pktpwd[FIDO_PASS_LEN + 1]; /* Packet password for this node */
    2223 char* p = instr;
    &gt;&gt;&gt; CID 641205: (CONSTANT_EXPRESSION_RESULT) &gt;&gt;&gt; &quot;(unsigned char)*p == CP437_NO_BREAK_SPACE&quot; is always false regardless of the values of its operands. This occurs as the logical second operand of &quot;||&quot;.
    2224 FIND_WHITESPACE(p);
    2225 SKIP_WHITESPACE(p);
    2226 SAFECOPY(pktpwd, p);
    2227 if (!stricmp(pktpwd, nodecfg-&gt;pktpwd)) {
    2228 snprintf(str, sizeof str, &quot;Your packet password was already set to &#39;%s&#39;.&quot;
    2229 , nodecfg-&gt;pktpwd);
    /sbbsecho.c: 2335 in areamgr_command()
    2329 , str, /* dest: */ addr, /* src: */ NULL);
    2330 return true;
    2331 }
    2332
    2333 if (strnicmp(instr, &quot;ECHOSTATS &quot;, 10) == 0) {
    2334 char* p = instr;
    &gt;&gt;&gt; CID 641205: (CONSTANT_EXPRESSION_RESULT) &gt;&gt;&gt; &quot;(unsigned char)*p == CP437_NO_BREAK_SPACE&quot; is always false regardless of the values of its operands. This occurs as the logical second operand of &quot;||&quot;.
    2335 FIND_WHITESPACE(p);
    2336 SKIP_WHITESPACE(p);
    2337 echostat_t* stat = get_echostat(p, /* create: */ false);
    2338 if (stat == NULL) {
    2339 lprintf(LOG_INFO, &quot;AreaMgr (for %s) EchoStats request for unknown echo: %s&quot;, faddrtoa(&amp;addr), p);
    2340 } else {
    /sbbsecho.c: 2156 in areamgr_command()
    2150 alter_config(nodecfg, &quot;Name&quot;, to);
    2151 }
    2152
    2153 if (strnicmp(instr, &quot;COMPRESSION &quot;, 12) == 0 || strnicmp(instr, &quot;COMPRESS &quot;, 9) == 0) {
    2154 char* p = instr;
    2155 FIND_WHITESPACE(p);
    &gt;&gt;&gt; CID 641205: (CONSTANT_EXPRESSION_RESULT) &gt;&gt;&gt; &quot;(unsigned char)*p == CP437_NO_BREAK_SPACE&quot; is always false regardless of the values of its operands. This occurs as the logical second operand of &quot;||&quot;.
    2156 SKIP_WHITESPACE(p);
    2157 if (!stricmp(p, &quot;NONE&quot;))
    2158 nodecfg-&gt;archive = SBBSECHO_ARCHIVE_NONE; 2159 else {
    2160 for (u = 0; u &lt; cfg.arcdefs; u++)
    2161 if (stricmp(p, cfg.arcdef[u].name) == 0)
    /sbbsecho.c: 2273 in areamgr_command()
    2267 create_netmail(to, /* msg: */ NULL, &quot;TIC File Password Change Request&quot;, str, /* dest: */ addr, /* src: */ NULL);
    2268 return true;
    2269 }
    2270
    2271 if (strnicmp(instr, &quot;NOTIFY &quot;, 7) == 0) {
    2272 char* p = instr;
    &gt;&gt;&gt; CID 641205: (CONSTANT_EXPRESSION_RESULT) &gt;&gt;&gt; &quot;(unsigned char)*p == CP437_NO_BREAK_SPACE&quot; is always false regardless of the values of its operands. This occurs as the logical second operand of &quot;||&quot;.
    2273 FIND_WHITESPACE(p);
    2274 SKIP_WHITESPACE(p);
    2275 if (alter_config(nodecfg, &quot;Notify&quot;, p)) { 2276 SAFEPRINTF2(str, &quot;Your Notification Messages have been changed from &#39;%s&#39; to &#39;%s&#39;.&quot;
    2277 , nodecfg-&gt;send_notify ? &quot;ON&quot; : &quot;OFF&quot;, p);
    2278 } else {
    /sbbsecho.c: 2192 in areamgr_command()
    2186 }
    2187
    2188 if (strnicmp(instr, &quot;PASSWORD &quot;, 9) == 0 || strnicmp(instr, &quot;PWD &quot;, 4) == 0) {
    2189 char password[FIDO_SUBJ_LEN]; /* AreaMgr password for this node */
    2190 char* p = instr;
    2191 FIND_WHITESPACE(p);
    &gt;&gt;&gt; CID 641205: (CONSTANT_EXPRESSION_RESULT) &gt;&gt;&gt; &quot;(unsigned char)*p == CP437_NO_BREAK_SPACE&quot; is always false regardless of the values of its operands. This occurs as the logical second operand of &quot;||&quot;.
    2192 SKIP_WHITESPACE(p);
    2193 SAFECOPY(password, p);
    2194 if (strchr(password, &#39; &#39;) != NULL) {
    2195 snprintf(str, sizeof str, &quot;Your AreaMgr password cannot contain spaces.&quot;);
    2196 lprintf(LOG_INFO, &quot;AreaMgr (for %s) %s&quot;, faddrtoa(&amp;addr), str);
    2197 create_netmail(to, /* msg: */ NULL, &quot;AreaMgr Password Change Request&quot;, str
    /sbbsecho.c: 2336 in areamgr_command()
    2330 return true;
    2331 }
    2332
    2333 if (strnicmp(instr, &quot;ECHOSTATS &quot;, 10) == 0) {
    2334 char* p = instr;
    2335 FIND_WHITESPACE(p);
    &gt;&gt;&gt; CID 641205: (CONSTANT_EXPRESSION_RESULT) &gt;&gt;&gt; &quot;(unsigned char)*p == CP437_NO_BREAK_SPACE&quot; is always false regardless of the values of its operands. This occurs as the logical second operand of &quot;||&quot;.
    2336 SKIP_WHITESPACE(p);
    2337 echostat_t* stat = get_echostat(p, /* create: */ false);
    2338 if (stat == NULL) {
    2339 lprintf(LOG_INFO, &quot;AreaMgr (for %s) EchoStats request for unknown echo: %s&quot;, faddrtoa(&amp;addr), p);
    2340 } else {
    2341 FILE* fp;
    /sbbsecho.c: 2250 in areamgr_command()
    2244 }
    2245
    2246 if (strnicmp(instr, &quot;TICPWD &quot;, 7) == 0) {
    2247 char ticpwd[SBBSECHO_MAX_TICPWD_LEN + 1]; /* TIC File password for this node */
    2248 char* p = instr;
    2249 FIND_WHITESPACE(p);
    &gt;&gt;&gt; CID 641205: (CONSTANT_EXPRESSION_RESULT) &gt;&gt;&gt; &quot;(unsigned char)*p == CP437_NO_BREAK_SPACE&quot; is always false regardless of the values of its operands. This occurs as the logical second operand of &quot;||&quot;.
    2250 SKIP_WHITESPACE(p);
    2251 SAFECOPY(ticpwd, p);
    2252 if (!stricmp(ticpwd, nodecfg-&gt;ticpwd)) {
    2253 snprintf(str, sizeof str, &quot;Your TIC File password was already set to &#39;%s&#39;.&quot;
    2254 , nodecfg-&gt;ticpwd);
    2255 lprintf(LOG_INFO, &quot;AreaMgr (for %s) %s&quot;, faddrtoa(&amp;addr), str);
    /sbbsecho.c: 2155 in areamgr_command()
    2149 lprintf(LOG_INFO, &quot;AreaMgr (for %s) Changing name to: %s&quot;, faddrtoa(&amp;addr), to);
    2150 alter_config(nodecfg, &quot;Name&quot;, to);
    2151 }
    2152
    2153 if (strnicmp(instr, &quot;COMPRESSION &quot;, 12) == 0 || strnicmp(instr, &quot;COMPRESS &quot;, 9) == 0) {
    2154 char* p = instr;
    &gt;&gt;&gt; CID 641205: (CONSTANT_EXPRESSION_RESULT) &gt;&gt;&gt; &quot;(unsigned char)*p == CP437_NO_BREAK_SPACE&quot; is always false regardless of the values of its operands. This occurs as the logical second operand of &quot;||&quot;.
    2155 FIND_WHITESPACE(p);
    2156 SKIP_WHITESPACE(p);
    2157 if (!stricmp(p, &quot;NONE&quot;))
    2158 nodecfg-&gt;archive = SBBSECHO_ARCHIVE_NONE; 2159 else {
    2160 for (u = 0; u &lt; cfg.arcdefs; u++) /sbbsecho.c: 2274 in areamgr_command()
    2268 return true;
    2269 }
    2270
    2271 if (strnicmp(instr, &quot;NOTIFY &quot;, 7) == 0) {
    2272 char* p = instr;
    2273 FIND_WHITESPACE(p);
    &gt;&gt;&gt; CID 641205: (CONSTANT_EXPRESSION_RESULT) &gt;&gt;&gt; &quot;(unsigned char)*p == CP437_NO_BREAK_SPACE&quot; is always false regardless of the values of its operands. This occurs as the logical second operand of &quot;||&quot;.
    2274 SKIP_WHITESPACE(p);
    2275 if (alter_config(nodecfg, &quot;Notify&quot;, p)) { 2276 SAFEPRINTF2(str, &quot;Your Notification Messages have been changed from &#39;%s&#39; to &#39;%s&#39;.&quot;
    2277 , nodecfg-&gt;send_notify ? &quot;ON&quot; : &quot;OFF&quot;, p);
    2278 } else {
    2279 SAFECOPY(str, &quot;Error changing Notify Setting&quot;);
    /sbbsecho.c: 2306 in areamgr_command()
    2300 return true;
    2301 }
    2302
    2303 // %RESCAN &lt;area-tag&gt; [R=&lt;count&gt; || D=&lt;days&gt;] 2304 if (strnicmp(instr, &quot;RESCAN &quot;, 7) == 0) {
    2305 char* p = instr + 7;
    &gt;&gt;&gt; CID 641205: (CONSTANT_EXPRESSION_RESULT) &gt;&gt;&gt; &quot;(unsigned char)*p == CP437_NO_BREAK_SPACE&quot; is always false regardless of the values of its operands. This occurs as the logical second operand of &quot;||&quot;.
    2306 SKIP_WHITESPACE(p);
    2307 char* tp = p;
    2308 FIND_WHITESPACE(tp);
    2309 if (*tp != &#39;\0&#39;) {
    2310 *tp = &#39;\0&#39;;
    2311 ++tp;
    /sbbsecho.c: 2249 in areamgr_command()
    2243 return true;
    2244 }
    2245
    2246 if (strnicmp(instr, &quot;TICPWD &quot;, 7) == 0) {
    2247 char ticpwd[SBBSECHO_MAX_TICPWD_LEN + 1]; /* TIC File password for this node */
    2248 char* p = instr;
    &gt;&gt;&gt; CID 641205: (CONSTANT_EXPRESSION_RESULT) &gt;&gt;&gt; &quot;(unsigned char)*p == CP437_NO_BREAK_SPACE&quot; is always false regardless of the values of its operands. This occurs as the logical second operand of &quot;||&quot;.
    2249 FIND_WHITESPACE(p);
    2250 SKIP_WHITESPACE(p);
    2251 SAFECOPY(ticpwd, p);
    2252 if (!stricmp(ticpwd, nodecfg-&gt;ticpwd)) {
    2253 snprintf(str, sizeof str, &quot;Your TIC File password was already set to &#39;%s&#39;.&quot;
    2254 , nodecfg-&gt;ticpwd);

    ** CID 641204: Integer handling issues (CONSTANT_EXPRESSION_RESULT) /main.cpp: 5749 in bbs_thread()


    _____________________________________________________________________________________________
    *** CID 641204: Integer handling issues (CONSTANT_EXPRESSION_RESULT) /main.cpp: 5749 in bbs_thread()
    5743 /* ToDo: Make ident timeout configurable */
    5744 if (identify(&amp;client_addr, inet_addrport(&amp;client_addr), str, sizeof(str) - 1, /* timeout: */ 1)) {
    5745 lprintf(LOG_DEBUG, &quot;%04d %s [%s] Ident Response: %s&quot;, client_socket, client.protocol, host_ip, str);
    5746 identity = strrchr(str, &#39;:&#39;);
    5747 if (identity != NULL) {
    5748 identity++; /* skip colon */
    &gt;&gt;&gt; CID 641204: Integer handling issues (CONSTANT_EXPRESSION_RESULT)
    &gt;&gt;&gt; &quot;(unsigned char)*identity == CP437_NO_BREAK_SPACE&quot; is always false regardless of the values of its operands. This occurs as the logical second operand of &quot;||&quot;.
    5749 SKIP_WHITESPACE(identity);
    5750 if (*identity)
    5751 lprintf(LOG_INFO, &quot;%04d %s [%s] Identity: %s&quot;, client_socket, client.protocol, host_ip, identity);
    5752 }
    5753 }
    5754 sbbs-&gt;cp437_out(crlf);

    ** CID 641203: (CONSTANT_EXPRESSION_RESULT)
    /netmail.cpp: 432 in sbbs_t::qwktonetmail(_IO_FILE *, char *, char *, unsigned char)()
    /netmail.cpp: 422 in sbbs_t::qwktonetmail(_IO_FILE *, char *, char *, unsigned char)()


    _____________________________________________________________________________________________
    *** CID 641203: (CONSTANT_EXPRESSION_RESULT)
    /netmail.cpp: 432 in sbbs_t::qwktonetmail(_IO_FILE *, char *, char *, unsigned char)()
    426 SAFECOPY(to, p);
    427 p += strlen(p) + 1;
    428 continue;
    429 }
    430 if (strncmp(p, &quot;Subject:&quot;, 8) == 0) {
    431 p += 8;
    &gt;&gt;&gt; CID 641203: (CONSTANT_EXPRESSION_RESULT) &gt;&gt;&gt; &quot;(unsigned char)*p == CP437_NO_BREAK_SPACE&quot; is always false regardless of the values of its operands. This occurs as the logical second operand of &quot;||&quot;.
    432 SKIP_WHITESPACE(p);
    433 char* tp = strchr(p, QWK_NEWLINE); /* chop off at first CR */
    434 if (tp != NULL)
    435 *tp = 0;
    436 subject = p;
    437 p += strlen(p) + 1;
    /netmail.cpp: 422 in sbbs_t::qwktonetmail(_IO_FILE *, char *, char *, unsigned char)()
    416 SAFECOPY(to, into);
    417
    418 // Parse QWKE Kludge Lines here:
    419 while (p &lt; end &amp;&amp; *p != QWK_NEWLINE) {
    420 if (strncmp(p, &quot;To:&quot;, 3) == 0) {
    421 p += 3;
    &gt;&gt;&gt; CID 641203: (CONSTANT_EXPRESSION_RESULT) &gt;&gt;&gt; &quot;(unsigned char)*p == CP437_NO_BREAK_SPACE&quot; is always false regardless of the values of its operands. This occurs as the logical second operand of &quot;||&quot;.
    422 SKIP_WHITESPACE(p);
    423 char* tp = strchr(p, QWK_NEWLINE); /* chop off at first CR */
    424 if (tp != NULL)
    425 *tp = 0;
    426 SAFECOPY(to, p);
    427 p += strlen(p) + 1;

    ** CID 641202: Integer handling issues (CONSTANT_EXPRESSION_RESULT) /mailsrvr.cpp: 1960 in dns_blacklisted(int, const char *, xp_sockaddr *, char *, char *, char *)()


    _____________________________________________________________________________________________
    *** CID 641202: Integer handling issues (CONSTANT_EXPRESSION_RESULT) /mailsrvr.cpp: 1960 in dns_blacklisted(int, const char *, xp_sockaddr *, char *, char *, char *)()
    1954 continue;
    1955
    1956 sprintf(list, &quot;%.100s&quot;, p);
    1957
    1958 /* terminate */
    1959 tp = p;
    &gt;&gt;&gt; CID 641202: Integer handling issues (CONSTANT_EXPRESSION_RESULT)
    &gt;&gt;&gt; &quot;(unsigned char)*tp == CP437_NO_BREAK_SPACE&quot; is always false regardless of the values of its operands. This occurs as the logical second operand of &quot;||&quot;.
    1960 FIND_WHITESPACE(tp);
    1961 *tp = 0;
    1962
    1963 found = rblchk(sock, prot, addr, p);
    1964 }
    1965 fclose(fp);

    ** CID 641201: (CONSTANT_EXPRESSION_RESULT)
    /netmail.cpp: 1185 in sbbs_t::inetmail(const char *, const char *, int, smb_t *, smbmsg_t *, char **)()
    /netmail.cpp: 1195 in sbbs_t::inetmail(const char *, const char *, int, smb_t *, smbmsg_t *, char **)()
    /netmail.cpp: 975 in sbbs_t::inetmail(const char *, const char *, int, smb_t *, smbmsg_t *, char **)()
    /netmail.cpp: 1202 in sbbs_t::inetmail(const char *, const char *, int, smb_t *, smbmsg_t *, char **)()


    _____________________________________________________________________________________________
    *** CID 641201: (CONSTANT_EXPRESSION_RESULT)
    /netmail.cpp: 1185 in sbbs_t::inetmail(const char *, const char *, int, smb_t *, smbmsg_t *, char **)()
    1179 break;
    1180 }
    1181
    1182 /* Get destination user address */
    1183 if ((p = strrchr(rcpt_list[rcpt_count], &#39;&lt;&#39;)) != NULL) {
    1184 p++;
    &gt;&gt;&gt; CID 641201: (CONSTANT_EXPRESSION_RESULT) &gt;&gt;&gt; &quot;(unsigned char)*p == CP437_NO_BREAK_SPACE&quot; is always false regardless of the values of its operands. This occurs as the logical second operand of &quot;||&quot;.
    1185 SKIP_WHITESPACE(p);
    1186 SAFECOPY(addr, p);
    1187 p = strrchr(addr, &#39;&gt;&#39;);
    1188 if (p == NULL) {
    1189 bprintf(text[InvalidNetMailAddr], rcpt_list[rcpt_count]);
    1190 break;
    /netmail.cpp: 1195 in sbbs_t::inetmail(const char *, const char *, int, smb_t *, smbmsg_t *, char **)()
    1189 bprintf(text[InvalidNetMailAddr], rcpt_list[rcpt_count]);
    1190 break;
    1191 }
    1192 *p = 0;
    1193 } else {
    1194 p = rcpt_list[rcpt_count];
    &gt;&gt;&gt; CID 641201: (CONSTANT_EXPRESSION_RESULT) &gt;&gt;&gt; &quot;(unsigned char)*p == CP437_NO_BREAK_SPACE&quot; is always false regardless of the values of its operands. This occurs as the logical second operand of &quot;||&quot;.
    1195 SKIP_WHITESPACE(p);
    1196 SAFECOPY(addr, p);
    1197 }
    1198 truncsp(addr);
    1199
    1200 /* Get destination user name */
    /netmail.cpp: 975 in sbbs_t::inetmail(const char *, const char *, int, smb_t *, smbmsg_t *, char **)()
    969 bprintf(text[InvalidNetMailAddr], p);
    970 continue;
    971 }
    972 while (at &gt; p &amp;&amp; *at &gt; &#39; &#39;)
    973 at--;
    974 p = at;
    &gt;&gt;&gt; CID 641201: (CONSTANT_EXPRESSION_RESULT) &gt;&gt;&gt; &quot;(unsigned char)*p == CP437_NO_BREAK_SPACE&quot; is always false regardless of the values of its operands. This occurs as the logical second operand of &quot;||&quot;.
    975 SKIP_WHITESPACE(p);
    976 uint16_t net_type = smb_netaddr_type(p);
    977 if (net_type != NET_INTERNET) {
    978 bprintf(text[InvalidNetMailAddr], p);
    979 break;
    980 }
    /netmail.cpp: 1202 in sbbs_t::inetmail(const char *, const char *, int, smb_t *, smbmsg_t *, char **)()
    1196 SAFECOPY(addr, p);
    1197 }
    1198 truncsp(addr);
    1199
    1200 /* Get destination user name */
    1201 p = rcpt_list[rcpt_count];
    &gt;&gt;&gt; CID 641201: (CONSTANT_EXPRESSION_RESULT) &gt;&gt;&gt; &quot;(unsigned char)*p == CP437_NO_BREAK_SPACE&quot; is always false regardless of the values of its operands. This occurs as the logical second operand of &quot;||&quot;.
    1202 SKIP_WHITESPACE(p);
    1203 SAFECOPY(name, p);
    1204 p = strrchr(name, &#39;&lt;&#39;);
    1205 if (!p)
    1206 p = strrchr(name, &#39;@&#39;);
    1207 if (!p)

    ** CID 641200: (CONSTANT_EXPRESSION_RESULT)
    /ftpsrvr.c: 1534 in ftpalias()
    /ftpsrvr.c: 1547 in ftpalias()


    _____________________________________________________________________________________________
    *** CID 641200: (CONSTANT_EXPRESSION_RESULT)
    /ftpsrvr.c: 1534 in ftpalias()
    1528
    1529 while (!feof(fp)) {
    1530 if (!fgets(line, sizeof(line), fp))
    1531 break;
    1532
    1533 p = line; /* alias */
    &gt;&gt;&gt; CID 641200: (CONSTANT_EXPRESSION_RESULT) &gt;&gt;&gt; &quot;(unsigned char)*p == CP437_NO_BREAK_SPACE&quot; is always false regardless of the values of its operands. This occurs as the logical second operand of &quot;||&quot;.
    1534 SKIP_WHITESPACE(p);
    1535 if (*p == &#39;;&#39;) /* comment */
    1536 continue;
    1537
    1538 tp = p; /* terminator */
    1539 FIND_WHITESPACE(tp);
    /ftpsrvr.c: 1547 in ftpalias()
    1541 *tp = 0;
    1542
    1543 if (stricmp(p, alias)) /* Not a match */
    1544 continue;
    1545
    1546 p = tp + 1; /* filename */
    &gt;&gt;&gt; CID 641200: (CONSTANT_EXPRESSION_RESULT) &gt;&gt;&gt; &quot;(unsigned char)*p == CP437_NO_BREAK_SPACE&quot; is always false regardless of the values of its operands. This occurs as the logical second operand of &quot;||&quot;.
    1547 SKIP_WHITESPACE(p);
    1548
    1549 tp = p; /* terminator */
    1550 FIND_WHITESPACE(tp);
    1551 if (*tp)
    1552 *tp = 0;

    </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_69679e3a9f33a_26617a2afbc97ad9ac59811--


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