Opened 18 years ago
Closed 18 years ago
#261 closed Bugs (Fixed)
Dereferencing invalid iterator
| Reported by: | nobody | Owned by: | jsiek |
|---|---|---|---|
| Milestone: | Component: | graph | |
| Version: | None | Severity: | |
| Keywords: | Cc: |
Description
boost 1.31.0, subgraph.hpp, line 179, function find_vertex(vertex_descriptor u_global) const; return std::make_pair((*i).second, i != m_local_vertex.end()); //if i == m_local_vertex.end() - iterator should not be dereferenced
Change History (3)
comment:2 by , 18 years ago
Logged In: YES
user_id=1033441
Well, actually you can only make it crash consistently building
with STLPort with _STLP_DEBUG macro defined - only then
dereferencing invalid iterator is checked. In all other cases it
may crush - or it may not (coz dereferencing an invalid
iterator causes an undefined behavior)
#define _STLP_DEBUG
#include <boost/config.hpp>
#include <iostream>
#include <boost/graph/subgraph.hpp>
#include <boost/graph/adjacency_list.hpp>
#include <boost/graph/graph_utility.hpp>
int main(int,char*[])
{
using namespace boost;
typedef adjacency_list_traits<vecS, vecS, directedS> Traits;
typedef subgraph< adjacency_list<vecS, vecS, directedS,
property<vertex_color_t, int>, property<edge_index_t,
int> > > Graph;
const int N = 6;
Graph G0(N);
enum { A, B, C, D, E, F};
Graph& G1 = G0.create_subgraph();
add_vertex(C, G1);
G1.find_vertex(78);
return 0;
}
comment:3 by , 18 years ago
| Status: | assigned → closed |
|---|
Logged In: YES user_id=249098 This bug has been fixed in 1.32.0: confirmed with libstdc++ debug mode.
Note:
See TracTickets
for help on using tickets.
