about summary refs log tree commit diff
path: root/pkgs/games/quake3/game/botlib.patch
blob: 82e2c78110129898f3d42aee0d426d39309799a5 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
Retrieved from https://bugzilla.icculus.org/show_bug.cgi?id=4331,
removed path prefix.

  -- nckx <tobias.geerinckx.rice@gmail.com>

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] == '\'')
 	{