tree d900185adfb475e71b1a7d38da62c2836dcd276c
parent a950e42ba579a3498face1654e58c94d9ff1cf9a
author Ankita Vilas Gawade <ankita.gawade@intel.com> 1642712104 +0000
committer Krzysztof Grobelny <krzysztof.grobelny@intel.com> 1643804248 +0000

Add limit to Metric URIs to avoid buffer overflow

This commit  Limits the Number of Metrics to 150 URIs to avoid
overpopulating the Event to be Sent. This is Necessary to avoid Buffer
Overflow During Creation of Periodic MetricReport (RedfishEvent) via
Event Service Subscription. This Buffer overflow occurs as the max size
of buffer used to send Events is limited to 1024*64

This commit also removes max-reading-parameter as max-number-metrics
indirectly places constraint over number of reading parameters (which
makes them mutually exclusive).The parameter max-number-metrics provides
a better control over size of the metrics compared to
max-reading-parameter as it restricts the number of overall uris instead
of number of metrics.

Additional limit for appendLimit was added to ensure we can store all
metric values in persistent memory.

Tested:
 - Created Metric Report Defination by POST to
   /redfish/v1/TelemetryService/MetricReportDefinitions/
   with <150, =150 and >150 Metric Uris
   Successfully returned error for metric uris>150.
 - Observed no buffer overflow for Maximum of 150 Metric Uris.
 - Verified buffer Overflow by Subscribing to Metric Reports
   using SSE.
 - Test case Passed
   [ RUN      ] TestReportManager.failToAddReportWith
                MoreSensorParametersThanExpected
   [       OK ] TestReportManager.failToAddReportWith
                MoreSensorParametersThanExpected (10 ms)
   [ RUN      ] TestReportManager.failToAddReportWith
                MoreMetricsThanExpected
   [       OK ] TestReportManager.failToAddReportWith
                MoreMetricsThanExpected (20 ms)
   [ RUN      ] TestReportManager.failToAddReportWith
                AppendLimitGreaterThanMax
   [       OK ] TestReportManager.failToAddReportWith
                AppendLimitGreaterThanMax (20 ms)

Signed-off-by: Ankita Vilas Gawade <ankita.gawade@intel.com>
Change-Id: I113c15c7b1054364d827f39582c7d3fbe9495d12
