[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#997173: procinfo: FTBFS: procinfo.cpp:214:22: error: format not a string literal and no format arguments [-Werror=format-security]



Source: procinfo
Version: 1:2.0.304-5
Severity: serious
Justification: FTBFS
Tags: bookworm sid ftbfs

Hi,

During a rebuild of all packages in sid, your package failed to build
on amd64.


Relevant part (hopefully):
> g++ -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -pipe -Wall -Wdate-time -D_FORTIFY_SOURCE=2 procinfo.cpp -Wl,-z,relro -Wl,-z,now -s -lncurses -o procinfo
> In file included from procinfo.cpp:43:
> lib/routines.cpp: In function ‘const string humanizeBigNums(int64_t, uint32_t)’:
> lib/routines.cpp:265:32: warning: ISO C++17 does not allow ‘register’ storage class specifier [-Wregister]
>   265 |         const register int64_t absVal = llabs(val);
>       |                                ^~~~~~
> lib/routines.cpp: In function ‘const string humanizeBigNums(T, uint32_t)’:
> lib/routines.cpp:308:26: warning: ISO C++17 does not allow ‘register’ storage class specifier [-Wregister]
>   308 |         const register T absVal = fabs(val);
>       |                          ^~~~~~
> In file included from procinfo.cpp:44:
> lib/timeRoutines.cpp: In function ‘const timeDiff __time_rel(const time_t&, const time_t&)’:
> lib/timeRoutines.cpp:134:60: warning: narrowing conversion of ‘(uint32_t)result1.timeWDHMS::minutes’ from ‘uint32_t’ {aka ‘unsigned int’} to ‘int’ [-Wnarrowing]
>   134 |                 { tm_sec: result1.seconds, tm_min: result1.minutes, tm_hour: result1.hours,
>       |                                                    ~~~~~~~~^~~~~~~
> lib/timeRoutines.cpp:134:86: warning: narrowing conversion of ‘(uint32_t)result1.timeWDHMS::hours’ from ‘uint32_t’ {aka ‘unsigned int’} to ‘int’ [-Wnarrowing]
>   134 |                 { tm_sec: result1.seconds, tm_min: result1.minutes, tm_hour: result1.hours,
>       |                                                                              ~~~~~~~~^~~~~
> lib/timeRoutines.cpp:135:34: warning: narrowing conversion of ‘(uint32_t)result1.timeWDHMS::days’ from ‘uint32_t’ {aka ‘unsigned int’} to ‘int’ [-Wnarrowing]
>   135 |                 tm_wday: result1.days, tm_week: result1.weeks };
>       |                          ~~~~~~~~^~~~
> lib/timeRoutines.cpp:135:57: warning: narrowing conversion of ‘(uint32_t)result1.timeWDHMS::weeks’ from ‘uint32_t’ {aka ‘unsigned int’} to ‘int’ [-Wnarrowing]
>   135 |                 tm_wday: result1.days, tm_week: result1.weeks };
>       |                                                 ~~~~~~~~^~~~~
> lib/timeRoutines.cpp: In function ‘const timeDiff __time_rel(const double&, const double&)’:
> lib/timeRoutines.cpp:141:60: warning: narrowing conversion of ‘(uint32_t)result1.timeWDHMS::minutes’ from ‘uint32_t’ {aka ‘unsigned int’} to ‘int’ [-Wnarrowing]
>   141 |                 { tm_sec: result1.seconds, tm_min: result1.minutes, tm_hour: result1.hours,
>       |                                                    ~~~~~~~~^~~~~~~
> lib/timeRoutines.cpp:141:86: warning: narrowing conversion of ‘(uint32_t)result1.timeWDHMS::hours’ from ‘uint32_t’ {aka ‘unsigned int’} to ‘int’ [-Wnarrowing]
>   141 |                 { tm_sec: result1.seconds, tm_min: result1.minutes, tm_hour: result1.hours,
>       |                                                                              ~~~~~~~~^~~~~
> lib/timeRoutines.cpp:142:34: warning: narrowing conversion of ‘(uint32_t)result1.timeWDHMS::days’ from ‘uint32_t’ {aka ‘unsigned int’} to ‘int’ [-Wnarrowing]
>   142 |                 tm_wday: result1.days, tm_week: result1.weeks };
>       |                          ~~~~~~~~^~~~
> lib/timeRoutines.cpp:142:57: warning: narrowing conversion of ‘(uint32_t)result1.timeWDHMS::weeks’ from ‘uint32_t’ {aka ‘unsigned int’} to ‘int’ [-Wnarrowing]
>   142 |                 tm_wday: result1.days, tm_week: result1.weeks };
>       |                                                 ~~~~~~~~^~~~~
> lib/timeRoutines.cpp: In function ‘const timeDiff structTM2structTD(tm)’:
> lib/timeRoutines.cpp:185:31: warning: narrowing conversion of ‘input.tm::tm_sec’ from ‘int’ to ‘double’ [-Wnarrowing]
>   185 |                 tm_sec: input.tm_sec, tm_min: input.tm_min, tm_hour: input.tm_hour,
>       |                         ~~~~~~^~~~~~
> In file included from procinfo.cpp:45:
> lib/prettyPrint.cpp: In function ‘int print(const char*, ...)’:
> lib/prettyPrint.cpp:42:32: warning: ‘int vwprintw(WINDOW*, const char*, __va_list_tag*)’ is deprecated [-Wdeprecated-declarations]
>    42 |                 code = vwprintw(stdscr, fmt, argp);
>       |                        ~~~~~~~~^~~~~~~~~~~~~~~~~~~
> In file included from procinfo.cpp:39:
> /usr/include/curses.h:812:28: note: declared here
>   812 | extern NCURSES_EXPORT(int) vwprintw (WINDOW *, const char *, va_list) GCC_DEPRECATED(use vw_printw)     /* implemented */
>       |                            ^~~~~~~~
> procinfo.cpp: In function ‘int mainLoop(bool, bool, bool, bool, bool, bool, bool, bool, bool, uint32_t, const std::vector<IRQ>&)’:
> procinfo.cpp:214:22: error: format not a string literal and no format arguments [-Werror=format-security]
>   214 |                 print(exceptionMessage.c_str());
>       |                 ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
> In file included from procinfo.cpp:125:
> diskStats.cpp: In function ‘std::vector<std::vector<std::__cxx11::basic_string<char> > > renderDiskStats(bool, bool, bool, double, const std::vector<diskStat_t>&)’:
> diskStats.cpp:136:41: warning: ‘__builtin___snprintf_chk’ output truncated before the last format character [-Wformat-truncation=]
>   136 |         snprintf(output, 39, "%-4s %-34s", diskStat.name.c_str(), rendered.c_str());
>       |                                         ^
> In file included from /usr/include/stdio.h:866,
>                  from /usr/include/c++/11/cstdio:42,
>                  from /usr/include/c++/11/ext/string_conversions.h:43,
>                  from /usr/include/c++/11/bits/basic_string.h:6606,
>                  from /usr/include/c++/11/string:55,
>                  from /usr/include/c++/11/bits/locale_classes.h:40,
>                  from /usr/include/c++/11/bits/ios_base.h:41,
>                  from /usr/include/c++/11/ios:42,
>                  from /usr/include/c++/11/ostream:38,
>                  from /usr/include/c++/11/iostream:39,
>                  from procinfo.cpp:18:
> /usr/include/x86_64-linux-gnu/bits/stdio2.h:70:35: note: ‘__builtin___snprintf_chk’ output 40 or more bytes into a destination of size 39
>    70 |   return __builtin___snprintf_chk (__s, __n, __USE_FORTIFY_LEVEL - 1,
>       |          ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>    71 |                                    __bos (__s), __fmt, __va_arg_pack ());
>       |                                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> In file included from procinfo.cpp:65:
> rendercpupagestat.cpp: In function ‘std::vector<std::vector<std::__cxx11::basic_string<char> > > renderCPUandPageStats(bool, bool, const double&, const uint64_t&, const uint64_t&, const std::vector<long unsigned int>&, const uint64_t&, const std::vector<long unsigned int>&)’:
> rendercpupagestat.cpp:18:52: warning: ‘__builtin___snprintf_chk’ output truncated before the last format character [-Wformat-truncation=]
>    18 |                 snprintf(fractionalSeconds, 2, "%2d", getFrac(cpuDiff / USER_HZ, 100));
>       |                                                    ^
> In file included from /usr/include/stdio.h:866,
>                  from /usr/include/c++/11/cstdio:42,
>                  from /usr/include/c++/11/ext/string_conversions.h:43,
>                  from /usr/include/c++/11/bits/basic_string.h:6606,
>                  from /usr/include/c++/11/string:55,
>                  from /usr/include/c++/11/bits/locale_classes.h:40,
>                  from /usr/include/c++/11/bits/ios_base.h:41,
>                  from /usr/include/c++/11/ios:42,
>                  from /usr/include/c++/11/ostream:38,
>                  from /usr/include/c++/11/iostream:39,
>                  from procinfo.cpp:18:
> /usr/include/x86_64-linux-gnu/bits/stdio2.h:70:35: note: ‘__builtin___snprintf_chk’ output 3 bytes into a destination of size 2
>    70 |   return __builtin___snprintf_chk (__s, __n, __USE_FORTIFY_LEVEL - 1,
>       |          ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>    71 |                                    __bos (__s), __fmt, __va_arg_pack ());
>       |                                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> cc1plus: some warnings being treated as errors
> make[1]: *** [Makefile:47: procinfo] Error 1


The full build log is available from:
http://qa-logs.debian.net/2021/10/23/procinfo_2.0.304-5_unstable.log

A list of current common problems and possible solutions is available at
http://wiki.debian.org/qa.debian.org/FTBFS . You're welcome to contribute!

If you reassign this bug to another package, please marking it as 'affects'-ing
this package. See https://www.debian.org/Bugs/server-control#affects

If you fail to reproduce this, please provide a build log and diff it with mine
so that we can identify if something relevant changed in the meantime.


Reply to: