Client segfaults on OpenBSD
``` Thread 1 received signal SIGSEGV, Segmentation fault. 0x000000ef6b5028c2 in tListItemBase::Remove (this=0xf1d50bed00) at tools/tLinkedList.cpp:32 32 *anchor = next; (gdb) bt #0 0x000000ef6b5028c2 in tListItemBase::Remove (this=0xf1d50bed00) at tools/tLinkedList.cpp:32 #1 0x000000ef6b2366dc in tListItemBase::~tListItemBase (this=0xf1d50bed00) at ./tools/tLinkedList.h:48 #2 0x000000ef6b31906f in tListItem<gNetPlayerWall>::~tListItem (this=0xf1d50bed00) at ./tools/tLinkedList.h:70 #3 0x000000ef6b3152a3 in gNetPlayerWall::~gNetPlayerWall (this=0xf1d50bed00) at tron/gWall.cpp:2078 #4 0x000000ef6b315366 in gNetPlayerWall::~gNetPlayerWall (this=0xf1d50bed00) at tron/gWall.cpp:2075 #5 0x000000ef6b478ce8 in nNetObject::Release (this=0xf1d50bed18) at network/nNetObject.cpp:617 #6 0x000000ef6b271cd0 in tJUST_CONTROLLED_PTR<nNetObject>::Release (this=0xf1b3aaaca8) at ./tools/tSafePTR.h:299 #7 0x000000ef6b4678c2 in tJUST_CONTROLLED_PTR<nNetObject>::~tJUST_CONTROLLED_PTR ( this=0xf1b3aaaca8) at ./tools/tSafePTR.h:374 #8 0x000000ef6b48126f in nDeletedInfo::~nDeletedInfo (this=0xf1b3aaaca8) at network/nNetObject.cpp:129 #9 0x000000ef6b481233 in std::__1::pair<unsigned short const, nDeletedInfo>::~pair ( this=0xf1b3aaaca0) at /usr/include/c++/v1/utility:316 #10 0x000000ef6b4811e6 in std::__1::allocator_traits<std::__1::allocator<std::__1::__tree_node<std::__1::__value_type<unsigned short, nDeletedInfo>, void*> > >::__destroy<std::__1::pair<unsigned short const, nDeletedInfo> > (__p=0xf1b3aaaca0) at /usr/include/c++/v1/memory:1748 ---Type <return> to continue, or q <return> to quit--- #11 0x000000ef6b48108a in std::__1::allocator_traits<std::__1::allocator<std::__1::__tree_node<std::__1::__value_type<unsigned short, nDeletedInfo>, void*> > >::destroy<std::__1::pair<unsigned short const, nDeletedInfo> > (__a=..., __p=0xf1b3aaaca0) at /usr/include/c++/v1/memory:1596 #12 0x000000ef6b480f9c in std::__1::__tree<std::__1::__value_type<unsigned short, nDeletedInfo>, std::__1::__map_value_compare<unsigned short, std::__1::__value_type<unsigned short, nDeletedInfo>, std::__1::less<unsigned short>, true>, std::__1::allocator<std::__1::__value_type<unsigned short, nDeletedInfo> > >::destroy (this=0x7f7ffffeea10, __nd=0xf1b3aaac80) at /usr/include/c++/v1/__tree:1854 #13 0x000000ef6b480f61 in std::__1::__tree<std::__1::__value_type<unsigned short, nDeletedInfo>, std::__1::__map_value_compare<unsigned short, std::__1::__value_type<unsigned short, nDeletedInfo>, std::__1::less<unsigned short>, true>, std::__1::allocator<std::__1::__value_type<unsigned short, nDeletedInfo> > >::destroy (this=0x7f7ffffeea10, __nd=0xf1b3aaa4c0) at /usr/include/c++/v1/__tree:1852 #14 0x000000ef6b480f61 in std::__1::__tree<std::__1::__value_type<unsigned short, nDeletedInfo>, std::__1::__map_value_compare<unsigned short, std::__1::__value_type<unsigned short, nDeletedInfo>, std::__1::less<unsigned short>, true>, std::__1::allocator<std::__1::__value_type<unsigned short, nDeletedInfo> > >::destroy (this=0x7f7ffffeea10, __nd=0xf1b3aaa500) at /usr/include/c++/v1/__tree:1852 #15 0x000000ef6b480f61 in std::__1::__tree<std::__1::__value_type<unsigned short, nDeletedInfo>, std::__1::__map_value_compare<unsigned short, std::__1::__value_type<unsigned short, nDeletedInfo>, std::__1::less<unsigned short>, true>, std::__1::allocator<std::__1::__value_type<unsigned short, nDeletedInfo> > >::destroy (this=0x7f7ffffeea10, __nd=0xf17bd09680) at /usr/include/c++/v1/__tree:1852 ---Type <return> to continue, or q <return> to quit--- #16 0x000000ef6b480f61 in std::__1::__tree<std::__1::__value_type<unsigned short, nDeletedInfo>, std::__1::__map_value_compare<unsigned short, std::__1::__value_type<unsigned short, nDeletedInfo>, std::__1::less<unsigned short>, true>, std::__1::allocator<std::__1::__value_type<unsigned short, nDeletedInfo> > >::destroy (this=0x7f7ffffeea10, __nd=0xf17bd09e80) at /usr/include/c++/v1/__tree:1852 #17 0x000000ef6b480f61 in std::__1::__tree<std::__1::__value_type<unsigned short, nDeletedInfo>, std::__1::__map_value_compare<unsigned short, std::__1::__value_type<unsigned short, nDeletedInfo>, std::__1::less<unsigned short>, true>, std::__1::allocator<std::__1::__value_type<unsigned short, nDeletedInfo> > >::destroy (this=0x7f7ffffeea10, __nd=0xf17ccf3800) at /usr/include/c++/v1/__tree:1852 #18 0x000000ef6b480f61 in std::__1::__tree<std::__1::__value_type<unsigned short, nDeletedInfo>, std::__1::__map_value_compare<unsigned short, std::__1::__value_type<unsigned short, nDeletedInfo>, std::__1::less<unsigned short>, true>, std::__1::allocator<std::__1::__value_type<unsigned short, nDeletedInfo> > >::destroy (this=0x7f7ffffeea10, __nd=0xf17bd09a40) at /usr/include/c++/v1/__tree:1852 #19 0x000000ef6b480f61 in std::__1::__tree<std::__1::__value_type<unsigned short, nDeletedInfo>, std::__1::__map_value_compare<unsigned short, std::__1::__value_type<unsigned short, nDeletedInfo>, std::__1::less<unsigned short>, true>, std::__1::allocator<std::__1::__value_type<unsigned short, nDeletedInfo> > >::destroy (this=0x7f7ffffeea10, __nd=0xf255b961c0) at /usr/include/c++/v1/__tree:1852 #20 0x000000ef6b480f61 in std::__1::__tree<std::__1::__value_type<unsigned short, nDeletedInfo>, std::__1::__map_value_compare<unsigned short, std::__1::__value_type<unsigned short, nDeletedInfo>, std::__1::less<unsigned short>, true>, std::__1::allocator<std::__1::__value_type<unsigned short, nDeletedInfo> > >::destroy (this=0x7f7ffffeea10, ---Type <return> to continue, or q <return> to quit--- __nd=0xf1b92b6ec0) at /usr/include/c++/v1/__tree:1852 #21 0x000000ef6b489e92 in std::__1::__tree<std::__1::__value_type<unsigned short, nDeletedInfo>, std::__1::__map_value_compare<unsigned short, std::__1::__value_type<unsigned short, nDeletedInfo>, std::__1::less<unsigned short>, true>, std::__1::allocator<std::__1::__value_type<unsigned short, nDeletedInfo> > >::clear (this=0x7f7ffffeea10) at /usr/include/c++/v1/__tree:1891 #22 0x000000ef6b47f99f in std::__1::map<unsigned short, nDeletedInfo, std::__1::less<unsigned short>, std::__1::allocator<std::__1::pair<unsigned short const, nDeletedInfo> > >::clear (this=0x7f7ffffeea10) at /usr/include/c++/v1/map:1306 #23 0x000000ef6b47bd47 in nNetObject::ClearAllDeleted () at network/nNetObject.cpp:1753 #24 0x000000ef6b2b6b34 in gGame::StateUpdate (this=0xf171503c00) at tron/gGame.cpp:3655 #25 0x000000ef6b2bebc9 in GameLoop (input=true) at tron/gGame.cpp:5589 #26 0x000000ef6b2beee7 in sg_EnterGameCore (enter_state=nCLIENT) at tron/gGame.cpp:5664 #27 0x000000ef6b2b0840 in sg_EnterGame (enter_state=nCLIENT) at tron/gGame.cpp:5717 #28 0x000000ef6b2b0308 in ConnectToServerCore (server=0xf1f951ec18) at tron/gGame.cpp:2422 #29 0x000000ef6b2b0a91 in ConnectToServer (server=0xf1f951ec18) at tron/gGame.cpp:2467 #30 0x000000ef6b3066c8 in gServerMenuItem::Enter (this=0xf1d542df80) at tron/gServerBrowser.cpp:949 #31 0x000000ef6b4cd754 in uMenu::HandleEvent (this=0x7f7ffffef5f8, event=...) at ui/uMenu.cpp:429 #32 0x000000ef6b3037ec in gServerMenu::HandleEvent (this=0x7f7ffffef5f8, event=...) at tron/gServerBrowser.cpp:362 #33 0x000000ef6b4cc138 in uMenu::OnEnter (this=0x7f7ffffef5f8) at ui/uMenu.cpp:224 ``` Note that this is the sty+ct+ap branch, but this shouldn't be specific to it. Probably not specific to clients as well, but haven't tested.
issue