diff options
author | jc_gargma <jc_gargma@iserlohn-fortress.net> | 2019-08-22 13:02:12 -0700 |
---|---|---|
committer | jc_gargma <jc_gargma@iserlohn-fortress.net> | 2019-08-22 13:02:12 -0700 |
commit | 083e7ce83a8ad5101687123ea9b9b6766a4b3ee6 (patch) | |
tree | 2c966dd50562dab1b59ca66c9ad3658026a63c8a | |
parent | Updated to 2.15.2 (diff) | |
download | 7kaa-083e7ce83a8ad5101687123ea9b9b6766a4b3ee6.tar.xz |
Added hotfix for buffer overflow
-rw-r--r-- | PKGBUILD | 13 | ||||
-rw-r--r-- | buffer_overflow.patch | 18 |
2 files changed, 28 insertions, 3 deletions
@@ -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); + |