Source: gdisk
Version: 1.0.8-3
Severity: serious
Tags: ftbfs
gdisk fails to build from source in unstable on amd64. A build ends as
follows:
| x86_64-linux-gnu-g++ -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=.
-fstack-protector-strong -Wformat -Werror=format-security -Wall
-D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -c -o gptcurses.o
gptcurses.cc
| gptcurses.cc: In member function ‘Space* GPTDataCurses::ShowSpace(int, int)’:
| gptcurses.cc:242:87: error: format not a string literal and no format
arguments [-Werror=format-security]
| 242 | printw(BytesToIeee((space->lastLBA - space->firstLBA + 1),
blockSize).c_str());
| |
^
| gptcurses.cc:249:87: error: format not a string literal and no format
arguments [-Werror=format-security]
| 249 | printw(BytesToIeee((space->lastLBA - space->firstLBA + 1),
blockSize).c_str());
| |
^
| gptcurses.cc:251:55: error: format not a string literal and no format
arguments [-Werror=format-security]
| 251 | printw(space->origPart->GetTypeName().c_str());
| | ^
| gptcurses.cc:257:58: error: format not a string literal and no format
arguments [-Werror=format-security]
| 257 | printw(space->origPart->GetDescription().c_str());
| | ^
| gptcurses.cc: In member function ‘int GPTDataCurses::DisplayParts(int)’:
| gptcurses.cc:274:26: error: format not a string literal and no format
arguments [-Werror=format-security]
| 274 | printw(theLine.c_str());
| | ^
| gptcurses.cc:277:26: error: format not a string literal and no format
arguments [-Werror=format-security]
| 277 | printw(theLine.c_str());
| | ^
| gptcurses.cc: In member function ‘void GPTDataCurses::ShowInfo(int)’:
| gptcurses.cc:336:29: warning: format ‘%lld’ expects argument of type ‘long
long int’, but argument 2 has type ‘uint64_t’ {aka ‘long unsigned int’}
[-Wformat=]
| 336 | printw("First sector: %lld (at %s)\n",
partitions[partNum].GetFirstLBA(),
| | ~~~^
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| | |
|
| | long long int
uint64_t {aka long unsigned int}
| | %ld
| gptcurses.cc:338:28: warning: format ‘%lld’ expects argument of type ‘long
long int’, but argument 2 has type ‘uint64_t’ {aka ‘long unsigned int’}
[-Wformat=]
| 338 | printw("Last sector: %lld (at %s)\n",
partitions[partNum].GetLastLBA(),
| | ~~~^
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| | |
|
| | long long int
uint64_t {aka long unsigned int}
| | %ld
| gptcurses.cc:341:31: warning: format ‘%lld’ expects argument of type ‘long
long int’, but argument 2 has type ‘uint64_t’ {aka ‘long unsigned int’}
[-Wformat=]
| 341 | printw("Partition size: %lld sectors (%s)\n", size,
BytesToIeee(size, blockSize).c_str());
| | ~~~^ ~~~~
| | | |
| | long long int uint64_t {aka long
unsigned int}
| | %ld
| gptcurses.cc:342:33: warning: format ‘%x’ expects argument of type ‘unsigned
int’, but argument 2 has type ‘uint64_t’ {aka ‘long unsigned int’} [-Wformat=]
| 342 | printw("Attribute flags: %016x\n",
partitions[partNum].GetAttributes().GetAttributes());
| | ~~~~^
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| | |
|
| | unsigned int
uint64_t {aka long unsigned int}
| | %016lx
| gptcurses.cc: In member function ‘void GPTDataCurses::MakeNewPart()’:
| gptcurses.cc:444:32: warning: format ‘%lld’ expects argument of type ‘long
long int’, but argument 2 has type ‘uint64_t’ {aka ‘long unsigned int’}
[-Wformat=]
| 444 | printw("First sector (%lld-%lld, default = %lld): ",
newFirstLBA, currentSpace->lastLBA, newFirstLBA);
| | ~~~^ ~~~~~~~~~~~
| | | |
| | long long int uint64_t
{aka long unsigned int}
| | %ld
| gptcurses.cc:444:37: warning: format ‘%lld’ expects argument of type ‘long
long int’, but argument 3 has type ‘uint64_t’ {aka ‘long unsigned int’}
[-Wformat=]
| 444 | printw("First sector (%lld-%lld, default = %lld): ",
newFirstLBA, currentSpace->lastLBA, newFirstLBA);
| | ~~~^
~~~~~~~~~~~~~~~~~~~~~
| | |
|
| | long long int
uint64_t {aka long unsigned int}
| | %ld
| gptcurses.cc:444:53: warning: format ‘%lld’ expects argument of type ‘long
long int’, but argument 4 has type ‘uint64_t’ {aka ‘long unsigned int’}
[-Wformat=]
| 444 | printw("First sector (%lld-%lld, default = %lld): ",
newFirstLBA, currentSpace->lastLBA, newFirstLBA);
| | ~~~^
~~~~~~~~~~~
| | |
|
| | long long int
uint64_t {aka long unsigned int}
| | %ld
| gptcurses.cc:455:56: warning: format ‘%lld’ expects argument of type ‘long
long int’, but argument 2 has type ‘uint64_t’ {aka ‘long unsigned int’}
[-Wformat=]
| 455 | printw("Size in sectors or {KMGTP} (default = %lld): ", size);
| | ~~~^ ~~~~
| | | |
| | |
uint64_t {aka long unsigned int}
| | long long int
| | %ld
| gptcurses.cc: In member function ‘void GPTDataCurses::DisplayOptions(char)’:
| gptcurses.cc:639:32: error: format not a string literal and no format
arguments [-Werror=format-security]
| 639 | printw(optionDesc.c_str());
| | ^
| gptcurses.cc: In member function ‘void GPTDataCurses::DrawMenu()’:
| gptcurses.cc:751:24: error: format not a string literal and no format
arguments [-Werror=format-security]
| 751 | printw(title.c_str());
| | ^
| gptcurses.cc:753:24: error: format not a string literal and no format
arguments [-Werror=format-security]
| 753 | printw(drive.c_str());
| | ^
| gptcurses.cc:755:29: error: format not a string literal and no format
arguments [-Werror=format-security]
| 755 | printw(size.str().c_str());
| | ^
| gptcurses.cc: In function ‘void Report(std::string)’:
| gptcurses.cc:805:26: error: format not a string literal and no format
arguments [-Werror=format-security]
| 805 | printw(theText.c_str());
| | ^
| cc1plus: some warnings being treated as errors
| make[2]: *** [<builtin>: gptcurses.o] Error 1
| make[2]: Leaving directory '/<<PKGBUILDDIR>>'
| dh_auto_build: error: make -j1 "INSTALL=install --strip-program=true"
CXX=x86_64-linux-gnu-g\+\+ returned exit code 2
| make[1]: *** [debian/rules:17: override_dh_auto_build] Error 25
| make[1]: Leaving directory '/<<PKGBUILDDIR>>'
| make: *** [debian/rules:30: binary] Error 2
| dpkg-buildpackage: error: debian/rules binary subprocess returned exit status
2
Very likely, this is due to the recent ncurses upload which improved
security annotations of function declarations.
Helmut