• INN 2.7.1 Compile warning in cnfs.c

    From Jesse Rehmer@21:1/5 to All on Fri May 12 23:35:19 2023
    Spinning up a new server to convert tradspool to CNFS and notice the following compile time warning when building INN 2.7.1. I do not recall seeing this when building 2.7.0 (but it's been awhile). Running "make tests" results in all tests successfully passing.

    Build environment:

    [news@gatekeeper ~/src/inn-2.7.1]$ uname -ar
    FreeBSD gatekeeper 13.2-RELEASE FreeBSD 13.2-RELEASE releng/13.2-n254617-525ecfdad597 GENERIC amd64

    [news@gatekeeper ~/src/inn-2.7.1]$ gcc --version
    gcc (FreeBSD Ports Collection) 12.2.0
    Copyright (C) 2022 Free Software Foundation, Inc.
    This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

    Configure command:

    ./configure --mandir=/usr/local/man --prefix=/usr/local/news --with-spool-dir=/usr/local/news/spool --with-log-dir=/var/log/news --with-tmp-dir=/usr/local/news/tmp --sysconfdir=/usr/local/news/etc --with-run-dir=/usr/local/news/run --with-db-dir=/usr/local/news/db --datarootdir=/usr/local/news/share --with-perl --with-blacklist --with-sqlite3=/usr/local --with-bdb --with-bdb-lib=/usr/local/lib/db18 --with-bdb-include=/usr/local/include/db18 --without-krb5 --enable-keywords --enable-largefiles --with-python --with-openssl=/usr

    Warning exhibited:

    ../libtool --mode=compile gcc -g -O2 -fPIE -D_FORTIFY_SOURCE=2 -fstack-protector-strong -I../include -I. -I/usr/local/include/db18 -I/usr/local/include -c -o cnfs/cnfs.o cnfs/cnfs.c
    libtool: compile: gcc -g -O2 -D_FORTIFY_SOURCE=2 -fstack-protector-strong -I../include -I. -I/usr/local/include/db18 -I/usr/local/include -c cnfs/cnfs.c
    -fPIC -DPIC -o cnfs/.libs/cnfs.o
    In function 'CNFS_setcurrent',
    inlined from 'cnfs_init' at cnfs/cnfs.c:1211:17:
    cnfs/cnfs.c:814:13: warning: 'strncpy' specified bound 16 equals destination size [-Wstringop-truncation]
    814 | strncpy(cycbuff->metaname, metacycbuff->name, CNFSNASIZ);
    | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From The Doctor@21:1/5 to jesse.rehmer@blueworldhosting.com on Sat May 13 05:59:15 2023
    In article <u3mifn$1mpp$1@nnrp.usenet.blueworldhosting.com>,
    Jesse Rehmer <jesse.rehmer@blueworldhosting.com> wrote:
    Spinning up a new server to convert tradspool to CNFS and notice the following >compile time warning when building INN 2.7.1. I do not recall seeing this when >building 2.7.0 (but it's been awhile). Running "make tests" results in all >tests successfully passing.

    Build environment:

    [news@gatekeeper ~/src/inn-2.7.1]$ uname -ar
    FreeBSD gatekeeper 13.2-RELEASE FreeBSD 13.2-RELEASE >releng/13.2-n254617-525ecfdad597 GENERIC amd64

    [news@gatekeeper ~/src/inn-2.7.1]$ gcc --version
    gcc (FreeBSD Ports Collection) 12.2.0
    Copyright (C) 2022 Free Software Foundation, Inc.
    This is free software; see the source for copying conditions. There is NO >warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

    Configure command:

    ./configure --mandir=/usr/local/man --prefix=/usr/local/news >--with-spool-dir=/usr/local/news/spool --with-log-dir=/var/log/news >--with-tmp-dir=/usr/local/news/tmp --sysconfdir=/usr/local/news/etc >--with-run-dir=/usr/local/news/run --with-db-dir=/usr/local/news/db >--datarootdir=/usr/local/news/share --with-perl --with-blacklist >--with-sqlite3=/usr/local --with-bdb --with-bdb-lib=/usr/local/lib/db18 >--with-bdb-include=/usr/local/include/db18 --without-krb5 --enable-keywords >--enable-largefiles --with-python --with-openssl=/usr

    Warning exhibited:

    ../libtool --mode=compile gcc -g -O2 -fPIE -D_FORTIFY_SOURCE=2 >-fstack-protector-strong -I../include -I. -I/usr/local/include/db18 >-I/usr/local/include -c -o cnfs/cnfs.o cnfs/cnfs.c
    libtool: compile: gcc -g -O2 -D_FORTIFY_SOURCE=2 -fstack-protector-strong >-I../include -I. -I/usr/local/include/db18 -I/usr/local/include -c cnfs/cnfs.c
    -fPIC -DPIC -o cnfs/.libs/cnfs.o
    In function 'CNFS_setcurrent',
    inlined from 'cnfs_init' at cnfs/cnfs.c:1211:17:
    cnfs/cnfs.c:814:13: warning: 'strncpy' specified bound 16 equals destination >size [-Wstringop-truncation]
    814 | strncpy(cycbuff->metaname, metacycbuff->name, CNFSNASIZ);
    | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Why are you not using clang?
    --
    Member - Liberal International This is doctor@nk.ca Ici doctor@nk.ca
    Yahweh, King & country!Never Satan President Republic!Beware AntiChrist rising! Look at Psalms 14 and 53 on Atheism https://www.empire.kred/ROOTNK?t=94a1f39b Alberta 29 May 2023 boot out the UCP and the NDP! Beware https://mindspring.com

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?Q?Julien_=c3=89LIE?=@21:1/5 to All on Sun May 14 21:44:49 2023
    Hi Jesse,

    Spinning up a new server to convert tradspool to CNFS and notice the following
    compile time warning when building INN 2.7.1. I do not recall seeing this when
    building 2.7.0 (but it's been awhile).

    Warning exhibited:

    cnfs/cnfs.c:814:13: warning: 'strncpy' specified bound 16 equals destination size [-Wstringop-truncation]
    814 | strncpy(cycbuff->metaname, metacycbuff->name, CNFSNASIZ);
    | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    This specific warning should have been ignored, and not triggered by
    your gcc 12.2.0. At least, there is no reason why it was not seen in
    INN 2.7.0, which similarly has it ignored. (Unless of course __GNUC__
    is no longer set in this version from FreeBSD.)


    #if __GNUC__ > 7
    # pragma GCC diagnostic ignored "-Wstringop-truncation"
    #endif
    /* Don't use sprintf() or strlcat() directly...
    * The terminating '\0' causes grief. */
    strncpy(cycbuff->metaname, metacycbuff->name, CNFSNASIZ);


    The code works fine so you should not worry about it.

    There are some diagnostics ignored sometimes in the source code, but
    that's OK. (A rewrite of such parts of code is welcome of course to get
    rid of the warning. In this case, probably switching to use memcpy().)

    --
    Julien ÉLIE

    « Il n'y a que le premier pas qui coûte. » (Mme du Deffand)

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)