From b825befbdb8cf3ec2fdd3c9ddf471b8946868245 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Tue, 14 Jul 2015 00:57:06 +0200 Subject: quake3: add botlib patch for amd64 botlib abuses strcpy (source and dest overlap), and the strcpy function for 64 bit intel CPU's in the latest glibc, does not like this causing the bots to not load. --- pkgs/games/quake3/game/botlib.patch | 51 +++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 pkgs/games/quake3/game/botlib.patch (limited to 'pkgs/games/quake3/game/botlib.patch') diff --git a/pkgs/games/quake3/game/botlib.patch b/pkgs/games/quake3/game/botlib.patch new file mode 100644 index 00000000000..82e2c781101 --- /dev/null +++ b/pkgs/games/quake3/game/botlib.patch @@ -0,0 +1,51 @@ +Retrieved from https://bugzilla.icculus.org/show_bug.cgi?id=4331, +removed path prefix. + + -- nckx + +PATCH: Bots don't work on 64 bit Intel CPU's + +botlib abuses strcpy (source and dest overlap), and the strcpy function for 64 +bit intel CPU's in the latest glibc, does not like this causing the bots to not +load. + +The attached patch fixes this. + +Note this patch should be credited to: Andreas Bierfert (andreas.bierfert at +lowlatency.de) + +See: http://bugzilla.redhat.com/show_bug.cgi?id=526338 + +diff -up quake3-1.36/code/botlib/l_precomp.c~ quake3-1.36/code/botlib/l_precomp.c +--- code/botlib/l_precomp.c~ 2009-04-27 08:42:37.000000000 +0200 ++++ code/botlib/l_precomp.c 2009-11-03 21:03:08.000000000 +0100 +@@ -948,7 +948,7 @@ void PC_ConvertPath(char *path) + if ((*ptr == '\\' || *ptr == '/') && + (*(ptr+1) == '\\' || *(ptr+1) == '/')) + { +- strcpy(ptr, ptr+1); ++ memmove(ptr, ptr+1, strlen(ptr)); + } //end if + else + { +diff -up quake3-1.36/code/botlib/l_script.c~ quake3-1.36/code/botlib/l_script.c +--- code/botlib/l_script.c~ 2009-04-27 08:42:37.000000000 +0200 ++++ code/botlib/l_script.c 2009-11-03 21:06:11.000000000 +0100 +@@ -1118,7 +1118,7 @@ void StripDoubleQuotes(char *string) + { + if (*string == '\"') + { +- strcpy(string, string+1); ++ memmove(string, string+1, strlen(string)); + } //end if + if (string[strlen(string)-1] == '\"') + { +@@ -1135,7 +1135,7 @@ void StripSingleQuotes(char *string) + { + if (*string == '\'') + { +- strcpy(string, string+1); ++ memmove(string, string+1, strlen(string)); + } //end if + if (string[strlen(string)-1] == '\'') + { -- cgit 1.4.1