From d64ed2a346e9034068f2e43cd42b0eaeb8c232b8 Mon Sep 17 00:00:00 2001 From: Qwei Date: Tue, 8 Mar 2022 08:44:28 +0800 Subject: [PATCH] Fix compiler error for option -Werror=format-security After ncurses upgrade to 6.3, it introduces a format-security compile error. To fix it, a format literal string is added. Reference: https://gitee.com/src-openeuler/gcc/issues/I4W7ZB Signed-off-by: Qwei (cherry picked from commit 8f28c7fb9a82913fd4406df3fa87d47964428195) --- 0001-fix-Werror-format-security-error.patch | 88 +++++++++++++++++++++ gdisk.spec | 7 +- 2 files changed, 94 insertions(+), 1 deletion(-) create mode 100644 0001-fix-Werror-format-security-error.patch diff --git a/0001-fix-Werror-format-security-error.patch b/0001-fix-Werror-format-security-error.patch new file mode 100644 index 0000000..11831be --- /dev/null +++ b/0001-fix-Werror-format-security-error.patch @@ -0,0 +1,88 @@ +Subject: fix compiler error for option -Werror=format-security + +After ncurses upgrade to 6.3, it introduces a format-security +compile error. +To fix it, a format literal string is added. + +Reference: https://gitee.com/src-openeuler/gcc/issues/I4W7ZB + +Signed-off-by: Wei, Qiang + +--- +diff --git a/gptcurses.cc b/gptcurses.cc +index 1fbaad2..b9402cd 100644 +--- a/gptcurses.cc ++++ b/gptcurses.cc +@@ -239,22 +239,22 @@ Space* GPTDataCurses::ShowSpace(int spaceNum, int lineNum) { + ClearLine(lineNum); + if (space->partNum == -1) { // space is empty + move(lineNum, 12); +- printw(BytesToIeee((space->lastLBA - space->firstLBA + 1), blockSize).c_str()); ++ printw("%s", BytesToIeee((space->lastLBA - space->firstLBA + 1), blockSize).c_str()); + move(lineNum, 24); + printw("free space"); + } else { // space holds a partition + move(lineNum, 3); + printw("%d", space->partNum + 1); + move(lineNum, 12); +- printw(BytesToIeee((space->lastLBA - space->firstLBA + 1), blockSize).c_str()); ++ printw("%s", BytesToIeee((space->lastLBA - space->firstLBA + 1), blockSize).c_str()); + move(lineNum, 24); +- printw(space->origPart->GetTypeName().c_str()); ++ printw("%s", space->origPart->GetTypeName().c_str()); + move(lineNum, 50); + #ifdef USE_UTF16 + space->origPart->GetDescription().extract(0, 39, temp, 39); + printw(temp); + #else +- printw(space->origPart->GetDescription().c_str()); ++ printw("%s", space->origPart->GetDescription().c_str()); + #endif + } // if/else + } // if +@@ -271,10 +271,10 @@ int GPTDataCurses::DisplayParts(int selected) { + + move(lineNum++, 0); + theLine = "Part. # Size Partition Type Partition Name"; +- printw(theLine.c_str()); ++ printw("%s", theLine.c_str()); + move(lineNum++, 0); + theLine = "----------------------------------------------------------------"; +- printw(theLine.c_str()); ++ printw("%s", theLine.c_str()); + numToShow = LINES - RESERVED_TOP - RESERVED_BOTTOM; + pageNum = selected / numToShow; + for (i = pageNum * numToShow; i <= (pageNum + 1) * numToShow - 1; i++) { +@@ -636,7 +636,7 @@ void GPTDataCurses::DisplayOptions(char selectedKey) { + } // if/else + } // for + move(LINES - 1, (COLS - optionDesc.length()) / 2); +- printw(optionDesc.c_str()); ++ printw("%s", optionDesc.c_str()); + currentKey = selectedKey; + } // if + } // GPTDataCurses::DisplayOptions() +@@ -748,11 +748,11 @@ void GPTDataCurses::DrawMenu(void) { + + clear(); + move(0, (COLS - title.length()) / 2); +- printw(title.c_str()); ++ printw("%s", title.c_str()); + move(2, (COLS - drive.length()) / 2); +- printw(drive.c_str()); ++ printw("%s", drive.c_str()); + move(3, (COLS - size.str().length()) / 2); +- printw(size.str().c_str()); ++ printw("%s", size.str().c_str()); + DisplayParts(currentSpaceNum); + } // DrawMenu + +@@ -802,7 +802,7 @@ void PromptToContinue(void) { + void Report(string theText) { + clear(); + move(0, 0); +- printw(theText.c_str()); ++ printw("%s", theText.c_str()); + move(LINES - 2, (COLS - 29) / 2); + printw("Press any key to continue...."); + cbreak(); diff --git a/gdisk.spec b/gdisk.spec index 2de5ed7..2a2cfbf 100644 --- a/gdisk.spec +++ b/gdisk.spec @@ -1,6 +1,6 @@ Name: gdisk Version: 1.0.8 -Release: 1 +Release: 2 Summary: GPT fdisk(consisting of the gdisk,sgdisk,cgdisk) is a set of text-mode partitioning tools License: GPLv2 URL: http://www.rodsbooks.com/gdisk @@ -8,6 +8,8 @@ Source0: http://downloads.sourceforge.net/gptfdisk/gptfdisk-%{version}.tar.gz BuildRequires:ncurses-devel util-linux-devel gcc-c++ popt-devel +Patch9000: 0001-fix-Werror-format-security-error.patch + %description GPT fdisk(consisting of the gdisk,sgdisk,cgdisk) is a set of text-mode partitioning tools. rather than on the older MBR partition tables. @@ -48,6 +50,9 @@ install -Dp -m 0644 fixparts.8 %{buildroot}%{_mandir}/man8/fixparts.8 %{_mandir}/man8/* %changelog +* Tue Mar 8 02:11:35 UTC 2022 - Qiang Wei - 1.0.8-2 +- Fix compiler error for option -Werror=format-security + * Wed Nov 17 2021 Wenchao Hao - 1.0.8-1 - update to gptfdisk-1.0.8 -- Gitee