cisco-open-source/qtwebdriver

Problem on Session::UpdateViews function causing seg fault.

efauk opened this issue · 0 comments

efauk commented
void Session::UpdateViews(const std::set<ViewId>& views) {
    ViewsMap::iterator it;
    ViewId vi;

    for (it = views_.begin(); it != views_.end(); ++it) {
        vi = ViewId(it->first);
		
        if (vi.is_valid() && 0 == views.count(vi)) {
            // invalidate handle
            RemoveView(vi);
        }
    }
}

The RemoveView function deletes elements of the container views_. That operation invalidates the iterator, according to http://en.cppreference.com/w/cpp/container/set/erase, causing a seg fault.

Found on MAC.