[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#600145: freeze exception: openarena/0.8.5-5



Package: release.debian.org
Severity: normal
User: release.debian.org@packages.debian.org
Usertags: freeze-exception

Please consider unblocking openarena 0.8.5-5, which fixes a reasonably common
server crash with a one-line patch. I don't think it's RC, but it'd be
an unfortunate bug to have in stable.

unblock openarena/0.8.5-5

openarena (0.8.5-5) unstable; urgency=medium

  * Add patch (already upstream as oax r239) to fix a crash if a non-client
    object is damaged by a non-player source, e.g. setting off the Kamikaze
    near a powerup (Closes: #599866)

 -- Simon McVittie <smcv@debian.org>  Mon, 11 Oct 2010 19:40:30 +0100

The patch itself just adds a NULL pointer check (below). In upstream openarena
the bug is masked by the virtual machine, in which memory addresses just
wrap around, but we're using native code in Debian for DFSG reasons.

Regards,
    S

--- a/game/code/game/g_combat.c
+++ b/game/code/game/g_combat.c
@@ -1043,7 +1043,7 @@ void G_Damage( gentity_t *targ, gentity_t *inflictor, gentity_t *attacker,
         
         //Sago: See if the client was sent flying
         //Check if damage is by somebody who is not a player!
-        if( (!attacker || attacker->s.eType != ET_PLAYER) && client->lastSentFlying>-1 && ( mod==MOD_FALLING || mod==MOD_LAVA || mod==MOD_SLIME || mod==MOD_TRIGGER_HURT || mod==MOD_SUICIDE) )  {
+        if( (!attacker || attacker->s.eType != ET_PLAYER) && client && client->lastSentFlying>-1 && ( mod==MOD_FALLING || mod==MOD_LAVA || mod==MOD_SLIME || mod==MOD_TRIGGER_HURT || mod==MOD_SUICIDE) )  {
             if( client->lastSentFlyingTime+5000<level.time) {
                 client->lastSentFlying = -1; //More than 5 seconds, not a kill!
             } else {

Attachment: signature.asc
Description: Digital signature


Reply to: