summarylogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.SRCINFO4
-rw-r--r--PKGBUILD14
-rw-r--r--buffer_overflow.patch18
3 files changed, 32 insertions, 4 deletions
diff --git a/.SRCINFO b/.SRCINFO
index c8f36b843888..7d5b61964b01 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,7 +1,7 @@
pkgbase = 7kaa
pkgdesc = Seven Kingdoms: Ancient Adversaries is a real-time strategy (RTS) computer game developed by Trevor Chan
pkgver = 2.15.2
- pkgrel = 1
+ pkgrel = 2
url = http://7kfans.com/
arch = i686
arch = x86_64
@@ -18,10 +18,12 @@ pkgbase = 7kaa
source = 7kaa.sh
source = 7kaa.desktop
source = 7kaa.ico
+ source = buffer_overflow.patch
md5sums = abd3648aec3b8337a16f22de43ce9b19
md5sums = 8d0634b0962ad621a7608378d7172e02
md5sums = 3fd08eeb86036fa9b18b91a91c62cb99
md5sums = 996b0cdc8e4448ee456603c6640bb19b
+ md5sums = 624e73ece72789f3aeff3b6497cabb77
pkgname = 7kaa
diff --git a/PKGBUILD b/PKGBUILD
index 6bec6faa08ac..2e8ea6ec5312 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -4,7 +4,7 @@
pkgname=7kaa
pkgver=2.15.2
-pkgrel=1
+pkgrel=2
pkgdesc='Seven Kingdoms: Ancient Adversaries is a real-time strategy (RTS) computer game developed by Trevor Chan'
url='http://7kfans.com/'
arch=('i686' 'x86_64')
@@ -16,13 +16,21 @@ provides=('7kaa-data')
source=("https://github.com/the3dfxdude/${pkgname}/releases/download/v${pkgver}/${pkgname}-${pkgver}.tar.xz"
"${pkgname}.sh"
"${pkgname}.desktop"
- "${pkgname}.ico")
+ "${pkgname}.ico"
+ "buffer_overflow.patch")
md5sums=('abd3648aec3b8337a16f22de43ce9b19'
'8d0634b0962ad621a7608378d7172e02'
'3fd08eeb86036fa9b18b91a91c62cb99'
- '996b0cdc8e4448ee456603c6640bb19b')
+ '996b0cdc8e4448ee456603c6640bb19b'
+ '624e73ece72789f3aeff3b6497cabb77')
+prepare() {
+ cd ${pkgname}-${pkgver}
+ # Fix https://github.com/the3dfxdude/7kaa/issues/172
+ patch -Np1 -i "${srcdir}"/buffer_overflow.patch
+}
+
build() {
cd "${srcdir}/${pkgname}-${pkgver}"
./configure
diff --git a/buffer_overflow.patch b/buffer_overflow.patch
new file mode 100644
index 000000000000..4cb21f2d1067
--- /dev/null
+++ b/buffer_overflow.patch
@@ -0,0 +1,18 @@
+--- 7kaa-2.15.2/src/LocaleRes.cpp
++++ 7kaa-2.15.2/src/LocaleRes.cpp
+@@ -107,10 +107,12 @@
+ strcpy(lang, "??");
+ strcpy(codeset, "ISO-8859-1");
+ }
+- strcat(codeset, "//TRANSLIT");
+
+- cd = iconv_open(codeset, "");
++ String tocode(codeset);
++ tocode += "//TRANSLIT";
++ cd = iconv_open(tocode, "");
+ cd_latin = iconv_open("ISO-8859-1", "");
++
+ in_buf = mem_add(INIT_BUF_SIZE+1);
+ in_buf_size = INIT_BUF_SIZE;
+ out_buf = mem_add(INIT_BUF_SIZE+1);
+