From 91792dbd89801c681728b1b7d3b881489ba687a5 Mon Sep 17 00:00:00 2001 From: Vitaliy Senchyshyn <43479243+vsenchyshyn@users.noreply.github.com> Date: Wed, 1 Apr 2020 21:14:04 +0300 Subject: [PATCH] [syncd] Fix crash during stats polling (#586) --- syncd/Syncd.cpp | 2 +- syncd/VendorSai.cpp | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/syncd/Syncd.cpp b/syncd/Syncd.cpp index 34de8675e28c..e6711c62cb42 100644 --- a/syncd/Syncd.cpp +++ b/syncd/Syncd.cpp @@ -537,7 +537,7 @@ sai_status_t Syncd::processGetStatsEvent( counter_ids.push_back(val); } - std::vector result; + std::vector result(counter_ids.size()); auto status = m_vendorSai->getStats( metaKey.objecttype, diff --git a/syncd/VendorSai.cpp b/syncd/VendorSai.cpp index 955e0ea7a0d6..0539ac4ca17e 100644 --- a/syncd/VendorSai.cpp +++ b/syncd/VendorSai.cpp @@ -388,6 +388,12 @@ sai_status_t VendorSai::getStats( _In_ const sai_stat_id_t *counter_ids, _Out_ uint64_t *counters); + if (!counter_ids || !counters) + { + SWSS_LOG_ERROR("NULL pointer function argument"); + return SAI_STATUS_INVALID_PARAMETER; + } + switch ((int)object_type) { case SAI_OBJECT_TYPE_PORT: