summaryrefslogtreecommitdiff
path: root/media-sound/vimpc/files/vimpc-0.09.2-wformat-security.patch
blob: 2d8c09e416e5b90b94cd9a6ddf79e1021f4cc3ee (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
https://github.com/boysetsfrog/vimpc/commit/055ecdce0720fdfc9ec2528c520b6c33da36271b

From 055ecdce0720fdfc9ec2528c520b6c33da36271b Mon Sep 17 00:00:00 2001
From: Sergei Trofimovich <slyich@gmail.com>
Date: Wed, 3 Nov 2021 08:25:58 +0000
Subject: [PATCH] vimpc: always use "%s"-style format for printf()-style
 functions

`ncuses-6.3` added printf-style function attributes and now makes
it easier to catch cases when user input is used in palce of format
string when built with CFLAGS=-Werror=format-security:

    src/window/listwindow.cpp:120:16:
      error: format not a string literal and no format arguments [-Werror=format-security]
      120 |       mvwprintw(window, line, 0, BlankLine.c_str());
          |       ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Let's wrap all the missing places with "%s" format.
--- a/src/screen.cpp
+++ b/src/screen.cpp
@@ -1489,7 +1489,7 @@ void Screen::ClearStatus() const
       wattron(statusWindow_, A_REVERSE);
    }
 
-   mvwprintw(statusWindow_, 0, 0, BlankLine.c_str());
+   mvwprintw(statusWindow_, 0, 0, "%s", BlankLine.c_str());
 
    if (settings_.Get(Setting::ColourEnabled) == true)
    {
@@ -1516,7 +1516,7 @@ void Screen::UpdateTabWindow() const
       wattron(tabWindow_, COLOR_PAIR(settings_.colours.TabWindow));
    }
 
-   mvwprintw(tabWindow_, 0, 0, BlankLine.c_str());
+   mvwprintw(tabWindow_, 0, 0, "%s", BlankLine.c_str());
    wmove(tabWindow_, 0, 0);
 
    std::string name   = "";
--- a/src/window/directorywindow.cpp
+++ b/src/window/directorywindow.cpp
@@ -220,8 +220,8 @@ void DirectoryWindow::Print(uint32_t line) const
 
       wattron(window, A_BOLD);
       std::string const Directory = "/" + directory_.CurrentDirectory();
-      mvwprintw(window, line, 0, BlankLine.c_str());
-      mvwprintw(window, line, 1, Directory.c_str());
+      mvwprintw(window, line, 0, "%s", BlankLine.c_str());
+      mvwprintw(window, line, 1, "%s", Directory.c_str());
       wattroff(window, A_BOLD);
 
       if (settings_.Get(Setting::ColourEnabled) == true)
@@ -250,7 +250,7 @@ void DirectoryWindow::Print(uint32_t line) const
             wattron(window, A_REVERSE);
          }
 
-         mvwprintw(window, line, 0, BlankLine.c_str());
+         mvwprintw(window, line, 0, "%s", BlankLine.c_str());
 
          uint8_t expandCol = 1;
 
@@ -276,7 +276,7 @@ void DirectoryWindow::Print(uint32_t line) const
       }
       else
       {
-         mvwprintw(window, line, 0, BlankLine.c_str());
+         mvwprintw(window, line, 0, "%s", BlankLine.c_str());
       }
    }
 }
--- a/src/window/help.cpp
+++ b/src/window/help.cpp
@@ -64,7 +64,7 @@ void HelpWindow::Print(uint32_t line) const
    WINDOW * window = N_WINDOW();
 
    std::string const BlankLine(Columns(), ' ');
-   mvwprintw(window, line, 0, BlankLine.c_str());
+   mvwprintw(window, line, 0, "%s", BlankLine.c_str());
    wmove(window, line, 0);
 
    if ((FirstLine() + line) < help_.Size())
--- a/src/window/listwindow.cpp
+++ b/src/window/listwindow.cpp
@@ -117,7 +117,7 @@ void ListWindow::Print(uint32_t line) const
    else
    {
       std::string const BlankLine(Columns(), ' ');
-      mvwprintw(window, line, 0, BlankLine.c_str());
+      mvwprintw(window, line, 0, "%s", BlankLine.c_str());
    }
 #else
    SelectWindow::Print(line);
--- a/src/window/lyricswindow.cpp
+++ b/src/window/lyricswindow.cpp
@@ -61,7 +61,7 @@ void LyricsWindow::Print(uint32_t line) const
    WINDOW * window = N_WINDOW();
 
    std::string const BlankLine(Columns(), ' ');
-   mvwprintw(window, line, 0, BlankLine.c_str());
+   mvwprintw(window, line, 0, "%s", BlankLine.c_str());
    wmove(window, line, 0);
 
    if ((FirstLine() == 0) && (line == 0))