Opened 3 years ago

Closed 3 years ago

#10984 closed Bug report (fixed)

crash-hang on connection attempt

Reported by: Elmar Stellnberger Owned by:
Priority: normal Component: FileZilla Client
Keywords: Cc:
Component version: 3.20.0-1 Operating system type: Linux
Operating system version: 4.8.0-rc6+

Description

Everytime I want to connect with eight.alfahosting-server.de filezilla throws me a backtrace:

ASSERT INFO:
../include/wx/string.h(1536): assert "!empty()" failed in Last(): wxString: index out of bounds

BACKTRACE:
[1] wxMimeTypesManagerImpl::Initialize(int, wxString const&)
[2] wxMimeTypesManagerImpl::InitIfNeeded()
[3] wxMimeTypesManagerImpl::GetFileTypeFromExtension(wxString const&)
[4] wxMimeTypesManager::GetFileTypeFromExtension(wxString const&)
[5] wxString wxString::Format<wxString, wxString>(wxFormatString const&, wxString, wxString)
[6] void std::cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >::_M_construct<wchar_t const*>(wchar_t const*, wchar_t const*, std::forward_iterator_tag)
[7] wxAppConsoleBase::CallEventHandler(wxEvtHandler*, wxEventFunctor&, wxEvent&) const
[8] wxEvtHandler::ProcessEventIfMatchesId(wxEventTableEntryBase const&, wxEvtHandler*, wxEvent&)
[9] wxEventHashTable::HandleEvent(wxEvent&, wxEvtHandler*)
[10] wxEvtHandler::TryHereOnly(wxEvent&)
[11] wxEvtHandler::ProcessEventLocally(wxEvent&)
[12] wxEvtHandler::ProcessEvent(wxEvent&)
[13] wxEvtHandler::SafelyProcessEvent(wxEvent&)
[14] g_closure_invoke
[15] g_signal_emit_valist
[16] g_signal_emit
[17] gtk_propagate_event
[18] gtk_main_do_event
[19] g_main_context_dispatch
[20] g_main_loop_run
[21] gtk_main
[22] wxGUIEventLoop::DoRun()
[23] wxEventLoopBase::Run()
[24] wxAppConsoleBase::MainLoop()
[25] wxEntry(int&, wchar_t)
[26]
libc_start_main

Change History (5)

comment:1 Changed 3 years ago by Tim Kosse

Status: newmoreinfo

Most likely your XDG_DATA_HOME or XDG_DATA_DIRS environment variable contains a stray extra colon that doesn't belong in it.

What are the values of these variables on your system?

comment:2 Changed 3 years ago by Tim Kosse

Priority: blockernormal

Not a blocker as it doesn't prevent using FileZilla, these asserts are continuable.

comment:3 Changed 3 years ago by Elmar Stellnberger

Status: moreinfonew

Now I have taken snapshots of the environment on the very same machine as user:

XDG_DATA_DIRS=/usr/local/share:/usr/share (HOME_DIR not set)

... and as root:

XDG_DATA_DIRS=/usr/local/share:/usr/share

comment:4 Changed 3 years ago by Elmar Stellnberger

... wait a minute; I am trying here on another machine where XDG_DATA_DIRS=/usr/share/xfce4:::/usr/share - and the bug is reproducible here on the FTS Celsius H265/H270 - and I can press on continue.

comment:5 Changed 3 years ago by Tim Kosse

Resolution: fixed
Status: newclosed

Yes, that's not a valid list of paths. According to the XDG Base Directory Specifications, XDG_DATA_DIRS contains a colon separated list of absolute paths. Empty segments between two colons are neither absolute nor paths.

According to the specs, programs are supposed to ignore invalid data. Unfortunately due to a bug in wxWidgets, this didn't happen for empty segments. I've committed a path to wxWidgets that fixes this issue: https://github.com/wxWidgets/wxWidgets/commit/255b2adea2b5b865e08d83ed06cae3b8863f84a9

Note: See TracTickets for help on using tickets.