Gentoo Archives: gentoo-commits

From: David Seifert <soap@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: media-gfx/tgif/files/, media-gfx/tgif/
Date: Mon, 25 Jan 2016 09:52:27
Message-Id: 1453715526.a83a4636502a9e22e64053a90a010cafc376c713.soap@gentoo
1 commit: a83a4636502a9e22e64053a90a010cafc376c713
2 Author: David Seifert <soap <AT> gentoo <DOT> org>
3 AuthorDate: Mon Jan 25 09:32:29 2016 +0000
4 Commit: David Seifert <soap <AT> gentoo <DOT> org>
5 CommitDate: Mon Jan 25 09:52:06 2016 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a83a4636
7
8 media-gfx/tgif: Fix -Werror=format-security errors
9
10 Gentoo-Bug: 542132
11 * EAPI=6
12 * Fixed QA implicit declarations
13
14 Package-Manager: portage-2.2.27
15
16 .../tgif/files/tgif-4.2.5-wformat-security.patch | 500 +++++++++++++++++++++
17 media-gfx/tgif/tgif-4.2.5-r1.ebuild | 47 ++
18 2 files changed, 547 insertions(+)
19
20 diff --git a/media-gfx/tgif/files/tgif-4.2.5-wformat-security.patch b/media-gfx/tgif/files/tgif-4.2.5-wformat-security.patch
21 new file mode 100644
22 index 0000000..5e16cb1
23 --- /dev/null
24 +++ b/media-gfx/tgif/files/tgif-4.2.5-wformat-security.patch
25 @@ -0,0 +1,500 @@
26 +Fix errors caused by -Wformat -Werror=format-security
27 +https://bugs.gentoo.org/show_bug.cgi?id=542132
28 +
29 +--- tgif-QPL-4.2.5/arc.c
30 ++++ tgif-QPL-4.2.5/arc.c
31 +@@ -2041,7 +2041,7 @@
32 + }
33 +
34 + if (dir == ARC_CCW && angle2 < 0) {
35 +- sprintf(gszMsgBox, TgLoadString(STID_WARN_INCONSIST_ARC_DIR));
36 ++ sprintf(gszMsgBox, "%s", TgLoadString(STID_WARN_INCONSIST_ARC_DIR));
37 + if (PRTGIF) {
38 + fprintf(stderr, "%s\n", gszMsgBox);
39 + } else {
40 +@@ -2050,7 +2050,7 @@
41 + SetFileModified(TRUE);
42 + dir = ARC_CW;
43 + } else if (dir == ARC_CW && angle2 > 0) {
44 +- sprintf(gszMsgBox, TgLoadString(STID_WARN_INCONSIST_ARC_DIR));
45 ++ sprintf(gszMsgBox, "%s", TgLoadString(STID_WARN_INCONSIST_ARC_DIR));
46 + if (PRTGIF) {
47 + fprintf(stderr, "%s\n", gszMsgBox);
48 + } else {
49 +--- tgif-QPL-4.2.5/auxtext.c
50 ++++ tgif-QPL-4.2.5/auxtext.c
51 +@@ -113,7 +113,7 @@
52 + if (canvasFontDoubleByte) {
53 + sprintf(gszMsgBox, TgLoadString(STID_INPUT_OCTAL_STR), "\\244\\244");
54 + } else {
55 +- sprintf(gszMsgBox, TgLoadString(STID_INPUT_STR));
56 ++ sprintf(gszMsgBox, "%s", TgLoadString(STID_INPUT_STR));
57 + }
58 + Dialog(gszMsgBox, TgLoadCachedString(CSTID_DLG_ACCEPT_CANCEL), szSpec);
59 + UtilTrimBlanks(szSpec);
60 +--- tgif-QPL-4.2.5/cutpaste.c
61 ++++ tgif-QPL-4.2.5/cutpaste.c
62 +@@ -200,7 +200,7 @@
63 + lastKeyOrBtnEvInfo.time);
64 + if (XGetSelectionOwner(mainDisplay, XA_PRIMARY) != mainWindow) {
65 + setselowner_failed = TRUE;
66 +- sprintf(gszMsgBox, TgLoadString(STID_CANT_ACQUIRE_X_SELECTION));
67 ++ sprintf(gszMsgBox, "%s", TgLoadString(STID_CANT_ACQUIRE_X_SELECTION));
68 + MsgBox(gszMsgBox, TOOL_NAME, INFO_MB);
69 + } else {
70 + startSelectionOwnershipTimeValid = TRUE;
71 +@@ -349,10 +349,10 @@
72 + MsgBox(gszMsgBox, TOOL_NAME, INFO_MB);
73 + } else {
74 + if (!WriteBufToCutBuffer(cut_buffer, stat.st_size, FALSE, FALSE, NULL)) {
75 +- sprintf(gszMsgBox, TgLoadString(STID_COPY_FAILED_OBJ_MAYBE_TOO_BIG));
76 ++ sprintf(gszMsgBox, "%s", TgLoadString(STID_COPY_FAILED_OBJ_MAYBE_TOO_BIG));
77 + MsgBox(gszMsgBox, TOOL_NAME, INFO_MB);
78 + } else {
79 +- sprintf(gszMsgBox, TgLoadString(STID_COPY_BUFFER_UPDATED));
80 ++ sprintf(gszMsgBox, "%s", TgLoadString(STID_COPY_BUFFER_UPDATED));
81 + Msg(gszMsgBox);
82 + }
83 + }
84 +--- tgif-QPL-4.2.5/drawing.c
85 ++++ tgif-QPL-4.2.5/drawing.c
86 +@@ -3339,7 +3339,7 @@
87 +
88 + SaveStatusStrings();
89 + if (*attr_ptr->attr_name.s == '\0') {
90 +- sprintf(title, TgLoadString(STID_EDIT_UNNAME_ATTR_DOTS));
91 ++ sprintf(title, "%s", TgLoadString(STID_EDIT_UNNAME_ATTR_DOTS));
92 + sprintf(cmd, gszEditorCmd, title, tfi.tmp_fname);
93 + sprintf(gszMsgBox, TgLoadString(STID_EDIT_UNNAME_ATTR_WITH_CMD), cmd);
94 + } else {
95 +@@ -3460,7 +3460,7 @@
96 + }
97 + SaveStatusStrings();
98 + if (*attr_ptr->attr_name.s == '\0') {
99 +- sprintf(title, TgLoadString(STID_EDIT_UNNAME_ATTR_DOTS));
100 ++ sprintf(title, "%s", TgLoadString(STID_EDIT_UNNAME_ATTR_DOTS));
101 + sprintf(cmd, gszEditorCmd, title, tfi.tmp_fname);
102 + sprintf(gszMsgBox, TgLoadString(STID_EDIT_UNNAME_ATTR_WITH_CMD), cmd);
103 + } else {
104 +--- tgif-QPL-4.2.5/edit.c
105 ++++ tgif-QPL-4.2.5/edit.c
106 +@@ -1138,7 +1138,7 @@
107 + INFO_MB);
108 + return;
109 + }
110 +- sprintf(gszMsgBox, TgLoadString(STID_VERTEX_AT_3_OCLOCK_YNC));
111 ++ sprintf(gszMsgBox, "%s", TgLoadString(STID_VERTEX_AT_3_OCLOCK_YNC));
112 + if ((vertex_at_right=MsgBox(gszMsgBox, TOOL_NAME, YNC_MB)) ==
113 + MB_ID_CANCEL) {
114 + return;
115 +@@ -6104,7 +6104,7 @@
116 + return;
117 + }
118 + if (CountObjectWithShadow() == 0) {
119 +- sprintf(gszMsgBox, TgLoadString(STID_NO_OBJ_SHADOW_FOUND));
120 ++ sprintf(gszMsgBox, "%s", TgLoadString(STID_NO_OBJ_SHADOW_FOUND));
121 + MsgBox(gszMsgBox, TOOL_NAME, INFO_MB);
122 + return;
123 + }
124 +--- tgif-QPL-4.2.5/eps.c
125 ++++ tgif-QPL-4.2.5/eps.c
126 +@@ -670,7 +670,7 @@
127 + }
128 + fclose(xbm_fp);
129 + if (writeFileFailed) {
130 +- fprintf(stderr, TgLoadString(STID_FAIL_TO_WRITE_TO_STDOUT));
131 ++ fprintf(stderr, "%s", TgLoadString(STID_FAIL_TO_WRITE_TO_STDOUT));
132 + }
133 + unlink(xbm_fname);
134 + *xbm_fname = '\0';
135 +--- tgif-QPL-4.2.5/exec.c
136 ++++ tgif-QPL-4.2.5/exec.c
137 +@@ -1753,7 +1753,7 @@
138 + if (ESCPressed() || (check_any_button && XCheckMaskEvent(mainDisplay,
139 + ButtonPressMask | KeyPressMask, &ev)) || CheckInterrupt(TRUE)) {
140 + if (orig_cmd == NULL) {
141 +- sprintf(gszMsgBox, TgLoadString(STID_USER_INTR));
142 ++ sprintf(gszMsgBox, "%s", TgLoadString(STID_USER_INTR));
143 + } else {
144 + sprintf(gszMsgBox, TgLoadString(STID_FUNC_USER_INTR), orig_cmd);
145 + }
146 +--- tgif-QPL-4.2.5/file.c
147 ++++ tgif-QPL-4.2.5/file.c
148 +@@ -4376,7 +4376,7 @@
149 + sprintf(gszMsgBox, TgLoadString(STID_FILE_VER_ABORT_IMPORT),
150 + fileVersion, TOOL_NAME, homePageURL);
151 + } else {
152 +- sprintf(gszMsgBox, TgLoadString(STID_FILE_CORRUPTED_ABORT_IMPORT));
153 ++ sprintf(gszMsgBox, "%s", TgLoadString(STID_FILE_CORRUPTED_ABORT_IMPORT));
154 + }
155 + MsgBox(gszMsgBox, TOOL_NAME, INFO_MB);
156 + SetDefaultCursor(mainWindow);
157 +@@ -4862,7 +4862,7 @@
158 + sprintf(gszMsgBox, TgLoadString(STID_FILE_VER_ABORT_OPEN),
159 + fileVersion, TOOL_NAME, homePageURL);
160 + } else {
161 +- sprintf(gszMsgBox, TgLoadString(STID_FILE_CORRUPTED_ABORT_OPEN));
162 ++ sprintf(gszMsgBox, "%s", TgLoadString(STID_FILE_CORRUPTED_ABORT_OPEN));
163 + }
164 + MsgBox(gszMsgBox, TOOL_NAME, INFO_MB);
165 + DrawPaperBoundary(drawWindow);
166 +@@ -6609,7 +6609,7 @@
167 + whereToPrint == HTML_FILE || whereToPrint == PNG_FILE ||
168 + whereToPrint == JPEG_FILE || whereToPrint == PPM_FILE) {
169 + if (topObj == NULL) {
170 +- sprintf(gszMsgBox, TgLoadString(STID_NO_OBJ_TO_EXPORT));
171 ++ sprintf(gszMsgBox, "%s", TgLoadString(STID_NO_OBJ_TO_EXPORT));
172 + if (PRTGIF) {
173 + fprintf(stderr, "%s\n", gszMsgBox);
174 + } else {
175 +@@ -7646,7 +7646,7 @@
176 + SetOutputFileName(ps_file, TEXT_FILE_EXT, NULL, &FileName);
177 + } else {
178 + if (!curFileDefined) {
179 +- sprintf(gszMsgBox, TgLoadString(STID_NO_CUR_FILE_CANNOT_GEN_TEXT));
180 ++ sprintf(gszMsgBox, "%s", TgLoadString(STID_NO_CUR_FILE_CANNOT_GEN_TEXT));
181 + MsgBox(gszMsgBox, TOOL_NAME, INFO_MB);
182 + unlink(tmpFile);
183 + return FALSE;
184 +@@ -8675,7 +8675,7 @@
185 + }
186 + sprintf(file_name, "%s%c%s", path, DIR_SEP, name);
187 + } else {
188 +- sprintf(gszMsgBox, TgLoadString(STID_SELECT_FILE_AS_TEMPLATE));
189 ++ sprintf(gszMsgBox, "%s", TgLoadString(STID_SELECT_FILE_AS_TEMPLATE));
190 + if (SelectFileNameToImport(gszMsgBox, OBJ_FILE_EXT, file_name) ==
191 + INVALID) {
192 + return;
193 +--- tgif-QPL-4.2.5/grid.c
194 ++++ tgif-QPL-4.2.5/grid.c
195 +@@ -358,7 +358,7 @@
196 + sprintf(gszMsgBox, TgLoadString(STID_RIGHT_MARGIN_IS), buf);
197 + Msg(gszMsgBox);
198 + } else {
199 +- sprintf(gszMsgBox, TgLoadString(STID_RIGHT_MARGIN_DISABLED));
200 ++ sprintf(gszMsgBox, "%s", TgLoadString(STID_RIGHT_MARGIN_DISABLED));
201 + Msg(gszMsgBox);
202 + }
203 + }
204 +--- tgif-QPL-4.2.5/imgproc.c
205 ++++ tgif-QPL-4.2.5/imgproc.c
206 +@@ -9102,7 +9102,7 @@
207 + }
208 + }
209 + if (!found) {
210 +- snprintf(gszMsgBox, sizeof(gszMsgBox), TgLoadString(STID_CANNOT_FIND_GOOD_TRANSPIX));
211 ++ snprintf(gszMsgBox, sizeof(gszMsgBox), "%s", TgLoadString(STID_CANNOT_FIND_GOOD_TRANSPIX));
212 + MsgBox(gszMsgBox, TOOL_NAME, INFO_MB);
213 + return FALSE;
214 + }
215 +@@ -9753,7 +9753,7 @@
216 + fillReplaceBlueThresh);
217 + Msg(gszMsgBox);
218 + } else {
219 +- sprintf(gszMsgBox, TgLoadString(STID_FLOOD_REPLACE_DISABLED));
220 ++ sprintf(gszMsgBox, "%s", TgLoadString(STID_FLOOD_REPLACE_DISABLED));
221 + Msg(gszMsgBox);
222 + }
223 + }
224 +--- tgif-QPL-4.2.5/import.c
225 ++++ tgif-QPL-4.2.5/import.c
226 +@@ -2674,7 +2674,7 @@
227 + memset(&ii, 0, sizeof(struct ImportInfoRec));
228 +
229 + /* pick an animated GIF file */
230 +- sprintf(szTop, TgLoadString(STID_SEL_ANIM_GIF_FILE_TO_IMPORT));
231 ++ sprintf(szTop, "%s", TgLoadString(STID_SEL_ANIM_GIF_FILE_TO_IMPORT));
232 + importingFile = TRUE;
233 + *gif_fname = *tmp_fname = '\0';
234 + if (importFromLibrary) {
235 +--- tgif-QPL-4.2.5/page.c
236 ++++ tgif-QPL-4.2.5/page.c
237 +@@ -1583,7 +1583,7 @@
238 + if (spi.num_pages_specified == lastPageNum) {
239 + MsgBox(TgLoadString(STID_CANT_DEL_ALL_PAGES), TOOL_NAME, INFO_MB);
240 + } else if (spi.num_pages_specified > 0) {
241 +- sprintf(gszMsgBox, TgLoadString(spi.num_pages_specified > 1 ?
242 ++ sprintf(gszMsgBox, "%s", TgLoadString(spi.num_pages_specified > 1 ?
243 + STID_DELETE_A_PAGE_CAUSE_FLUSH :
244 + STID_DELETE_PAGES_PAGE_CAUSE_FLUSH));
245 + if (firstCmd == NULL || OkToFlushUndoBuffer(gszMsgBox)) {
246 +--- tgif-QPL-4.2.5/pattern.c
247 ++++ tgif-QPL-4.2.5/pattern.c
248 +@@ -1738,16 +1738,16 @@
249 + *gszMsgBox = '\0';
250 + switch (curSpline) {
251 + case LT_STRAIGHT:
252 +- sprintf(gszMsgBox, TgLoadString(STID_LINE_TYPE_IS_STRAIGHT));
253 ++ sprintf(gszMsgBox, "%s", TgLoadString(STID_LINE_TYPE_IS_STRAIGHT));
254 + break;
255 + case LT_SPLINE:
256 +- sprintf(gszMsgBox, TgLoadString(STID_LINE_TYPE_IS_SPLINE));
257 ++ sprintf(gszMsgBox, "%s", TgLoadString(STID_LINE_TYPE_IS_SPLINE));
258 + break;
259 + case LT_INTSPLINE:
260 +- sprintf(gszMsgBox, TgLoadString(STID_LINE_TYPE_IS_INTSPLINE));
261 ++ sprintf(gszMsgBox, "%s", TgLoadString(STID_LINE_TYPE_IS_INTSPLINE));
262 + break;
263 + case LT_STRUCT_SPLINE:
264 +- sprintf(gszMsgBox, TgLoadString(STID_LINE_TYPE_IS_STRUCT_SPLINE));
265 ++ sprintf(gszMsgBox, "%s", TgLoadString(STID_LINE_TYPE_IS_STRUCT_SPLINE));
266 + break;
267 + }
268 + Msg(gszMsgBox);
269 +@@ -2290,7 +2290,7 @@
270 + item_info->menu_str = (char*)(Pixmap*)(&lineDashPixmap[i]);
271 + item_info->shortcut_str = NULL;
272 + if (i == 0) {
273 +- sprintf(gszMsgBox, TgLoadCachedString(CSTID_SET_PEN_DASH_PAT_NO_DASH));
274 ++ sprintf(gszMsgBox, "%s", TgLoadCachedString(CSTID_SET_PEN_DASH_PAT_NO_DASH));
275 + } else {
276 + sprintf(gszMsgBox, TgLoadCachedString(CSTID_SET_PEN_DASH_PAT_PAT_NUM),
277 + i);
278 +@@ -2507,13 +2507,13 @@
279 + item_info->shortcut_str = NULL;
280 + switch (i) {
281 + case NONEPAT:
282 +- sprintf(gszMsgBox, TgLoadCachedString(CSTID_SET_PEN_TO_NONE));
283 ++ sprintf(gszMsgBox, "%s", TgLoadCachedString(CSTID_SET_PEN_TO_NONE));
284 + break;
285 + case SOLIDPAT:
286 +- sprintf(gszMsgBox, TgLoadCachedString(CSTID_SET_PEN_TO_SOLID));
287 ++ sprintf(gszMsgBox, "%s", TgLoadCachedString(CSTID_SET_PEN_TO_SOLID));
288 + break;
289 + case BACKPAT:
290 +- sprintf(gszMsgBox, TgLoadCachedString(CSTID_SET_PEN_TO_BACKGROUND));
291 ++ sprintf(gszMsgBox, "%s", TgLoadCachedString(CSTID_SET_PEN_TO_BACKGROUND));
292 + break;
293 + default:
294 + sprintf(gszMsgBox, TgLoadCachedString(CSTID_SET_PEN_TO_PAT_NUM), i);
295 +--- tgif-QPL-4.2.5/poly.c
296 ++++ tgif-QPL-4.2.5/poly.c
297 +@@ -5506,7 +5506,7 @@
298 + smooth[0] = smooth[num_pts-1] = FALSE;
299 + SetFileModified(TRUE);
300 +
301 +- sprintf(gszMsgBox, TgLoadCachedString(CSTID_BAD_SMOOTHHINGE_POLY_FIXED));
302 ++ sprintf(gszMsgBox, "%s", TgLoadCachedString(CSTID_BAD_SMOOTHHINGE_POLY_FIXED));
303 + if (PRTGIF) {
304 + fprintf(stderr, "%s\n", gszMsgBox);
305 + } else {
306 +--- tgif-QPL-4.2.5/scroll.c
307 ++++ tgif-QPL-4.2.5/scroll.c
308 +@@ -1559,13 +1559,13 @@
309 +
310 + switch (smoothScrollingCanvas) {
311 + case SMOOTH_SCROLLING:
312 +- sprintf(gszMsgBox, TgLoadString(STID_WILL_UPD_WIN_SMOOTH_SCROLL));
313 ++ sprintf(gszMsgBox, "%s", TgLoadString(STID_WILL_UPD_WIN_SMOOTH_SCROLL));
314 + break;
315 + case JUMP_SCROLLING:
316 +- sprintf(gszMsgBox, TgLoadString(STID_WILL_UPD_WIN_JUMP_SCROLL));
317 ++ sprintf(gszMsgBox, "%s", TgLoadString(STID_WILL_UPD_WIN_JUMP_SCROLL));
318 + break;
319 + case NO_UPDATE_SCROLLING:
320 +- sprintf(gszMsgBox, TgLoadString(STID_WILL_NOT_UPD_WIN_SCROLL));
321 ++ sprintf(gszMsgBox, "%s", TgLoadString(STID_WILL_NOT_UPD_WIN_SCROLL));
322 + break;
323 + }
324 + Msg(gszMsgBox);
325 +--- tgif-QPL-4.2.5/shape.c
326 ++++ tgif-QPL-4.2.5/shape.c
327 +@@ -1111,7 +1111,7 @@
328 +
329 + if ((objFill == NONEPAT || (objFill == BACKPAT && transPat)) &&
330 + (shapeShadowDx != 0 || shapeShadowDy != 0)) {
331 +- sprintf(gszMsgBox, TgLoadString(objFill==NONEPAT ?
332 ++ sprintf(gszMsgBox, "%s", TgLoadString(objFill==NONEPAT ?
333 + STID_CREATE_SHADOW_SHAPE_NO_FILL :
334 + STID_CREATE_SHADOW_SHAPE_TRAN_FILL));
335 + switch (MsgBox(gszMsgBox, TOOL_NAME, YNC_MB)) {
336 +--- tgif-QPL-4.2.5/special.c
337 ++++ tgif-QPL-4.2.5/special.c
338 +@@ -1292,15 +1292,15 @@
339 + if (*existing_signal_name == '\0') {
340 + if (signal_name_diff) {
341 + /* conflicting signal names */
342 +- sprintf(gszMsgBox, TgLoadString(STID_CONFLICT_SIG_NAME_ENT_NEW));
343 ++ sprintf(gszMsgBox, "%s", TgLoadString(STID_CONFLICT_SIG_NAME_ENT_NEW));
344 + } else {
345 + /* all ports have no signal names */
346 +- sprintf(gszMsgBox, TgLoadString(STID_PLS_ENT_SIG_NAME));
347 ++ sprintf(gszMsgBox, "%s", TgLoadString(STID_PLS_ENT_SIG_NAME));
348 + }
349 + } else {
350 + UtilStrCpyN(new_signal_name, sizeof(new_signal_name),
351 + existing_signal_name);
352 +- sprintf(gszMsgBox, TgLoadString(STID_PLS_ENT_SIG_NAME));
353 ++ sprintf(gszMsgBox, "%s", TgLoadString(STID_PLS_ENT_SIG_NAME));
354 + }
355 + if (!(*new_signal_name != '\0' && already_has_broadcast_signal_name)) {
356 + UtilTrimBlanks(new_signal_name);
357 +@@ -3090,7 +3090,7 @@
358 + }
359 + }
360 + if (ok) {
361 +- sprintf(&buf[cur_len], gszMsgBox);
362 ++ sprintf(&buf[cur_len], "%s", gszMsgBox);
363 + cur_len += len;
364 + }
365 + }
366 +@@ -3127,7 +3127,7 @@
367 + void ToggleShowWireSignalName()
368 + {
369 + showWireSignalName = !showWireSignalName;
370 +- sprintf(gszMsgBox, TgLoadString(showWireSignalName ?
371 ++ sprintf(gszMsgBox, "%s", TgLoadString(showWireSignalName ?
372 + STID_WILL_SHOW_WIRE_SIGNAL_NAME : STID_WILL_HIDE_WIRE_SIGNAL_NAME));
373 + Msg(gszMsgBox);
374 + }
375 +--- tgif-QPL-4.2.5/stream.c
376 ++++ tgif-QPL-4.2.5/stream.c
377 +@@ -669,7 +669,7 @@
378 + *prev_agent = '\0';
379 + GetUserAgent(prev_agent, sizeof(prev_agent));
380 + if (*prev_agent == '\0') {
381 +- sprintf(gszMsgBox, TgLoadString(STID_ENTER_USERAGENT_FOR_HTTP));
382 ++ sprintf(gszMsgBox, "%s", TgLoadString(STID_ENTER_USERAGENT_FOR_HTTP));
383 + } else {
384 + sprintf(gszMsgBox, TgLoadString(STID_ENTER_USERAGENT_FOR_HTTP_CUR),
385 + prev_agent);
386 +@@ -685,7 +685,7 @@
387 + *prev_agent = '\0';
388 + GetUserAgent(prev_agent, sizeof(prev_agent));
389 + if (*prev_agent == '\0') {
390 +- sprintf(gszMsgBox, TgLoadString(STID_WILL_USE_DEF_USERAGENT_HTTP));
391 ++ sprintf(gszMsgBox, "%s", TgLoadString(STID_WILL_USE_DEF_USERAGENT_HTTP));
392 + } else {
393 + sprintf(gszMsgBox, TgLoadString(STID_WILL_USE_NAMED_USERAGENT_HTTP),
394 + prev_agent);
395 +@@ -708,7 +708,7 @@
396 + if (len > 0 && spec[len-1] == ')') spec[len-1] = '\0';
397 + } else {
398 + if (gpszFakedReferer == NULL) {
399 +- sprintf(gszMsgBox, TgLoadString(STID_ENTER_REFERRER_FOR_HTTP));
400 ++ sprintf(gszMsgBox, "%s", TgLoadString(STID_ENTER_REFERRER_FOR_HTTP));
401 + } else {
402 + sprintf(gszMsgBox, TgLoadString(STID_ENTER_REFERRER_FOR_HTTP_CUR),
403 + gpszFakedReferer);
404 +@@ -727,7 +727,7 @@
405 + UtilTrimBlanks(spec);
406 + HttpFakeReferer(spec);
407 + if (gpszFakedReferer == NULL) {
408 +- sprintf(gszMsgBox, TgLoadString(STID_WILL_NOT_USE_REFERRER_HTTP));
409 ++ sprintf(gszMsgBox, "%s", TgLoadString(STID_WILL_NOT_USE_REFERRER_HTTP));
410 + } else {
411 + sprintf(gszMsgBox, TgLoadString(STID_WILL_USE_NAMED_REFERRER_HTTP),
412 + gpszFakedReferer);
413 +@@ -738,7 +738,7 @@
414 + void ToggleKeepAlive()
415 + {
416 + gnHttpKeepAlive = (!gnHttpKeepAlive);
417 +- sprintf(gszMsgBox, TgLoadString(gnHttpKeepAlive ?
418 ++ sprintf(gszMsgBox, "%s", TgLoadString(gnHttpKeepAlive ?
419 + STID_WILL_USE_KEEP_ALIVE_HTTP : STID_NOT_WILL_USE_KEEP_ALIVE_HTTP));
420 + Msg(gszMsgBox);
421 + }
422 +--- tgif-QPL-4.2.5/text.c
423 ++++ tgif-QPL-4.2.5/text.c
424 +@@ -3749,9 +3749,9 @@
425 + copy_db_utf8_str && (double_byte_font_index != INVALID), NULL);
426 +
427 + if (copy_failed) {
428 +- sprintf(gszMsgBox, TgLoadString(STID_COPY_FAIL_SEL_STR_MAY_TOO_LNG));
429 ++ sprintf(gszMsgBox, "%s", TgLoadString(STID_COPY_FAIL_SEL_STR_MAY_TOO_LNG));
430 + } else {
431 +- sprintf(gszMsgBox, TgLoadString(STID_COPY_BUFFER_UPDATED));
432 ++ sprintf(gszMsgBox, "%s", TgLoadString(STID_COPY_BUFFER_UPDATED));
433 + }
434 + Msg(gszMsgBox);
435 + free(cut_buffer);
436 +--- tgif-QPL-4.2.5/tgcwdl.c
437 ++++ tgif-QPL-4.2.5/tgcwdl.c
438 +@@ -1727,7 +1727,7 @@
439 +
440 + TidgetSetFocusWindow(None);
441 + if (!colorDisplay || mainVisual->class != TrueColor) {
442 +- sprintf(gszMsgBox, TgLoadString(STID_COLOR_WHEEL_NOT_AVAIL));
443 ++ sprintf(gszMsgBox, "%s", TgLoadString(STID_COLOR_WHEEL_NOT_AVAIL));
444 + MsgBox(gszMsgBox, TOOL_NAME, INFO_MB);
445 + free(pcwdi);
446 + return NULL;
447 +--- tgif-QPL-4.2.5/tgisdl.c
448 ++++ tgif-QPL-4.2.5/tgisdl.c
449 +@@ -808,7 +808,7 @@
450 +
451 + TidgetSetFocusWindow(None);
452 + if (!colorDisplay || mainVisual->class != TrueColor) {
453 +- sprintf(gszMsgBox, TgLoadString(STID_COLOR_WHEEL_NOT_AVAIL));
454 ++ sprintf(gszMsgBox, "%s", TgLoadString(STID_COLOR_WHEEL_NOT_AVAIL));
455 + MsgBox(gszMsgBox, TOOL_NAME, INFO_MB);
456 + free(pisdi);
457 + return NULL;
458 +--- tgif-QPL-4.2.5/wb.c
459 ++++ tgif-QPL-4.2.5/wb.c
460 +@@ -20,9 +20,7 @@
461 +
462 + #define _INCLUDE_FROM_WB_C_
463 +
464 +-#if (defined(PTHREAD) || defined(HAVE_LIBPTHREAD))
465 + #include <pthread.h>
466 +-#endif /* (defined(PTHREAD) || defined(HAVE_LIBPTHREAD)) */
467 +
468 + #include "tgifdefs.h"
469 + #include "cmdids.h"
470 +@@ -2283,7 +2281,7 @@
471 + *content_type = '\0';
472 + if (!GetContentInfoFromBuf(buf, content_type, sizeof(content_type),
473 + &content_length, &buf_data_start)) {
474 +- sprintf(gszMsgBox, TgLoadString(STID_JOIN_WB_IN_FAILED_NO_CONTTYPE));
475 ++ sprintf(gszMsgBox, "%s", TgLoadString(STID_JOIN_WB_IN_FAILED_NO_CONTTYPE));
476 + MsgBox(gszMsgBox, TOOL_NAME, INFO_MB);
477 + return;
478 + }
479 +@@ -2512,7 +2510,7 @@
480 + gstWBInfo.join_session_in_progress = TRUE;
481 + } else {
482 + CleanUpWBCmds();
483 +- sprintf(gszMsgBox, TgLoadString(STID_JOIN_WB_IN_PROGRESS_FAILED));
484 ++ sprintf(gszMsgBox, "%s", TgLoadString(STID_JOIN_WB_IN_PROGRESS_FAILED));
485 + MsgBox(gszMsgBox, TOOL_NAME, INFO_MB);
486 + }
487 + if (need_to_free_buf) UtilFree(buf);
488 +--- tgif-QPL-4.2.5/xbitmap.c
489 ++++ tgif-QPL-4.2.5/xbitmap.c
490 +@@ -147,7 +147,7 @@
491 + char spec[MAXSTRING<<1];
492 +
493 + if (*gszHhtmlExportTemplate == '\0') {
494 +- sprintf(gszMsgBox, TgLoadString(STID_ENTER_HTML_TEMPLATE));
495 ++ sprintf(gszMsgBox, "%s", TgLoadString(STID_ENTER_HTML_TEMPLATE));
496 + } else {
497 + sprintf(gszMsgBox, TgLoadString(STID_ENTER_HTML_TEMPLATE_CUR_IS),
498 + gszHhtmlExportTemplate);
499 +@@ -172,7 +172,7 @@
500 + }
501 + UtilStrCpyN(gszHhtmlExportTemplate, sizeof(gszHhtmlExportTemplate), spec);
502 + if (*gszHhtmlExportTemplate == '\0') {
503 +- sprintf(gszMsgBox, TgLoadString(STID_NO_HTML_TEMPLATE_FILE));
504 ++ sprintf(gszMsgBox, "%s", TgLoadString(STID_NO_HTML_TEMPLATE_FILE));
505 + } else {
506 + sprintf(gszMsgBox, TgLoadString(STID_HTML_TEMPLATE_SET_TO_GIVEN),
507 + gszHhtmlExportTemplate);
508 +@@ -421,7 +421,7 @@
509 + sprintf(gszMsgBox, TgLoadString(STID_WILL_USE_GIVE_SMPLE_THRESHOLD),
510 + bitmapThresholdStr);
511 + } else {
512 +- sprintf(gszMsgBox, TgLoadString(STID_WILL_NOT_USE_SIMPLE_THRESHOLD));
513 ++ sprintf(gszMsgBox, "%s", TgLoadString(STID_WILL_NOT_USE_SIMPLE_THRESHOLD));
514 + }
515 + Msg(gszMsgBox);
516 + }
517 +@@ -3153,7 +3153,7 @@
518 + } else if ((attr_ptr=FindFileAttrWithName("title=")) != NULL) {
519 + fprintf(map_fp, "%s", attr_ptr->attr_value.s);
520 + } else {
521 +- fprintf(map_fp, TgLoadCachedString(CSTID_PARANED_UNKNOWN));
522 ++ fprintf(map_fp, "%s", TgLoadCachedString(CSTID_PARANED_UNKNOWN));
523 + }
524 + break;
525 + case TGV_MAP_WIDTH: fprintf(map_fp, "%1d", RbX-LtX); break;
526
527 diff --git a/media-gfx/tgif/tgif-4.2.5-r1.ebuild b/media-gfx/tgif/tgif-4.2.5-r1.ebuild
528 new file mode 100644
529 index 0000000..1d343a8
530 --- /dev/null
531 +++ b/media-gfx/tgif/tgif-4.2.5-r1.ebuild
532 @@ -0,0 +1,47 @@
533 +# Copyright 1999-2016 Gentoo Foundation
534 +# Distributed under the terms of the GNU General Public License v2
535 +# $Id$
536 +
537 +EAPI=6
538 +
539 +inherit autotools flag-o-matic
540 +
541 +MY_P="${PN}-QPL-${PV}"
542 +
543 +DESCRIPTION="Xlib base 2-D drawing facility under X11"
544 +HOMEPAGE="http://bourbon.usc.edu/tgif/index.html"
545 +SRC_URI="ftp://bourbon.usc.edu/pub/${PN}/${MY_P}.tar.gz"
546 +
547 +LICENSE="QPL-1.0"
548 +SLOT="0"
549 +KEYWORDS="~amd64 ~ppc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos"
550 +IUSE=""
551 +
552 +DEPEND="sys-libs/zlib
553 + x11-libs/libICE
554 + x11-libs/libSM
555 + x11-libs/libX11
556 + x11-libs/libXext
557 + x11-libs/libXmu
558 + x11-libs/libXt
559 + x11-proto/xproto"
560 +RDEPEND="${DEPEND}
561 + media-libs/netpbm"
562 +
563 +PATCHES=(
564 + "${FILESDIR}/${P}-wformat-security.patch"
565 +)
566 +
567 +S="${WORKDIR}/${MY_P}"
568 +
569 +src_prepare() {
570 + sed -i \
571 + -e 's/^CFLAGS=/CFLAGS+=/' \
572 + -e 's:^TGIFDIR.*:TGIFDIR = $(datadir)/tgif:' \
573 + Makefile.am || die 'sed on Makefile.am failed'
574 +
575 + append-cppflags -D_DONT_USE_MKTEMP -DHAS_STREAMS_SUPPORT
576 +
577 + default
578 + eautoreconf
579 +}