Complete.Org: Mailing Lists: Archives: freeciv-dev: September 2003:
[Freeciv-Dev] Re: (PR#6203) AutoReply: server segfault with transporter
Home

[Freeciv-Dev] Re: (PR#6203) AutoReply: server segfault with transporter

[Top] [All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
To: undisclosed-recipients: ;
Subject: [Freeciv-Dev] Re: (PR#6203) AutoReply: server segfault with transporter code
From: "Jason Short" <jdorje@xxxxxxxxxxxxxxxxxxxxx>
Date: Fri, 19 Sep 2003 10:50:11 -0700
Reply-to: rt@xxxxxxxxxxxxxx

incoming wrote:

> #0  0x080ba904 in unit_type (punit=0x0) at unittype.c:96
> #1  0x080b8881 in is_ground_unit (punit=0x0) at unit.c:346
> #2  0x08089889 in check_units () at sanitycheck.c:279
> #3  0x08089a91 in sanity_check () at sanitycheck.c:327
> #4  0x0804f274 in main_loop () at srv_main.c:1437
> #5  0x0804fa5a in srv_loop () at srv_main.c:1800
> #6  0x0804f4de in srv_main () at srv_main.c:1587
> #7  0x0804a1e0 in main (argc=135242816, argv=0xbffffaa4) at civserver.c:154
> #8  0x401a34ed in __libc_start_main () from /lib/libc.so.6
> 
> I see no way that this assertion could fail, however:
>       assert(!is_ground_unit(find_unit_by_id(punit->transported_by)));

Oh, duh...

punit->transported_by == 656

but there is no unit 656.  So somewhere along the line transported_by 
becomes invalid.

It seems this is the same as PR#6200.  The wipe-unit.diff patch from 
there avoids the crash.

jason




[Prev in Thread] Current Thread [Next in Thread]
  • [Freeciv-Dev] Re: (PR#6203) AutoReply: server segfault with transporter code, Jason Short <=