[CF-Devel] Strange behavior? dead objects benig hit?

Jan Echternach echter at informatik.uni-rostock.de
Tue Nov 21 04:51:21 CST 2000


On Mon, Nov 20, 2000 at 08:28:02PM -0800, Peter Mardahl wrote:
>
     
      BUG: get_attack_mode(): freed object
     
     
Indeed, very serious problem.  Even though the checks in
get_attack_mode() should prevent the attack code from touching this
object, there is still the caller of attack_ob()/hit_player() that is
using freed objects.  A stack trace is needed to identify the caller.
I've no idea how to reproduce this problem, I've never seen this
message.

>
     
      victim (arch cwall_2_1_2, name wall) already dead in hit_player()
     
     
hit_player() was called with an object that doesn't have FLAG_ALIVE, or
that has stats.hp < 0.  This is only a debugging message I added
recently, the check for dead objects was already there.  Nevertheless,
it would be quite interesting to know what code tries to damage dead
objects.  Again, stack trace needed.

>
     
      I'm getting lots of these sorts of messages.
     
     >
     
      Curreent CVS snapshot.
     
     >
     
     
     >
     
      Perhaps we should hold off on a release for a little while?
     
     
I think we should hold off the release until the "freed object" bug is
fixed.  This kind of bug can have very nasty effects (segmentation
fault, creating objects that are in their own inventory (op->inv loop),
random other object corruption), but is easy to fix when a stack trace
is known (usually only a missing was_destroyed() check in the caller).

-- 
Jan

    
    


More information about the crossfire mailing list