URL:
  <http://gna.org/bugs/?21349>

                 Summary: Handicaps pointer rather than contents copied on
civil war => double free()
                 Project: Freeciv
            Submitted by: jtn
            Submitted on: Sat Dec 14 16:03:50 2013
                Category: ai
                Severity: 3 - Normal
                Priority: 5 - Normal
                  Status: In Progress
             Assigned to: jtn
        Originator Email: 
             Open/Closed: Open
                 Release: trunk r23854
         Discussion Lock: Any
        Operating System: Any
         Planned Release: 2.6.0

    _______________________________________________________

Details:

In split_player(), we have


  cplayer->ai_common.handicaps = pplayer->ai_common.handicaps;


handicaps is a void* allocated by handicaps_init() and freed by
handicaps_close(), so should be copied deeply rather than shallowly. (Caused
by patch #4197, I think.)

This manifested as an invalid free() on server shutdown. Presumably also a
tiny memory leak.


*** glibc detected *** ./server/freeciv-server: free(): invalid pointer:
0x0000000003f8e880 ***
======= Backtrace: =========
/lib/x86_64-linux-gnu/libc.so.6(+0x7eb96)[0x7f6971bbfb96]
./server/freeciv-server(handicaps_close+0x10)[0x45ce30]
./server/freeciv-server(server_remove_player+0x195)[0x49eee5]
./server/freeciv-server(server_game_free+0xbc)[0x43b95c]
./server/freeciv-server(server_quit+0x18)[0x43bb18]
./server/freeciv-server[0x44b0eb]
./server/freeciv-server(handle_chat_msg_req+0x45d)[0x4f12bd]
./server/freeciv-server(server_handle_packet+0x6d2)[0x4966d2]
./server/freeciv-server(server_packet_input+0xbb)[0x43946b]
./server/freeciv-server(server_sniff_all_input+0x8b2)[0x4d7632]
./server/freeciv-server(srv_main+0xaa5)[0x43c625]
./server/freeciv-server(main+0x78a)[0x43405a]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xed)[0x7f6971b6276d]
./server/freeciv-server[0x4346b1]





    _______________________________________________________

Reply to this item at:

  <http://gna.org/bugs/?21349>

_______________________________________________
  Message sent via/by Gna!
  http://gna.org/


_______________________________________________
Freeciv-dev mailing list
Freeciv-dev@gna.org
https://mail.gna.org/listinfo/freeciv-dev

Reply via email to