summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Sterrett <mr_bones_@gentoo.org>2010-05-18 17:49:21 +0000
committerMichael Sterrett <mr_bones_@gentoo.org>2010-05-18 17:49:21 +0000
commitcf6f9f156c14b7a5a667b32942d47d692c41161d (patch)
tree8ac29a86677ce029b73a5f1dd0e257d1dcd7d2dc /games-puzzle
parentamd64 stable, bug #318783 (diff)
downloadgentoo-2-cf6f9f156c14b7a5a667b32942d47d692c41161d.tar.gz
gentoo-2-cf6f9f156c14b7a5a667b32942d47d692c41161d.tar.bz2
gentoo-2-cf6f9f156c14b7a5a667b32942d47d692c41161d.zip
fix memory corruption bug; change HOMEPAGE (bug #320389)
(Portage version: 2.1.8.3/cvs/Linux i686)
Diffstat (limited to 'games-puzzle')
-rw-r--r--games-puzzle/concentration/ChangeLog10
-rw-r--r--games-puzzle/concentration/concentration-1.2-r1.ebuild30
-rw-r--r--games-puzzle/concentration/files/concentration-1.2-gentoo.patch155
3 files changed, 193 insertions, 2 deletions
diff --git a/games-puzzle/concentration/ChangeLog b/games-puzzle/concentration/ChangeLog
index c2da741efd8d..fb3405c0c245 100644
--- a/games-puzzle/concentration/ChangeLog
+++ b/games-puzzle/concentration/ChangeLog
@@ -1,6 +1,12 @@
# ChangeLog for games-puzzle/concentration
-# Copyright 2000-2007 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/games-puzzle/concentration/ChangeLog,v 1.8 2007/03/13 14:05:17 nyhm Exp $
+# Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2
+# $Header: /var/cvsroot/gentoo-x86/games-puzzle/concentration/ChangeLog,v 1.9 2010/05/18 17:49:21 mr_bones_ Exp $
+
+*concentration-1.2-r1 (18 May 2010)
+
+ 18 May 2010; Michael Sterrett <mr_bones_@gentoo.org>
+ +concentration-1.2-r1.ebuild, +files/concentration-1.2-gentoo.patch:
+ fix memory corruption bug; change HOMEPAGE (bug #320389)
13 Mar 2007; Tristan Heaven <nyhm@gentoo.org> concentration-1.2.ebuild:
Install menu entry, bug #159852
diff --git a/games-puzzle/concentration/concentration-1.2-r1.ebuild b/games-puzzle/concentration/concentration-1.2-r1.ebuild
new file mode 100644
index 000000000000..98b90e40c706
--- /dev/null
+++ b/games-puzzle/concentration/concentration-1.2-r1.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2010 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/games-puzzle/concentration/concentration-1.2-r1.ebuild,v 1.1 2010/05/18 17:49:21 mr_bones_ Exp $
+
+EAPI=2
+inherit eutils games
+
+DESCRIPTION="The classic memory game with some new life"
+HOMEPAGE="http://www.happypenguin.org/show?Concentration"
+SRC_URI="mirror://gentoo/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86"
+IUSE=""
+
+DEPEND="media-libs/libsdl[audio,video]
+ media-libs/sdl-mixer[vorbis]
+ media-libs/sdl-image[png]
+ media-libs/sdl-ttf"
+
+PATCHES=( "${FILESDIR}"/${P}-gentoo.patch )
+
+src_install() {
+ emake DESTDIR="${D}" install || die "emake install failed"
+ newicon pics/set1/19.png ${PN}.png
+ make_desktop_entry ${PN} Concentration
+ dodoc AUTHORS ChangeLog
+ prepgamesdirs
+}
diff --git a/games-puzzle/concentration/files/concentration-1.2-gentoo.patch b/games-puzzle/concentration/files/concentration-1.2-gentoo.patch
new file mode 100644
index 000000000000..759d068b5bae
--- /dev/null
+++ b/games-puzzle/concentration/files/concentration-1.2-gentoo.patch
@@ -0,0 +1,155 @@
+diff -ru concentration-1.2.orig/src/ShiftyEngine.c concentration-1.2/src/ShiftyEngine.c
+--- concentration-1.2.orig/src/ShiftyEngine.c 2004-09-20 21:08:59.000000000 -0400
++++ concentration-1.2/src/ShiftyEngine.c 2010-05-18 13:39:22.717713130 -0400
+@@ -61,13 +61,13 @@
+ int len = strlen(name);
+ assert(name);
+
+- gameName = (char *)malloc((sizeof(char) * len) + 1);
++ gameName = malloc(len + 1);
+ if(!gameName) {
+ fprintf(stderr, "Out Of Memory.");
+ exit(1);
+ }
+
+- strncpy(gameName, name, len);
++ snprintf(gameName, len + 1, "%s", name);
+ }
+
+ /*****************************************************
+@@ -87,13 +87,13 @@
+ int len = strlen(name);
+ assert(name);
+
+- backgroundName = (char *)malloc((sizeof(char) * len) + 1);
++ backgroundName = malloc(len + 1);
+ if(!backgroundName) {
+ fprintf(stderr, "Out Of Memory.");
+ exit(1);
+ }
+
+- strncpy(backgroundName, name, len);
++ snprintf(backgroundName, len + 1, "%s", name);
+ }
+
+ /*****************************************************
+@@ -175,7 +175,7 @@
+ exit(1);
+ }
+
+- strncpy(t->name, name, 16);
++ snprintf(t->name, 16, "%s", name);
+ t->x = x;
+ t->y = y;
+ t->w = w;
+diff -ru concentration-1.2.orig/src/concentration.c concentration-1.2/src/concentration.c
+--- concentration-1.2.orig/src/concentration.c 2005-11-09 11:05:02.000000000 -0500
++++ concentration-1.2/src/concentration.c 2010-05-18 13:42:19.688474410 -0400
+@@ -202,7 +202,7 @@
+
+ /*****************************************************
+ ****************************************************/
+-inline void drawText(char * str, SDL_Color color, int x, int y, TTF_Font * font)
++void drawText(char * str, SDL_Color color, int x, int y, TTF_Font * font)
+ {
+ static SDL_Rect dest;
+
+@@ -814,7 +814,7 @@
+ SE_Error("A blit failed.");
+ SDL_FreeSurface(text);
+
+- sprintf(str, "%d seconds", myclock);
++ snprintf(str, sizeof(str), "%d seconds", myclock);
+ text = TTF_RenderText_Blended(smallFont, str, black);
+ if(!text)
+ SE_Error("A render failed.");
+@@ -831,7 +831,7 @@
+ SE_Error("A blit failed.");
+ SDL_FreeSurface(text);
+
+- sprintf(str, "%d trys", hits + misses);
++ snprintf(str, sizeof(str), "%d trys", hits + misses);
+ text = TTF_RenderText_Blended(smallFont, str, black);
+ if(!text)
+ SE_Error("A render failed.");
+@@ -840,7 +840,7 @@
+ SE_Error("A blit failed.");
+ SDL_FreeSurface(text);
+
+- sprintf(str, "Total pairs: %d", (size == 2) ? 2 : (size == 4) ? 8 : 36);
++ snprintf(str, sizeof(str), "Total pairs: %d", (size == 2) ? 2 : (size == 4) ? 8 : 36);
+ text = TTF_RenderText_Blended(smallFont, str, black);
+ if(!text)
+ SE_Error("A render failed.");
+@@ -1327,7 +1327,7 @@
+ {
+ int x, makeFullScreen = 0;
+
+- char name[16];
++ char name[64];
+
+ SE_SetName("Concentration 1.2");
+ SE_SetBackground("pics/background.png");
+@@ -1395,13 +1395,13 @@
+
+ /* load icon set 1 */
+ for(x = 1; x <= 30; x++) {
+- sprintf(name, "pics/set1/%d.png", x);
++ snprintf(name, sizeof(name), "pics/set1/%d.png", x);
+ icons[x] = loadPNG(name);
+
+- sprintf(name, "pics/set2/%d.png", x);
++ snprintf(name, sizeof(name), "pics/set2/%d.png", x);
+ icons2[x] = loadPNG(name);
+
+- sprintf(name, "pics/set3/%d.png", x);
++ snprintf(name, sizeof(name), "pics/set3/%d.png", x);
+ icons3[x] = loadPNG(name);
+ }
+
+diff -ru concentration-1.2.orig/src/gfx.c concentration-1.2/src/gfx.c
+--- concentration-1.2.orig/src/gfx.c 2004-09-20 21:08:59.000000000 -0400
++++ concentration-1.2/src/gfx.c 2010-05-18 13:39:22.718722669 -0400
+@@ -39,8 +39,7 @@
+ exit(1);
+ }
+
+- strcpy(newname, sg_data_path);
+- strcat(newname, name);
++ snprintf(newname, len1 + len2 + 1, "%s%s", sg_data_path, name);
+
+ temp = IMG_Load(newname);
+ if (temp == NULL) {
+@@ -67,8 +66,7 @@
+ exit(1);
+ }
+
+- strcpy(newname, sg_data_path);
+- strcat(newname, name);
++ snprintf(newname, len1 + len2 + 1, "%s%s", sg_data_path, name);
+
+ temp = IMG_Load(newname);
+ if (temp == NULL) {
+@@ -99,8 +97,7 @@
+ exit(1);
+ }
+
+- strcpy(newname, sg_data_path);
+- strcat(newname, name);
++ snprintf(newname, len1 + len2 + 1, "%s%s", sg_data_path, name);
+
+ temp = TTF_OpenFont(newname, size);
+ if (temp == NULL) {
+diff -ru concentration-1.2.orig/src/sound.c concentration-1.2/src/sound.c
+--- concentration-1.2.orig/src/sound.c 2004-09-20 21:08:59.000000000 -0400
++++ concentration-1.2/src/sound.c 2010-05-18 13:39:22.718722669 -0400
+@@ -57,8 +57,7 @@
+ fprintf(stderr, "Out of memory!\n");
+ exit(1);
+ }
+- strcpy(newname, sg_data_path);
+- strcat(newname, name);
++ snprintf(newname, len1 + len2 + 1, "%s%s", sg_data_path, name);
+
+ temp = Mix_LoadWAV(newname);
+ if(!temp)