[tgif] Support -Werror=format-security

Mamoru TASAKA mtasaka at fedoraproject.org
Wed Dec 4 03:07:30 UTC 2013


commit c21047d82aa0d7325c80aa45ae8ce8a64c8b117b
Author: Mamoru TASAKA <mtasaka at fedoraproject.org>
Date:   Wed Dec 4 12:07:20 2013 +0900

    Support -Werror=format-security

 tgif-QPL-4.2.5-format-security.patch |  664 ++++++++++++++++++++++++++++++++++
 tgif.spec                            |    7 +-
 2 files changed, 670 insertions(+), 1 deletions(-)
---
diff --git a/tgif-QPL-4.2.5-format-security.patch b/tgif-QPL-4.2.5-format-security.patch
new file mode 100644
index 0000000..a362499
--- /dev/null
+++ b/tgif-QPL-4.2.5-format-security.patch
@@ -0,0 +1,664 @@
+--- tgif-QPL-4.2.5/arc.c.format	2011-06-28 11:04:56.000000000 +0900
++++ tgif-QPL-4.2.5/arc.c	2013-12-04 10:01:49.568114857 +0900
+@@ -53,6 +53,7 @@
+ #include "strtbl.e"
+ #include "util.e"
+ #include "xpixmap.e"
++#include <string.h>
+ 
+ #define EXPAND_BBOX(bbox,x,y) \
+    if ((x)<(bbox)->ltx) (bbox)->ltx=(x); if ((y)<(bbox)->lty) (bbox)->lty=(y); \
+@@ -2041,7 +2042,7 @@ void ReadArcObj(FP, Inbuf, ObjPtr)
+    }
+ 
+    if (dir == ARC_CCW && angle2 < 0) {
+-      sprintf(gszMsgBox, TgLoadString(STID_WARN_INCONSIST_ARC_DIR));
++      strcpy(gszMsgBox, TgLoadString(STID_WARN_INCONSIST_ARC_DIR));
+       if (PRTGIF) {
+          fprintf(stderr, "%s\n", gszMsgBox);
+       } else {
+@@ -2050,7 +2051,7 @@ void ReadArcObj(FP, Inbuf, ObjPtr)
+       SetFileModified(TRUE);
+       dir = ARC_CW;
+    } else if (dir == ARC_CW && angle2 > 0) {
+-      sprintf(gszMsgBox, TgLoadString(STID_WARN_INCONSIST_ARC_DIR));
++      strcpy(gszMsgBox, TgLoadString(STID_WARN_INCONSIST_ARC_DIR));
+       if (PRTGIF) {
+          fprintf(stderr, "%s\n", gszMsgBox);
+       } else {
+--- tgif-QPL-4.2.5/auxtext.c.format	2011-06-28 11:04:56.000000000 +0900
++++ tgif-QPL-4.2.5/auxtext.c	2013-12-04 10:05:19.997447447 +0900
+@@ -46,6 +46,7 @@
+ #include "util.e"
+ #include "xbitmap.e"
+ #include "xpixmap.e"
++#include <string.h>
+ 
+ GC	rotateGC=NULL;
+ Pixmap	textBackingBitmap=None, textBackingBgBitmap=None;
+@@ -113,7 +114,7 @@ int InputOctalString(pszBuf, pnBufSize)
+    if (canvasFontDoubleByte) {
+       sprintf(gszMsgBox, TgLoadString(STID_INPUT_OCTAL_STR), "\\244\\244");
+    } else {
+-      sprintf(gszMsgBox, TgLoadString(STID_INPUT_STR));
++      strcpy(gszMsgBox, TgLoadString(STID_INPUT_STR));
+    }
+    Dialog(gszMsgBox, TgLoadCachedString(CSTID_DLG_ACCEPT_CANCEL), szSpec);
+    UtilTrimBlanks(szSpec);
+--- tgif-QPL-4.2.5/cutpaste.c.format	2011-06-28 11:04:57.000000000 +0900
++++ tgif-QPL-4.2.5/cutpaste.c	2013-12-04 10:06:43.131060861 +0900
+@@ -72,6 +72,7 @@
+ #include "util.e"
+ #include "xbitmap.e"
+ #include "xpixmap.e"
++#include <string.h>
+ 
+ int	copyingToCutBuffer=FALSE;
+ int	pastingFile=FALSE;
+@@ -200,7 +201,7 @@ int WriteBufToCutBuffer(buf, bytes_to_wr
+          lastKeyOrBtnEvInfo.time);
+    if (XGetSelectionOwner(mainDisplay, XA_PRIMARY) != mainWindow) {
+       setselowner_failed = TRUE;
+-      sprintf(gszMsgBox, TgLoadString(STID_CANT_ACQUIRE_X_SELECTION));
++      strcpy(gszMsgBox, TgLoadString(STID_CANT_ACQUIRE_X_SELECTION));
+       MsgBox(gszMsgBox, TOOL_NAME, INFO_MB);
+    } else {
+       startSelectionOwnershipTimeValid = TRUE;
+@@ -349,10 +350,10 @@ int CopyObjectToCutBuffer(force)
+       MsgBox(gszMsgBox, TOOL_NAME, INFO_MB);
+    } else {
+       if (!WriteBufToCutBuffer(cut_buffer, stat.st_size, FALSE, FALSE, NULL)) {
+-         sprintf(gszMsgBox, TgLoadString(STID_COPY_FAILED_OBJ_MAYBE_TOO_BIG));
++         strcpy(gszMsgBox, TgLoadString(STID_COPY_FAILED_OBJ_MAYBE_TOO_BIG));
+          MsgBox(gszMsgBox, TOOL_NAME, INFO_MB);
+       } else {
+-         sprintf(gszMsgBox, TgLoadString(STID_COPY_BUFFER_UPDATED));
++         strcpy(gszMsgBox, TgLoadString(STID_COPY_BUFFER_UPDATED));
+          Msg(gszMsgBox);
+       }
+    }
+--- tgif-QPL-4.2.5/drawing.c.format	2011-06-28 11:04:57.000000000 +0900
++++ tgif-QPL-4.2.5/drawing.c	2013-12-04 10:08:14.192591285 +0900
+@@ -87,6 +87,7 @@
+ #include "wb.e"
+ #include "xbitmap.e"
+ #include "xpixmap.e"
++#include <string.h>
+ 
+ #define O_VIS 4
+ #define O_INVIS 4
+@@ -3339,7 +3340,7 @@ void EditIndexedAttrInEditor(index)
+ 
+    SaveStatusStrings();
+    if (*attr_ptr->attr_name.s == '\0') {
+-      sprintf(title, TgLoadString(STID_EDIT_UNNAME_ATTR_DOTS));
++      strcpy(title, TgLoadString(STID_EDIT_UNNAME_ATTR_DOTS));
+       sprintf(cmd, gszEditorCmd, title, tfi.tmp_fname);
+       sprintf(gszMsgBox, TgLoadString(STID_EDIT_UNNAME_ATTR_WITH_CMD), cmd);
+    } else {
+@@ -3460,7 +3461,7 @@ void EditIndexedAttrGroupInEditor(index)
+    }
+    SaveStatusStrings();
+    if (*attr_ptr->attr_name.s == '\0') {
+-      sprintf(title, TgLoadString(STID_EDIT_UNNAME_ATTR_DOTS));
++      strcpy(title, TgLoadString(STID_EDIT_UNNAME_ATTR_DOTS));
+       sprintf(cmd, gszEditorCmd, title, tfi.tmp_fname);
+       sprintf(gszMsgBox, TgLoadString(STID_EDIT_UNNAME_ATTR_WITH_CMD), cmd);
+    } else {
+--- tgif-QPL-4.2.5/edit.c.format	2011-06-28 11:04:57.000000000 +0900
++++ tgif-QPL-4.2.5/edit.c	2013-12-04 10:09:47.119337642 +0900
+@@ -73,6 +73,7 @@
+ #include "util.e"
+ #include "xbitmap.e"
+ #include "xpixmap.e"
++#include <string.h>
+ 
+ struct SelRec *outerSelForFind=NULL;
+ struct SelRec *innerSelForFind=NULL;
+@@ -1138,7 +1139,7 @@ void MakeRegularPolygon()
+             INFO_MB);
+       return;
+    }
+-   sprintf(gszMsgBox, TgLoadString(STID_VERTEX_AT_3_OCLOCK_YNC));
++   strcpy(gszMsgBox, TgLoadString(STID_VERTEX_AT_3_OCLOCK_YNC));
+    if ((vertex_at_right=MsgBox(gszMsgBox, TOOL_NAME, YNC_MB)) ==
+          MB_ID_CANCEL) {
+       return;
+@@ -6104,7 +6105,7 @@ void RemoveObjectShadow()
+       return;
+    }
+    if (CountObjectWithShadow() == 0) {
+-      sprintf(gszMsgBox, TgLoadString(STID_NO_OBJ_SHADOW_FOUND));
++      strcpy(gszMsgBox, TgLoadString(STID_NO_OBJ_SHADOW_FOUND));
+       MsgBox(gszMsgBox, TOOL_NAME, INFO_MB);
+       return;
+    }
+--- tgif-QPL-4.2.5/eps.c.format	2011-06-28 11:04:57.000000000 +0900
++++ tgif-QPL-4.2.5/eps.c	2013-12-04 10:13:22.699268832 +0900
+@@ -670,7 +670,7 @@ FILE *GetTiffEPSIInfo(fp, pszEPS, file_b
+          }
+          fclose(xbm_fp);
+          if (writeFileFailed) {
+-            fprintf(stderr, TgLoadString(STID_FAIL_TO_WRITE_TO_STDOUT));
++            fprintf(stderr, "%s", TgLoadString(STID_FAIL_TO_WRITE_TO_STDOUT));
+          }
+          unlink(xbm_fname);
+          *xbm_fname = '\0';
+--- tgif-QPL-4.2.5/exec.c.format	2011-06-28 11:04:57.000000000 +0900
++++ tgif-QPL-4.2.5/exec.c	2013-12-04 10:13:45.343887675 +0900
+@@ -85,6 +85,7 @@
+ #include "xpixmap.e"
+ #include "xprtfltr.e"
+ #include "z_intrf.e"
++#include <string.h>
+ 
+ int execAnimating=FALSE;
+ int execAnimateRedraw=FALSE;
+@@ -1753,7 +1754,7 @@ int CheckExecInterrupt(orig_cmd)
+    if (ESCPressed() || (check_any_button && XCheckMaskEvent(mainDisplay,
+          ButtonPressMask | KeyPressMask, &ev)) || CheckInterrupt(TRUE)) {
+       if (orig_cmd == NULL) {
+-         sprintf(gszMsgBox, TgLoadString(STID_USER_INTR));
++         strcpy(gszMsgBox, TgLoadString(STID_USER_INTR));
+       } else {
+          sprintf(gszMsgBox, TgLoadString(STID_FUNC_USER_INTR), orig_cmd);
+       }
+--- tgif-QPL-4.2.5/file.c.format	2011-06-28 11:04:57.000000000 +0900
++++ tgif-QPL-4.2.5/file.c	2013-12-04 10:16:32.516221408 +0900
+@@ -87,6 +87,7 @@
+ #include "xbitmap.e"
+ #include "xpixmap.e"
+ #include "xprtfltr.e"
++#include <string.h>
+ 
+ #ifdef _METRIC_PIX_PER_INCH
+ #define METRIC_PIX_PER_INCH 127
+@@ -4376,7 +4377,7 @@ int ImportGivenFile(file_name, group_and
+          sprintf(gszMsgBox, TgLoadString(STID_FILE_VER_ABORT_IMPORT),
+                fileVersion, TOOL_NAME, homePageURL);
+       } else {
+-         sprintf(gszMsgBox, TgLoadString(STID_FILE_CORRUPTED_ABORT_IMPORT));
++         strcpy(gszMsgBox, TgLoadString(STID_FILE_CORRUPTED_ABORT_IMPORT));
+       }
+       MsgBox(gszMsgBox, TOOL_NAME, INFO_MB);
+       SetDefaultCursor(mainWindow);
+@@ -4862,7 +4863,7 @@ int LoadFile(FullName, ObjFile, GzippedO
+          sprintf(gszMsgBox, TgLoadString(STID_FILE_VER_ABORT_OPEN),
+                fileVersion, TOOL_NAME, homePageURL);
+       } else {
+-         sprintf(gszMsgBox, TgLoadString(STID_FILE_CORRUPTED_ABORT_OPEN));
++         strcpy(gszMsgBox, TgLoadString(STID_FILE_CORRUPTED_ABORT_OPEN));
+       }
+       MsgBox(gszMsgBox, TOOL_NAME, INFO_MB);
+       DrawPaperBoundary(drawWindow);
+@@ -6609,7 +6610,7 @@ int DoGenDump(FileName)
+          whereToPrint == HTML_FILE || whereToPrint == PNG_FILE ||
+          whereToPrint == JPEG_FILE || whereToPrint == PPM_FILE) {
+       if (topObj == NULL) {
+-         sprintf(gszMsgBox, TgLoadString(STID_NO_OBJ_TO_EXPORT));
++         strcpy(gszMsgBox, TgLoadString(STID_NO_OBJ_TO_EXPORT));
+          if (PRTGIF) {
+             fprintf(stderr, "%s\n", gszMsgBox);
+          } else {
+@@ -7646,7 +7647,7 @@ int DoGenDump(FileName)
+          SetOutputFileName(ps_file, TEXT_FILE_EXT, NULL, &FileName);
+       } else {
+          if (!curFileDefined) {
+-            sprintf(gszMsgBox, TgLoadString(STID_NO_CUR_FILE_CANNOT_GEN_TEXT));
++            strcpy(gszMsgBox, TgLoadString(STID_NO_CUR_FILE_CANNOT_GEN_TEXT));
+             MsgBox(gszMsgBox, TOOL_NAME, INFO_MB);
+             unlink(tmpFile);
+             return FALSE;
+@@ -8675,7 +8676,7 @@ void SetTemplate()
+       }
+       sprintf(file_name, "%s%c%s", path, DIR_SEP, name);
+    } else {
+-      sprintf(gszMsgBox, TgLoadString(STID_SELECT_FILE_AS_TEMPLATE));
++      strcpy(gszMsgBox, TgLoadString(STID_SELECT_FILE_AS_TEMPLATE));
+       if (SelectFileNameToImport(gszMsgBox, OBJ_FILE_EXT, file_name) ==
+             INVALID) {
+          return;
+--- tgif-QPL-4.2.5/grid.c.format	2011-06-28 11:04:57.000000000 +0900
++++ tgif-QPL-4.2.5/grid.c	2013-12-04 10:17:33.560277288 +0900
+@@ -51,6 +51,7 @@
+ #include "util.e"
+ #include "wb.e"
+ #include "xprtfltr.e"
++#include <string.h>
+ 
+ #define ENGLISH_GRID_STEP 8
+ #define METRIC_GRID_STEP 5
+@@ -358,7 +359,7 @@ void ToggleRightMargin()
+       sprintf(gszMsgBox, TgLoadString(STID_RIGHT_MARGIN_IS), buf);
+       Msg(gszMsgBox);
+    } else {
+-      sprintf(gszMsgBox, TgLoadString(STID_RIGHT_MARGIN_DISABLED));
++      strcpy(gszMsgBox, TgLoadString(STID_RIGHT_MARGIN_DISABLED));
+       Msg(gszMsgBox);
+    }
+ }
+--- tgif-QPL-4.2.5/imgproc.c.format	2011-06-28 11:04:57.000000000 +0900
++++ tgif-QPL-4.2.5/imgproc.c	2013-12-04 10:23:12.840460491 +0900
+@@ -62,6 +62,7 @@
+ #include "xbitmap.e"
+ #include "xpixmap.e"
+ #include "z_intrf.e"
++#include <string.h>
+ 
+ #define HISTOGRAMCOUNT(i) (gpHistogram[(i)].pixel)
+ #define HISTOGRAMRED(i) (gpHistogram[(i)].red)
+@@ -9102,7 +9103,8 @@ int SetupReplaceColorInfo(obj_ptr, prci)
+             }
+          }
+          if (!found) {
+-            snprintf(gszMsgBox, sizeof(gszMsgBox), TgLoadString(STID_CANNOT_FIND_GOOD_TRANSPIX));
++            strncpy(gszMsgBox, TgLoadString(STID_CANNOT_FIND_GOOD_TRANSPIX), sizeof(gszMsgBox));
++            gszMsgBox[sizeof(gszMsgBox) - 1] = 0;
+             MsgBox(gszMsgBox, TOOL_NAME, INFO_MB);
+             return FALSE;
+          }
+@@ -9753,7 +9755,7 @@ void ToggleFloodReplaceColorThreshold()
+             fillReplaceBlueThresh);
+       Msg(gszMsgBox);
+    } else {
+-      sprintf(gszMsgBox, TgLoadString(STID_FLOOD_REPLACE_DISABLED));
++      strcpy(gszMsgBox, TgLoadString(STID_FLOOD_REPLACE_DISABLED));
+       Msg(gszMsgBox);
+    }
+ }
+--- tgif-QPL-4.2.5/import.c.format	2011-06-28 11:04:57.000000000 +0900
++++ tgif-QPL-4.2.5/import.c	2013-12-04 11:08:17.558213212 +0900
+@@ -66,6 +66,7 @@
+ #include "xbitmap.e"
+ #include "xpixmap.e"
+ #include "z_intrf.e"
++#include <string.h>
+ 
+ typedef struct ImportInfoRec {
+    char *name, *ext, *cmd;
+@@ -2674,7 +2675,7 @@ void ImportGIFToXPixmapDeck()
+    memset(&ii, 0, sizeof(struct ImportInfoRec));
+ 
+    /* pick an animated GIF file */
+-   sprintf(szTop, TgLoadString(STID_SEL_ANIM_GIF_FILE_TO_IMPORT));
++   strcpy(szTop, TgLoadString(STID_SEL_ANIM_GIF_FILE_TO_IMPORT));
+    importingFile = TRUE;
+    *gif_fname = *tmp_fname = '\0';
+    if (importFromLibrary) {
+--- tgif-QPL-4.2.5/page.c.format	2011-06-28 11:04:58.000000000 +0900
++++ tgif-QPL-4.2.5/page.c	2013-12-04 11:11:38.581459620 +0900
+@@ -62,6 +62,7 @@
+ #include "xprtfltr.e"
+ 
+ #include "xbm/leftend.xbm"
++#include <string.h>
+ 
+ struct PageRec	*firstPage=NULL, *lastPage=NULL, *curPage=NULL;
+ int		curPageNum=1, lastPageNum=1;
+@@ -1583,7 +1584,7 @@ void DeletePages()
+    if (spi.num_pages_specified == lastPageNum) {
+       MsgBox(TgLoadString(STID_CANT_DEL_ALL_PAGES), TOOL_NAME, INFO_MB);
+    } else if (spi.num_pages_specified > 0) {
+-      sprintf(gszMsgBox, TgLoadString(spi.num_pages_specified > 1 ?
++      strcpy(gszMsgBox, TgLoadString(spi.num_pages_specified > 1 ?
+             STID_DELETE_A_PAGE_CAUSE_FLUSH :
+             STID_DELETE_PAGES_PAGE_CAUSE_FLUSH));
+       if (firstCmd == NULL || OkToFlushUndoBuffer(gszMsgBox)) {
+--- tgif-QPL-4.2.5/pattern.c.format	2011-06-28 11:04:58.000000000 +0900
++++ tgif-QPL-4.2.5/pattern.c	2013-12-04 11:14:00.603883545 +0900
+@@ -49,6 +49,7 @@
+ #include "strtbl.e"
+ #include "text.e"
+ #include "util.e"
++#include <string.h>
+ 
+ int     objFill=NONEPAT;
+ int     transPat=FALSE;
+@@ -1738,16 +1739,16 @@ void ChangeAllSelLineType(TypeIndex, Hig
+    *gszMsgBox = '\0';
+    switch (curSpline) {
+    case LT_STRAIGHT:
+-      sprintf(gszMsgBox, TgLoadString(STID_LINE_TYPE_IS_STRAIGHT));
++      strcpy(gszMsgBox, TgLoadString(STID_LINE_TYPE_IS_STRAIGHT));
+       break;
+    case LT_SPLINE:
+-      sprintf(gszMsgBox, TgLoadString(STID_LINE_TYPE_IS_SPLINE));
++      strcpy(gszMsgBox, TgLoadString(STID_LINE_TYPE_IS_SPLINE));
+       break;
+    case LT_INTSPLINE:
+-      sprintf(gszMsgBox, TgLoadString(STID_LINE_TYPE_IS_INTSPLINE));
++      strcpy(gszMsgBox, TgLoadString(STID_LINE_TYPE_IS_INTSPLINE));
+       break;
+    case LT_STRUCT_SPLINE:
+-      sprintf(gszMsgBox, TgLoadString(STID_LINE_TYPE_IS_STRUCT_SPLINE));
++      strcpy(gszMsgBox, TgLoadString(STID_LINE_TYPE_IS_STRUCT_SPLINE));
+       break;
+    }
+    Msg(gszMsgBox);
+@@ -2290,7 +2291,7 @@ TgMenu *CreateLineDashMenu(parent_menu,
+       item_info->menu_str = (char*)(Pixmap*)(&lineDashPixmap[i]);
+       item_info->shortcut_str = NULL;
+       if (i == 0) {
+-         sprintf(gszMsgBox, TgLoadCachedString(CSTID_SET_PEN_DASH_PAT_NO_DASH));
++         strcpy(gszMsgBox, TgLoadCachedString(CSTID_SET_PEN_DASH_PAT_NO_DASH));
+       } else {
+          sprintf(gszMsgBox, TgLoadCachedString(CSTID_SET_PEN_DASH_PAT_PAT_NUM),
+                i);
+@@ -2507,13 +2508,13 @@ TgMenu *CreatePenMenu(parent_menu, x, y,
+       item_info->shortcut_str = NULL;
+       switch (i) {
+       case NONEPAT:
+-         sprintf(gszMsgBox, TgLoadCachedString(CSTID_SET_PEN_TO_NONE));
++         strcpy(gszMsgBox, TgLoadCachedString(CSTID_SET_PEN_TO_NONE));
+          break;
+       case SOLIDPAT:
+-         sprintf(gszMsgBox, TgLoadCachedString(CSTID_SET_PEN_TO_SOLID));
++         strcpy(gszMsgBox, TgLoadCachedString(CSTID_SET_PEN_TO_SOLID));
+          break;
+       case BACKPAT:
+-         sprintf(gszMsgBox, TgLoadCachedString(CSTID_SET_PEN_TO_BACKGROUND));
++         strcpy(gszMsgBox, TgLoadCachedString(CSTID_SET_PEN_TO_BACKGROUND));
+          break;
+       default:
+          sprintf(gszMsgBox, TgLoadCachedString(CSTID_SET_PEN_TO_PAT_NUM), i);
+--- tgif-QPL-4.2.5/poly.c.format	2011-06-28 11:04:58.000000000 +0900
++++ tgif-QPL-4.2.5/poly.c	2013-12-04 11:15:57.377387816 +0900
+@@ -57,6 +57,7 @@
+ #include "strtbl.e"
+ #include "util.e"
+ #include "xpixmap.e"
++#include <stdio.h>
+ 
+ #define RETREAT (0.8)
+ 
+@@ -5506,7 +5507,7 @@ void ReadPolyObj(FP, Inbuf, ObjPtr)
+       smooth[0] = smooth[num_pts-1] = FALSE;
+       SetFileModified(TRUE);
+ 
+-      sprintf(gszMsgBox, TgLoadCachedString(CSTID_BAD_SMOOTHHINGE_POLY_FIXED));
++      strcpy(gszMsgBox, TgLoadCachedString(CSTID_BAD_SMOOTHHINGE_POLY_FIXED));
+       if (PRTGIF) {
+          fprintf(stderr, "%s\n", gszMsgBox);
+       } else {
+--- tgif-QPL-4.2.5/scroll.c.format	2011-06-28 11:04:58.000000000 +0900
++++ tgif-QPL-4.2.5/scroll.c	2013-12-04 11:16:52.500762618 +0900
+@@ -45,6 +45,7 @@
+ #include "util.e"
+ 
+ #include "xbm/scrl_up.xbm"
++#include <string.h>
+ 
+ #define FAKE_CM 80
+ 
+@@ -1559,13 +1560,13 @@ void ChangeScrollMode(ModeIndex)
+ 
+    switch (smoothScrollingCanvas) {
+    case SMOOTH_SCROLLING:
+-      sprintf(gszMsgBox, TgLoadString(STID_WILL_UPD_WIN_SMOOTH_SCROLL));
++      strcpy(gszMsgBox, TgLoadString(STID_WILL_UPD_WIN_SMOOTH_SCROLL));
+       break;
+    case JUMP_SCROLLING:
+-      sprintf(gszMsgBox, TgLoadString(STID_WILL_UPD_WIN_JUMP_SCROLL));
++      strcpy(gszMsgBox, TgLoadString(STID_WILL_UPD_WIN_JUMP_SCROLL));
+       break;
+    case NO_UPDATE_SCROLLING:
+-      sprintf(gszMsgBox, TgLoadString(STID_WILL_NOT_UPD_WIN_SCROLL));
++      strcpy(gszMsgBox, TgLoadString(STID_WILL_NOT_UPD_WIN_SCROLL));
+       break;
+    }
+    Msg(gszMsgBox);
+--- tgif-QPL-4.2.5/shape.c.format	2011-06-28 11:04:58.000000000 +0900
++++ tgif-QPL-4.2.5/shape.c	2013-12-04 11:18:04.716114094 +0900
+@@ -56,6 +56,7 @@
+ #include "strtbl.e"
+ #include "text.e"
+ #include "util.e"
++#include <string.h>
+ 
+ int numShapes=MAXSHAPES;
+ int curShape=(-1);
+@@ -1111,7 +1112,7 @@ void CreateShape()
+ 
+    if ((objFill == NONEPAT || (objFill == BACKPAT && transPat)) &&
+          (shapeShadowDx != 0 || shapeShadowDy != 0)) {
+-      sprintf(gszMsgBox, TgLoadString(objFill==NONEPAT ?
++      strcpy(gszMsgBox, TgLoadString(objFill==NONEPAT ?
+             STID_CREATE_SHADOW_SHAPE_NO_FILL :
+             STID_CREATE_SHADOW_SHAPE_TRAN_FILL));
+       switch (MsgBox(gszMsgBox, TOOL_NAME, YNC_MB)) {
+--- tgif-QPL-4.2.5/special.c.format	2011-06-28 11:04:58.000000000 +0900
++++ tgif-QPL-4.2.5/special.c	2013-12-04 11:20:16.395342522 +0900
+@@ -70,6 +70,7 @@
+ #include "util.e"
+ #include "version.e"
+ #include "wb.e"
++#include <string.h>
+ 
+ int placingTopObj=FALSE;
+ int connectingPortsByWire=FALSE;
+@@ -1292,15 +1293,15 @@ void ConnectPortsToBroadcastWire()
+    if (*existing_signal_name == '\0') {
+       if (signal_name_diff) {
+          /* conflicting signal names */
+-         sprintf(gszMsgBox, TgLoadString(STID_CONFLICT_SIG_NAME_ENT_NEW));
++         strcpy(gszMsgBox, TgLoadString(STID_CONFLICT_SIG_NAME_ENT_NEW));
+       } else {
+          /* all ports have no signal names */
+-         sprintf(gszMsgBox, TgLoadString(STID_PLS_ENT_SIG_NAME));
++         strcpy(gszMsgBox, TgLoadString(STID_PLS_ENT_SIG_NAME));
+       }
+    } else {
+       UtilStrCpyN(new_signal_name, sizeof(new_signal_name),
+             existing_signal_name);
+-      sprintf(gszMsgBox, TgLoadString(STID_PLS_ENT_SIG_NAME));
++      strcpy(gszMsgBox, TgLoadString(STID_PLS_ENT_SIG_NAME));
+    }
+    if (!(*new_signal_name != '\0' && already_has_broadcast_signal_name)) {
+       UtilTrimBlanks(new_signal_name);
+@@ -3090,7 +3091,7 @@ void ExportToTable()
+             }
+          }
+          if (ok) {
+-            sprintf(&buf[cur_len], gszMsgBox);
++            strcpy(&buf[cur_len], gszMsgBox);
+             cur_len += len;
+          }
+       }
+@@ -3127,7 +3128,7 @@ void ExportToTable()
+ void ToggleShowWireSignalName()
+ {
+    showWireSignalName = !showWireSignalName;
+-   sprintf(gszMsgBox, TgLoadString(showWireSignalName ?
++   strcpy(gszMsgBox, TgLoadString(showWireSignalName ?
+          STID_WILL_SHOW_WIRE_SIGNAL_NAME : STID_WILL_HIDE_WIRE_SIGNAL_NAME));
+    Msg(gszMsgBox);
+ }
+--- tgif-QPL-4.2.5/stream.c.format	2011-06-28 11:04:59.000000000 +0900
++++ tgif-QPL-4.2.5/stream.c	2013-12-04 11:22:15.267089935 +0900
+@@ -37,6 +37,7 @@
+ #include "stream.e"
+ #include "strtbl.e"
+ #include "util.e"
++#include <string.h>
+ 
+ static int gnMultipartReplace=FALSE;
+ static int gnPossibleMultipartReplace=TRUE;
+@@ -669,7 +670,7 @@ void FakeUserAgent(buf)
+       *prev_agent = '\0';
+       GetUserAgent(prev_agent, sizeof(prev_agent));
+       if (*prev_agent == '\0') {
+-         sprintf(gszMsgBox, TgLoadString(STID_ENTER_USERAGENT_FOR_HTTP));
++         strcpy(gszMsgBox, TgLoadString(STID_ENTER_USERAGENT_FOR_HTTP));
+       } else {
+          sprintf(gszMsgBox, TgLoadString(STID_ENTER_USERAGENT_FOR_HTTP_CUR),
+                prev_agent);
+@@ -685,7 +686,7 @@ void FakeUserAgent(buf)
+    *prev_agent = '\0';
+    GetUserAgent(prev_agent, sizeof(prev_agent));
+    if (*prev_agent == '\0') {
+-      sprintf(gszMsgBox, TgLoadString(STID_WILL_USE_DEF_USERAGENT_HTTP));
++      strcpy(gszMsgBox, TgLoadString(STID_WILL_USE_DEF_USERAGENT_HTTP));
+    } else {
+       sprintf(gszMsgBox, TgLoadString(STID_WILL_USE_NAMED_USERAGENT_HTTP),
+             prev_agent);
+@@ -708,7 +709,7 @@ void FakeReferer(buf)
+       if (len > 0 && spec[len-1] == ')') spec[len-1] = '\0';
+    } else {
+       if (gpszFakedReferer == NULL) {
+-         sprintf(gszMsgBox, TgLoadString(STID_ENTER_REFERRER_FOR_HTTP));
++         strcpy(gszMsgBox, TgLoadString(STID_ENTER_REFERRER_FOR_HTTP));
+       } else {
+          sprintf(gszMsgBox, TgLoadString(STID_ENTER_REFERRER_FOR_HTTP_CUR),
+                gpszFakedReferer);
+@@ -727,7 +728,7 @@ void FakeReferer(buf)
+    UtilTrimBlanks(spec);
+    HttpFakeReferer(spec);
+    if (gpszFakedReferer == NULL) {
+-      sprintf(gszMsgBox, TgLoadString(STID_WILL_NOT_USE_REFERRER_HTTP));
++      strcpy(gszMsgBox, TgLoadString(STID_WILL_NOT_USE_REFERRER_HTTP));
+    } else {
+       sprintf(gszMsgBox, TgLoadString(STID_WILL_USE_NAMED_REFERRER_HTTP),
+             gpszFakedReferer);
+@@ -738,7 +739,7 @@ void FakeReferer(buf)
+ void ToggleKeepAlive()
+ {
+    gnHttpKeepAlive = (!gnHttpKeepAlive);
+-   sprintf(gszMsgBox, TgLoadString(gnHttpKeepAlive ?
++   strcpy(gszMsgBox, TgLoadString(gnHttpKeepAlive ?
+          STID_WILL_USE_KEEP_ALIVE_HTTP : STID_NOT_WILL_USE_KEEP_ALIVE_HTTP));
+    Msg(gszMsgBox);
+ }
+--- tgif-QPL-4.2.5/text.c.format	2011-06-28 11:04:59.000000000 +0900
++++ tgif-QPL-4.2.5/text.c	2013-12-04 11:26:06.450826454 +0900
+@@ -71,6 +71,7 @@
+ #include "wb.e"
+ #include "xbitmap.e"
+ #include "xpixmap.e"
++#include <string.h>
+ 
+ #define ADVANCE_LEFT (TRUE)
+ #define ADVANCE_RIGHT (FALSE)
+@@ -3749,9 +3750,9 @@ void HandleCopyInDrawTextMode()
+          copy_db_utf8_str && (double_byte_font_index != INVALID), NULL);
+ 
+    if (copy_failed) {
+-      sprintf(gszMsgBox, TgLoadString(STID_COPY_FAIL_SEL_STR_MAY_TOO_LNG));
++      strcpy(gszMsgBox, TgLoadString(STID_COPY_FAIL_SEL_STR_MAY_TOO_LNG));
+    } else {
+-      sprintf(gszMsgBox, TgLoadString(STID_COPY_BUFFER_UPDATED));
++      strcpy(gszMsgBox, TgLoadString(STID_COPY_BUFFER_UPDATED));
+    }
+    Msg(gszMsgBox);
+    free(cut_buffer);
+--- tgif-QPL-4.2.5/tgcwdl.c.format	2011-06-28 11:04:59.000000000 +0900
++++ tgif-QPL-4.2.5/tgcwdl.c	2013-12-04 11:23:05.576908258 +0900
+@@ -50,6 +50,7 @@
+ #include "util.e"
+ #include "xbitmap.e"
+ #include "xpixmap.e"
++#include <string.h>
+ 
+ ColorWheelInfo gColorWheelInfo;
+ 
+@@ -1727,7 +1728,7 @@ TidgetInfo *CreateTdgtColorWheelDialogBo
+ 
+    TidgetSetFocusWindow(None);
+    if (!colorDisplay || mainVisual->class != TrueColor) {
+-      sprintf(gszMsgBox, TgLoadString(STID_COLOR_WHEEL_NOT_AVAIL));
++      strcpy(gszMsgBox, TgLoadString(STID_COLOR_WHEEL_NOT_AVAIL));
+       MsgBox(gszMsgBox, TOOL_NAME, INFO_MB);
+       free(pcwdi);
+       return NULL;
+--- tgif-QPL-4.2.5/tgisdl.c.format	2011-06-28 11:04:59.000000000 +0900
++++ tgif-QPL-4.2.5/tgisdl.c	2013-12-04 11:24:56.618750303 +0900
+@@ -41,6 +41,7 @@
+ #include "tidget.e"
+ #include "tgisdl.e"
+ #include "util.e"
++#include <string.h>
+ 
+ InsertSymbolInfo gInsertSymbolInfo;
+ 
+@@ -808,7 +809,7 @@ TidgetInfo *CreateTdgtInsertSymbolDialog
+ 
+    TidgetSetFocusWindow(None);
+    if (!colorDisplay || mainVisual->class != TrueColor) {
+-      sprintf(gszMsgBox, TgLoadString(STID_COLOR_WHEEL_NOT_AVAIL));
++      strcpy(gszMsgBox, TgLoadString(STID_COLOR_WHEEL_NOT_AVAIL));
+       MsgBox(gszMsgBox, TOOL_NAME, INFO_MB);
+       free(pisdi);
+       return NULL;
+--- tgif-QPL-4.2.5/wb.c.format	2011-06-28 11:04:59.000000000 +0900
++++ tgif-QPL-4.2.5/wb.c	2013-12-04 11:27:33.957946515 +0900
+@@ -67,6 +67,7 @@
+ #include "wb_seg.e"
+ #include "xpixmap.e"
+ #include "z_intrf.e"
++#include <stdio.h>
+ 
+ struct WhiteBoardRec	gstWBInfo;
+ 
+@@ -2283,7 +2284,7 @@ void UnpackCurrentTGWBState(p_cur_state)
+    *content_type = '\0';
+    if (!GetContentInfoFromBuf(buf, content_type, sizeof(content_type),
+          &content_length, &buf_data_start)) {
+-      sprintf(gszMsgBox, TgLoadString(STID_JOIN_WB_IN_FAILED_NO_CONTTYPE));
++      strcpy(gszMsgBox, TgLoadString(STID_JOIN_WB_IN_FAILED_NO_CONTTYPE));
+       MsgBox(gszMsgBox, TOOL_NAME, INFO_MB);
+       return;
+    }
+@@ -2512,7 +2513,7 @@ void UnpackCurrentTGWBState(p_cur_state)
+       gstWBInfo.join_session_in_progress = TRUE;
+    } else {
+       CleanUpWBCmds();
+-      sprintf(gszMsgBox, TgLoadString(STID_JOIN_WB_IN_PROGRESS_FAILED));
++      strcpy(gszMsgBox, TgLoadString(STID_JOIN_WB_IN_PROGRESS_FAILED));
+       MsgBox(gszMsgBox, TOOL_NAME, INFO_MB);
+    }
+    if (need_to_free_buf) UtilFree(buf);
+--- tgif-QPL-4.2.5/xbitmap.c.format	2011-06-28 11:05:00.000000000 +0900
++++ tgif-QPL-4.2.5/xbitmap.c	2013-12-04 11:29:31.527543277 +0900
+@@ -64,6 +64,7 @@
+ #include "xpixmap.e"
+ #include "xprtfltr.e"
+ #include "z_intrf.e"
++#include <string.h>
+ 
+ GC xbmGC=NULL;
+ 
+@@ -147,7 +148,7 @@ void SetHtmlExportTemplate()
+    char spec[MAXSTRING<<1];
+ 
+    if (*gszHhtmlExportTemplate == '\0') {
+-      sprintf(gszMsgBox, TgLoadString(STID_ENTER_HTML_TEMPLATE));
++      strcpy(gszMsgBox, TgLoadString(STID_ENTER_HTML_TEMPLATE));
+    } else {
+       sprintf(gszMsgBox, TgLoadString(STID_ENTER_HTML_TEMPLATE_CUR_IS),
+             gszHhtmlExportTemplate);
+@@ -172,7 +173,7 @@ void SetHtmlExportTemplate()
+    }
+    UtilStrCpyN(gszHhtmlExportTemplate, sizeof(gszHhtmlExportTemplate), spec);
+    if (*gszHhtmlExportTemplate == '\0') {
+-      sprintf(gszMsgBox, TgLoadString(STID_NO_HTML_TEMPLATE_FILE));
++      strcpy(gszMsgBox, TgLoadString(STID_NO_HTML_TEMPLATE_FILE));
+    } else {
+       sprintf(gszMsgBox, TgLoadString(STID_HTML_TEMPLATE_SET_TO_GIVEN),
+             gszHhtmlExportTemplate);
+@@ -421,7 +422,7 @@ void ExportThresholdBitmap()
+       sprintf(gszMsgBox, TgLoadString(STID_WILL_USE_GIVE_SMPLE_THRESHOLD),
+             bitmapThresholdStr);
+    } else {
+-      sprintf(gszMsgBox, TgLoadString(STID_WILL_NOT_USE_SIMPLE_THRESHOLD));
++      strcpy(gszMsgBox, TgLoadString(STID_WILL_NOT_USE_SIMPLE_THRESHOLD));
+    }
+    Msg(gszMsgBox);
+ }
+@@ -3153,7 +3154,7 @@ void GenerateTemplateHtmlVar(map_fp, var
+       } else if ((attr_ptr=FindFileAttrWithName("title=")) != NULL) {
+          fprintf(map_fp, "%s", attr_ptr->attr_value.s);
+       } else {
+-         fprintf(map_fp, TgLoadCachedString(CSTID_PARANED_UNKNOWN));
++         fprintf(map_fp, "%s", TgLoadCachedString(CSTID_PARANED_UNKNOWN));
+       }
+       break;
+    case TGV_MAP_WIDTH: fprintf(map_fp, "%1d", RbX-LtX); break;
diff --git a/tgif.spec b/tgif.spec
index ada36be..950315f 100644
--- a/tgif.spec
+++ b/tgif.spec
@@ -1,6 +1,6 @@
 Name:		tgif
 Version:	4.2.5
-Release:	5%{?dist}
+Release:	6%{?dist}
 Summary:	2-D drawing tool
 Group:		Applications/Multimedia
 
@@ -11,6 +11,7 @@ Source0:	http://downloads.sourceforge.net/%{name}/%{name}-QPL-%{version}.tar.gz
 Patch10:	tgif-textcursor-a-urasim.patch
 # Check below later
 Patch101:	tgif-QPL-4.1.45-size-debug.patch
+Patch102:	tgif-QPL-4.2.5-format-security.patch
 Buildroot:	%{_tmppath}/%{name}-%{version}-%{release}-%(%{__id_u} -n)
 
 BuildRequires:	imake
@@ -37,6 +38,7 @@ the World-Wide-Web.
 #%%patch10 -p0 -b textcursor
 # Check later
 #%%patch101 -p1 -b .size
+%patch102 -p1 -b .format
 
 %{__perl} -pi \
 	-e 's,JISX-0208-1983-0,EUC-JP,g' \
@@ -177,6 +179,9 @@ exit 0
 %{_datadir}/applications/*%{name}.desktop
 
 %changelog
+* Wed Dec  4 2013 Mamoru TASAKA <mtasaka at fedoraproject.org> - 4.2.5-6
+- Support -Werror=format-security
+
 * Sun Aug 04 2013 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 4.2.5-5
 - Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
 


More information about the scm-commits mailing list