Complete.Org: Mailing Lists: Archives: freeciv-dev: October 2005:
[Freeciv-Dev] (PR#14188) Crash in hash or tileset code
Home

[Freeciv-Dev] (PR#14188) Crash in hash or tileset code

[Top] [All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
To: mstefek@xxxxxxxxx
Subject: [Freeciv-Dev] (PR#14188) Crash in hash or tileset code
From: "Jason Short" <jdorje@xxxxxxxxxxxxxxxxxxxxx>
Date: Tue, 4 Oct 2005 16:08:29 -0700
Reply-to: bugs@xxxxxxxxxxx

<URL: http://bugs.freeciv.org/Ticket/Display.html?id=14188 >

sprite_hash must be allocated by the time tiles are loaded.

Ignoring tilespec_reread, sprite_hash is:

- NULL on program start.
- Allocated in tilespec_read_toplevel, iff the function returns TRUE.
  * Called from main.
- Used in tilespec_load_tiles.
  * Called from ui_main.
    * Called from main, after tilespec_read_toplevel is called.
- Deallocated in tilespec_free_tiles.
  * Called from ui_main, only on program exit.

The most likely error you'd think would be a problem in
tilespec_read_toplevel allowing it to return TRUE without allocating the
sprite hash.  But this doesn't seem to happen.  I can find no flaw in
the logic of the code.  Of course it's possible there's a buffer overrun
or something.

To the original reporter: can you get a backtrace?  On linux run:

  > ulimit -c unlimited
  > civclient
  > gdb civclient core
  gdb> bt full

and send the output.  (Lines 2 or 3 may differ slightly if your client
is in a different place or if the crash leaves a file called core.3455
or something).

-jason




[Prev in Thread] Current Thread [Next in Thread]