Parsing integer value in test case vector does not store
it because only string was expected. This patch adds handling
for integer value as well.

Fixes: 58cc98801eb ("examples/fips_validation: add JSON parsing")

Signed-off-by: Gowrishankar Muthukrishnan <gmuthukri...@marvell.com>
---
 examples/fips_validation/fips_validation.c | 29 ++++++++++++++++------
 1 file changed, 21 insertions(+), 8 deletions(-)

diff --git a/examples/fips_validation/fips_validation.c 
b/examples/fips_validation/fips_validation.c
index f7a6d821ea..d3b6099d73 100644
--- a/examples/fips_validation/fips_validation.c
+++ b/examples/fips_validation/fips_validation.c
@@ -543,15 +543,28 @@ fips_test_parse_one_json_case(void)
 
        for (i = 0; info.callbacks[i].key != NULL; i++) {
                param = json_object_get(json_info.json_test_case, 
info.callbacks[i].key);
-               if (param) {
-                       strcpy(info.one_line_text, json_string_value(param));
-                       ret = info.callbacks[i].cb(
-                               info.callbacks[i].key, info.one_line_text,
-                               info.callbacks[i].val
-                       );
-                       if (ret < 0)
-                               return ret;
+               if (!param)
+                       continue;
+
+               switch (json_typeof(param)) {
+               case JSON_STRING:
+                       snprintf(info.one_line_text, MAX_LINE_CHAR, "%s",
+                                        json_string_value(param));
+                       break;
+
+               case JSON_INTEGER:
+                       snprintf(info.one_line_text, MAX_LINE_CHAR, 
"%"JSON_INTEGER_FORMAT,
+                                        json_integer_value(param));
+                       break;
+
+               default:
+                       return -EINVAL;
                }
+
+               ret = info.callbacks[i].cb(info.callbacks[i].key, 
info.one_line_text,
+                               info.callbacks[i].val);
+               if (ret < 0)
+                       return ret;
        }
 
        return 0;
-- 
2.25.1

Reply via email to