1
0
Fork 0

Fix a nullptr dereferencing bug.

This commit is contained in:
Max Neunhoeffer 2015-05-02 07:03:32 +02:00
parent 371689fcff
commit 8b8f81c25d
1 changed files with 8 additions and 4 deletions

View File

@ -937,7 +937,8 @@ namespace triagens {
// FORWARD Go path back from intermediate -> start. // FORWARD Go path back from intermediate -> start.
// Insert all vertices and edges at front of vector // Insert all vertices and edges at front of vector
// Do NOT! insert the intermediate vertex // Do NOT! insert the intermediate vertex
while (strcmp(s->_predecessor.key,"") != 0) { while (s->_predecessor.key != nullptr &&
strcmp(s->_predecessor.key,"") != 0) {
r_edges.push_front(s->_edge); r_edges.push_front(s->_edge);
r_vertices.push_front(s->_predecessor); r_vertices.push_front(s->_predecessor);
s = forward._pq.find(s->_predecessor); s = forward._pq.find(s->_predecessor);
@ -947,7 +948,8 @@ namespace triagens {
// Insert all vertices and edges at back of vector // Insert all vertices and edges at back of vector
// Also insert the intermediate vertex // Also insert the intermediate vertex
s = backward._pq.find(_intermediate); s = backward._pq.find(_intermediate);
while (strcmp(s->_predecessor.key, "") != 0) { while (s->_predecessor.key != nullptr &&
strcmp(s->_predecessor.key, "") != 0) {
r_edges.push_back(s->_edge); r_edges.push_back(s->_edge);
r_vertices.push_back(s->_predecessor); r_vertices.push_back(s->_predecessor);
s = backward._pq.find(s->_predecessor); s = backward._pq.find(s->_predecessor);
@ -1013,7 +1015,8 @@ namespace triagens {
// FORWARD Go path back from intermediate -> start. // FORWARD Go path back from intermediate -> start.
// Insert all vertices and edges at front of vector // Insert all vertices and edges at front of vector
// Do NOT! insert the intermediate vertex // Do NOT! insert the intermediate vertex
while (strcmp(s->_predecessor.key, "") != 0) { while (s->_predecessor.key != nullptr &&
strcmp(s->_predecessor.key, "") != 0) {
r_edges.push_front(s->_edge); r_edges.push_front(s->_edge);
r_vertices.push_front(s->_predecessor); r_vertices.push_front(s->_predecessor);
s = forward._pq.find(s->_predecessor); s = forward._pq.find(s->_predecessor);
@ -1023,7 +1026,8 @@ namespace triagens {
// Insert all vertices and edges at back of vector // Insert all vertices and edges at back of vector
// Also insert the intermediate vertex // Also insert the intermediate vertex
s = backward._pq.find(_intermediate); s = backward._pq.find(_intermediate);
while (strcmp(s->_predecessor.key, "") != 0) { while (s->_predecessor.key != nullptr &&
strcmp(s->_predecessor.key, "") != 0) {
r_edges.push_back(s->_edge); r_edges.push_back(s->_edge);
r_vertices.push_back(s->_predecessor); r_vertices.push_back(s->_predecessor);
s = backward._pq.find(s->_predecessor); s = backward._pq.find(s->_predecessor);