From 3d6d1b61e8be25d50bcb35383078fec8706354f3 Mon Sep 17 00:00:00 2001 From: Sachin Bansal Date: Fri, 24 Feb 2017 16:14:09 -0800 Subject: [PATCH] Add defensive checks while parsing rabbitmq messages Change-Id: Icac52b6221c88eecc4b4a767f07a680df16451c1 Related-Bug: 1664753 --- src/ifmap/client/config_amqp_client.cc | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/ifmap/client/config_amqp_client.cc b/src/ifmap/client/config_amqp_client.cc index b3a66ef827b..0284e40b13a 100644 --- a/src/ifmap/client/config_amqp_client.cc +++ b/src/ifmap/client/config_amqp_client.cc @@ -200,12 +200,17 @@ bool ConfigAmqpClient::ProcessMessage(const string &json_message) { obj_type = itr->value.GetString(); } else if (key == "obj_dict") { ostringstream os; + if (!itr->value.HasMember("fq_name")) + continue; + if (!itr->value["fq_name"].IsArray()) + continue; size_t sz = itr->value["fq_name"].GetArray().Size(); for (size_t i=0; ivalue["fq_name"][SizeType(i)].IsString()) + continue; os << itr->value["fq_name"][SizeType(i)].GetString(); - if (i < sz-1) { + if (i < sz-1) os << ":"; - } } obj_name = os.str(); } else if (key == "uuid") {