Skip to content

Commit

Permalink
Merge "Fix dereference of null state pointer in ifmap introspect code…
Browse files Browse the repository at this point in the history
…." into R2.0
  • Loading branch information
Zuul authored and opencontrail-ci-admin committed May 18, 2015
2 parents 28abd8e + 4b418c6 commit 0da2f04
Showing 1 changed file with 9 additions and 6 deletions.
15 changes: 9 additions & 6 deletions src/ifmap/ifmap_server_show.cc
Original file line number Diff line number Diff line change
Expand Up @@ -336,8 +336,6 @@ void ShowIFMapLinkTable::CopyNode(IFMapLinkShowInfo *dest, DBEntryBase *src,
IFMapServer *server) {
IFMapLink *src_link = static_cast<IFMapLink *>(src);

IFMapLinkState *state = server->exporter()->LinkStateLookup(src_link);

dest->metadata = src_link->metadata();
if (src_link->left()) {
dest->left = src_link->left()->ToString();
Expand All @@ -347,8 +345,13 @@ void ShowIFMapLinkTable::CopyNode(IFMapLinkShowInfo *dest, DBEntryBase *src,
}

// Get the interests and advertised from state
dest->interests = state->interest().ToNumberedString();
dest->advertised = state->advertised().ToNumberedString();
IFMapLinkState *state = server->exporter()->LinkStateLookup(src_link);
if (state) {
dest->interests = state->interest().ToNumberedString();
dest->advertised = state->advertised().ToNumberedString();
} else {
dest->dbentryflags.append("No state, ");
}

if (src_link->IsDeleted()) {
dest->dbentryflags.append("Deleted, ");
Expand Down Expand Up @@ -572,7 +575,7 @@ bool ShowIFMapPerClientNodes::CopyNode(IFMapPerClientNodesShowInfo *dest,

IFMapNodeState *state = server->exporter()->NodeStateLookup(src_node);

if (state->interest().test(client_index)) {
if (state && state->interest().test(client_index)) {
dest->node_name = src_node->ToString();
if (state->advertised().test(client_index)) {
dest->sent = "Yes";
Expand Down Expand Up @@ -730,7 +733,7 @@ bool ShowIFMapPerClientLinkTable::CopyNode(IFMapPerClientLinksShowInfo *dest,

IFMapLinkState *state = server->exporter()->LinkStateLookup(src_link);

if (state->interest().test(client_index)) {
if (state && state->interest().test(client_index)) {
dest->metadata = src_link->metadata();
dest->left = src_link->left()->ToString();
dest->right = src_link->right()->ToString();
Expand Down

0 comments on commit 0da2f04

Please sign in to comment.