commit:     179907f70c1e6f5cd12b00e694748daf12eec5e4
Author:     Tupone Alfredo <tupone <AT> gentoo <DOT> org>
AuthorDate: Tue Oct 27 08:35:31 2015 +0000
Commit:     Alfredo Tupone <tupone <AT> gentoo <DOT> org>
CommitDate: Tue Oct 27 08:36:16 2015 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=179907f7

games-rpg/twclone: Fix compile with format-security. Bug #544364

Package-Manager: portage-2.2.20.1

 games-rpg/twclone/files/twclone-0.14-format.patch | 75 +++++++++++++++++++++++
 games-rpg/twclone/twclone-0.14.ebuild             |  6 +-
 2 files changed, 80 insertions(+), 1 deletion(-)

diff --git a/games-rpg/twclone/files/twclone-0.14-format.patch 
b/games-rpg/twclone/files/twclone-0.14-format.patch
new file mode 100644
index 0000000..3e51141
--- /dev/null
+++ b/games-rpg/twclone/files/twclone-0.14-format.patch
@@ -0,0 +1,75 @@
+--- bigbang.c.old      2015-10-27 09:21:51.172611109 +0100
++++ bigbang.c  2015-10-27 09:25:41.117233447 +0100
+@@ -530,13 +530,11 @@
+     planetfile = fopen ("./planets.data", "w");
+     for (loop = 1; loop <= 299 - strlen(terraInfo); loop++)
+         strcat(terraInfo, " ");
+-    strcat(terraInfo, "\n");
+-    fprintf (planetfile, terraInfo);
++    fprintf (planetfile, "%s\n", terraInfo);
+     sprintf (ferrinfo, 
"%d:%d:Ferringhi:1:-2:Unknown:1000:1000:1000:0:0:0:0:3:100000:20:30:10:0:0:0:0:",
 2, ferringhiSector);
+     for (loop = 1; loop <= 299 - strlen(ferrinfo); loop++)
+         strcat(ferrinfo, " ");
+-    strcat(ferrinfo, "\n");
+-    fprintf(planetfile, ferrinfo);
++    fprintf(planetfile, "%s\n", ferrinfo);
+     randomPlanetInfo = malloc (sizeof (strNameLength));
+     if (numRandomPlanets > 0)
+     {
+@@ -552,8 +550,7 @@
+                      , c, tempint, randomname (randomPlanetInfo), 
randomnum(1,5));
+             for (loop = 1; loop <= 299 - strlen(ferrinfo); loop++)
+                 strcat(ferrinfo, " ");
+-            strcat(ferrinfo, "\n");
+-            fprintf(planetfile, ferrinfo);
++            fprintf(planetfile, "%s\n", ferrinfo);
+ 
+             c++;
+         }
+@@ -616,10 +613,9 @@
+         fileline = strcat (fileline, ":");
+         if (sectorlist[x]->nebulae != NULL)
+             fileline = strcat (fileline, sectorlist[x]->nebulae);
+-        fileline = strcat (fileline, ":\n");
+         /*  Later put in whitespace buffer for saving */
+         /*  Not needed until user created beacons put in */
+-        fprintf (file, fileline);
++        fprintf (file, "%s:\n", fileline);
+     }
+     fclose (file);
+     free (fileline);
+@@ -646,8 +642,7 @@
+         len = (int) strlen (fileline);
+         for (y = 0; y <= 99 - len; y++)
+             strcat (fileline, " ");
+-        strcat (fileline, "\n");
+-        fprintf (file, fileline);
++        fprintf (file, "%s\n", fileline);
+     }
+     fclose (file);
+ 
+--- config.c.old       2015-10-27 09:30:00.091283678 +0100
++++ config.c   2015-10-27 09:30:25.068806593 +0100
+@@ -140,9 +140,8 @@
+ 
+   for (loop=0; loop < 199 - strlen(buffer); loop++)
+               strcat(buffer, " ");
+-  strcat(buffer, "\n");
+ 
+-  fprintf(configfile, buffer);
++  fprintf(configfile, "%s\n", buffer);
+ 
+   fclose(configfile);
+   free(buffer);
+--- planet.c.old       2015-10-27 09:31:44.867282757 +0100
++++ planet.c   2015-10-27 09:32:17.083667674 +0100
+@@ -59,8 +59,7 @@
+               addint(stufftosave, planets[index]->citdl->upgradestart, ':', 
BUFF_SIZE);
+               for (loop=0; loop< 399 - strlen(stufftosave); loop++)
+                       strcat(stufftosave, " ");
+-              strcat(stufftosave, "\n");
+-              fprintf(planetfile, stufftosave);
++              fprintf(planetfile, "%s\n", stufftosave);
+               }
+       }
+       fclose(planetfile);

diff --git a/games-rpg/twclone/twclone-0.14.ebuild 
b/games-rpg/twclone/twclone-0.14.ebuild
index d06e68e..3e92d76 100644
--- a/games-rpg/twclone/twclone-0.14.ebuild
+++ b/games-rpg/twclone/twclone-0.14.ebuild
@@ -3,7 +3,7 @@
 # $Id$
 
 EAPI=5
-inherit games
+inherit games eutils
 
 MY_P="${PN}-source-${PV}"
 DESCRIPTION="Clone of BBS Door game Trade Wars 2002"
@@ -17,6 +17,10 @@ IUSE=""
 
 S=${WORKDIR}/${MY_P}
 
+src_prepare() {
+       epatch "${FILESDIR}"/${P}-format.patch
+}
+
 src_install() {
        DOCS="AUTHORS ChangeLog PROTOCOL README TODO" \
                default

Reply via email to