summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjc_gargma <jc_gargma@iserlohn-fortress.net>2019-08-22 13:02:12 -0700
committerjc_gargma <jc_gargma@iserlohn-fortress.net>2019-08-22 13:02:12 -0700
commit083e7ce83a8ad5101687123ea9b9b6766a4b3ee6 (patch)
tree2c966dd50562dab1b59ca66c9ad3658026a63c8a
parentUpdated to 2.15.2 (diff)
download7kaa-083e7ce83a8ad5101687123ea9b9b6766a4b3ee6.tar.xz
Added hotfix for buffer overflow
-rw-r--r--PKGBUILD13
-rw-r--r--buffer_overflow.patch18
2 files changed, 28 insertions, 3 deletions
diff --git a/PKGBUILD b/PKGBUILD
index 0f953e6..6eff166 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -9,7 +9,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='https://7kfans.com/'
arch=('i686' 'x86_64')
@@ -21,12 +21,19 @@ provides=('7kaa-data')
source=("https://github.com/the3dfxdude/${pkgname}/releases/download/v${pkgver}/${pkgname}-${pkgver}.tar.xz"
"${pkgname}.sh"
"${pkgname}.desktop"
- "${pkgname}.png")
+ "${pkgname}.png"
+ "buffer_overflow.patch")
md5sums=('abd3648aec3b8337a16f22de43ce9b19'
'78e098c8e8b2467f02da886f8bc431a0'
'880d2760bdb02f8f73552e13f3a1a5a9'
- 'a44784360325c94b605de06f7154d121')
+ 'a44784360325c94b605de06f7154d121'
+ '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}"
diff --git a/buffer_overflow.patch b/buffer_overflow.patch
new file mode 100644
index 0000000..4cb21f2
--- /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);
+