Fixes: 0d547ed0 ("examples/ipsec-secgw: support configuration
file")
Coverity issue: 137875

Signed-off-by: Fan Zhang <roy.fan.zhang at intel.com>
---
 examples/ipsec-secgw/sa.c | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/examples/ipsec-secgw/sa.c b/examples/ipsec-secgw/sa.c
index 9e2c8a9..8c4406c 100644
--- a/examples/ipsec-secgw/sa.c
+++ b/examples/ipsec-secgw/sa.c
@@ -170,15 +170,18 @@ static uint32_t
 parse_key_string(const char *key_str, uint8_t *key)
 {
        const char *pt_start = key_str, *pt_end = key_str;
-       char sub_str[3];
        uint32_t nb_bytes = 0;

        while (pt_end != NULL) {
+               char sub_str[3] = {0};
+
                pt_end = strchr(pt_start, ':');

-               if (pt_end == NULL)
-                       strncpy(sub_str, pt_start, strlen(pt_start));
-               else {
+               if (pt_end == NULL) {
+                       if (strlen(pt_start) > 2)
+                               return 0;
+                       strncpy(sub_str, pt_start, 2);
+               } else {
                        if (pt_end - pt_start > 2)
                                return 0;

-- 
2.5.5

Reply via email to