The following commit has been merged in the debian-experimental branch:
commit 1125d41e93a31cb311481da696768c35545fcb63
Author: Simon McVittie <[email protected]>
Date:   Thu Mar 10 23:44:46 2011 +0000

    Add a potential patch for an OpenArena crash (might close: #607178)

diff --git a/debian/changelog b/debian/changelog
index 18d62b2..98cb0db 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -6,6 +6,7 @@ ioquake3 (1.36+svn1921-1) experimental; urgency=low
     - remove patch 0015 again, breaking obsolete experimental openarena
       versions (if you're running 0.8.5-5+expX for any X, please upgrade)
     - add patch to compile against OpenAL Soft extension headers
+  * Add a potential patch for an OpenArena crash (might close: #607178)
 
  -- Simon McVittie <[email protected]>  Thu, 10 Mar 2011 23:05:29 +0000
 
diff --git a/debian/patches/0007-potential-fix-for-an-OpenArena-crash.patch 
b/debian/patches/0007-potential-fix-for-an-OpenArena-crash.patch
new file mode 100644
index 0000000..33e4795
--- /dev/null
+++ b/debian/patches/0007-potential-fix-for-an-OpenArena-crash.patch
@@ -0,0 +1,77 @@
+From: Thilo Schulz <thilo>
+Date: Thu, 10 Mar 2011 23:18:32 +0000
+Subject: potential fix for an OpenArena crash
+
+Origin: upstream
+Bug: https://bugzilla.icculus.org/show_bug.cgi?id=4893
+Bug-Debian: http://bugs.debian.org/607178
+---
+ code/botlib/be_aas_route.c |   50 +++++++++++++++++++++++++++----------------
+ 1 files changed, 31 insertions(+), 19 deletions(-)
+
+diff --git a/code/botlib/be_aas_route.c b/code/botlib/be_aas_route.c
+index 0d240dc..95f0ad7 100644
+--- a/code/botlib/be_aas_route.c
++++ b/code/botlib/be_aas_route.c
+@@ -1857,29 +1857,41 @@ int AAS_PredictRoute(struct aas_predictroute_s *route, 
int areanum, vec3_t origi
+                       if (j >= reachareas->numareas)
+                               testareanum = reach->areanum;
+                       else
+-                              testareanum = 
aasworld.reachabilityareaindex[reachareas->firstarea + j];
+-                      if (stopevent & RSE_ENTERCONTENTS)
+                       {
+-                              if (aasworld.areasettings[testareanum].contents 
& stopcontents)
++                              if(reachareas->firstarea + j < 
aasworld.numreachabilityareas)
++                                      testareanum = 
aasworld.reachabilityareaindex[reachareas->firstarea + j];
++                              else
+                               {
+-                                      route->stopevent = RSE_ENTERCONTENTS;
+-                                      route->endarea = testareanum;
+-                                      route->endcontents = 
aasworld.areasettings[testareanum].contents;
+-                                      VectorCopy(reach->end, route->endpos);
+-                                      route->time += 
AAS_AreaTravelTime(areanum, origin, reach->start);
+-                                      route->time += reach->traveltime;
+-                                      return qtrue;
+-                              } //end if
+-                      } //end if
+-                      if (stopevent & RSE_ENTERAREA)
++                                      j = reachareas->numareas;
++                                      continue;
++                              }
++                      }
++                      
++                      if(testareanum < aasworld.numareasettings)
+                       {
+-                              if (testareanum == stopareanum)
++                              if (stopevent & RSE_ENTERCONTENTS)
+                               {
+-                                      route->stopevent = RSE_ENTERAREA;
+-                                      route->endarea = testareanum;
+-                                      route->endcontents = 
aasworld.areasettings[testareanum].contents;
+-                                      VectorCopy(reach->start, route->endpos);
+-                                      return qtrue;
++                                      if 
(aasworld.areasettings[testareanum].contents & stopcontents)
++                                      {
++                                              route->stopevent = 
RSE_ENTERCONTENTS;
++                                              route->endarea = testareanum;
++                                              route->endcontents = 
aasworld.areasettings[testareanum].contents;
++                                              VectorCopy(reach->end, 
route->endpos);
++                                              route->time += 
AAS_AreaTravelTime(areanum, origin, reach->start);
++                                              route->time += 
reach->traveltime;
++                                              return qtrue;
++                                      } //end if
++                              } //end if
++                              if (stopevent & RSE_ENTERAREA)
++                              {
++                                      if (testareanum == stopareanum)
++                                      {
++                                              route->stopevent = 
RSE_ENTERAREA;
++                                              route->endarea = testareanum;
++                                              route->endcontents = 
aasworld.areasettings[testareanum].contents;
++                                              VectorCopy(reach->start, 
route->endpos);
++                                              return qtrue;
++                                      } // end if
+                               } //end if
+                       } //end if
+               } //end for
+-- 
diff --git a/debian/patches/series b/debian/patches/series
index aba12c9..c708345 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -4,3 +4,4 @@
 0004-Increase-the-command-buffer-from-16K-to-128K-followi.patch
 0005-Double-the-default-com_hunkMegs-to-128M.patch
 0006-If-using-system-OpenAL-include-alext.h-for-ALC_ALL_D.patch
+0007-potential-fix-for-an-OpenArena-crash.patch

-- 
Quake 3 engine

_______________________________________________
Pkg-games-commits mailing list
[email protected]
http://lists.alioth.debian.org/mailman/listinfo/pkg-games-commits

Reply via email to