aboutsummaryrefslogtreecommitdiff
path: root/system/multitail/d7d10f3b.patch
blob: d7e92da33d814c916d7e2824f0034b09062345f9 (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
104
105
106
107
108
109
From d7d10f3bce261074c116eba9f924b61f43777662 Mon Sep 17 00:00:00 2001
From: Sergei Trofimovich <slyich@gmail.com>
Date: Wed, 17 Nov 2021 07:58:02 +0000
Subject: [PATCH] multitail: 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:

    ui.c:1167:71: error: format not a string literal and no format arguments [-Werror=format-security]
     1167 |                                 mvwprintw(mywin -> win, 4 + loop, 42, dummy);
          |                                                                       ^~~~~

Let's wrap all the missing places with "%s" format.
---
 mt.c          | 12 +++---------
 stripstring.c |  2 +-
 term.c        |  4 ++--
 ui.c          |  4 ++--
 4 files changed, 8 insertions(+), 14 deletions(-)

diff --git a/mt.c b/mt.c
index 83c9e0a..f653919 100644
--- a/mt.c
+++ b/mt.c
@@ -1459,14 +1459,8 @@ void update_statusline(NEWWIN *status, int win_nr, proginfo *cur)
 				else
 				{
 					cur_len = 13;
-					/* is this trick still neccessary as I moved from off_t to off64_t? */
-#if 0
-					/* this trick is because on MacOS X 'off_t' is specified as a 64 bit integer */
-#endif
-					if (sizeof(off64_t) == 8)
-						mvwprintw(status -> win, 0, win_width - (strlen(timestamp) + cur_len), "%10lld - %s", fsize, timestamp);
-					else
-						mvwprintw(status -> win, 0, win_width - (strlen(timestamp) + cur_len), "%10ld - %s", fsize, timestamp);
+					/* Accomodate for both 32-bit and 64-bit off_t. */
+					mvwprintw(status -> win, 0, win_width - (strlen(timestamp) + cur_len), "%10lld - %s", (long long)fsize, timestamp);
 				}
 
 				total_info_len = statusline_len + cur_len;
@@ -1743,7 +1737,7 @@ void create_windows(void)
 		menu_win = mynewwin(max_y, max_x, 0, 0);
 		werase(menu_win -> win);
 
-		wprintw(menu_win -> win, version_str);
+		wprintw(menu_win -> win, "%s", version_str);
 		wprintw(menu_win -> win, "\n\n");
 
 		wprintw(menu_win -> win, "%s\n", F1);
diff --git a/stripstring.c b/stripstring.c
index 95bfd70..4e7acad 100644
--- a/stripstring.c
+++ b/stripstring.c
@@ -154,7 +154,7 @@ int edit_strippers(void)
 		memset(linebuf, ' ', sizeof(linebuf) - 1);
 		linebuf[sizeof(linebuf) - 1] = 0x00;
 		for(loop=4; loop<22; loop++)
-			mvwprintw(mywin -> win, loop, 1, linebuf);
+			mvwprintw(mywin -> win, loop, 1, "%s", linebuf);
 
 		/* display them lines */
 		for(loop=0; loop<cur -> n_strip; loop++)
diff --git a/term.c b/term.c
index a0f1fc0..646f9ea 100644
--- a/term.c
+++ b/term.c
@@ -159,7 +159,7 @@ char * edit_string(NEWWIN *win, int win_y, int win_x, int win_width, int max_wid
 		string[copy_len] = 0x00;
 
 		str_pos = dummy;
-		mvwprintw(win -> win, win_y, win_x, &string[dummy]);
+		mvwprintw(win -> win, win_y, win_x, "%s", &string[dummy]);
 		x = strlen(string) - dummy;
 	}
 	else
@@ -608,7 +608,7 @@ void escape_print(NEWWIN *win, int y, int x, char *str)
 void win_header(NEWWIN *win, char *str)
 {
 	wattron(win -> win, A_BOLD);
-	mvwprintw(win -> win, 1, 2, str);
+	mvwprintw(win -> win, 1, 2, "%s", str);
 	wattroff(win -> win, A_BOLD);
 }
 
diff --git a/ui.c b/ui.c
index e987a51..f494946 100644
--- a/ui.c
+++ b/ui.c
@@ -1085,7 +1085,7 @@ int toggle_colors(void)
 
 			dummy = mystrdup(cur -> filename);
 			dummy[min(strlen(dummy), 40)] = 0x00;
-			mvwprintw(mywin -> win, 3, 1, dummy);
+			mvwprintw(mywin -> win, 3, 1, "%s", dummy);
 
 			col = ask_colors(mywin, 4, cur -> cdef.colorize, &cur -> cdef.field_nr, &cur -> cdef.field_del, &cur -> cdef.color_schemes, &cur -> cdef.attributes, &cur -> cdef.term_emul);
 			if (col != (char)-1)
@@ -1164,7 +1164,7 @@ int edit_regexp(void)
 				char dummy[18];
 				strncpy(dummy, (cur -> pre)[loop].cmd, min(17, strlen((cur -> pre)[loop].cmd)));
 				dummy[17]=0x00;
-				mvwprintw(mywin -> win, 4 + loop, 42, dummy);
+				mvwprintw(mywin -> win, 4 + loop, 42, "%s", dummy);
 				wmove(mywin -> win, 4 + loop, 41);
 			}
 			if (loop == cur_re)