#include "pmqos.h"
+#define MAX_NUM_OF_SCENARIOS 255
+
static bool is_supported(const char *value)
{
assert(value);
if (MATCH(result->name, "scenario_support"))
scenarios->support = is_supported(result->value);
else if (MATCH(result->name, "scenario_num")) {
- scenarios->num = atoi(result->value);
+ int num = atoi(result->value);
+
+ if (num > MAX_NUM_OF_SCENARIOS)
+ return -EINVAL;
+
+ scenarios->num = num;
+
if (scenarios->num > 0) {
scenarios->list = calloc(scenarios->num,
sizeof(struct scenario));
/* Parse 'Scenario' section */
if (MATCH(result->name, "name"))
- strcpy(scenarios->list[index].name, result->value);
+ snprintf(scenarios->list[index].name, strlen(result->value) + 1,
+ "%s", result->value);
else if (MATCH(result->name, "support"))
scenarios->list[index].support = is_supported(result->value);