diff options
author | Luca Muscariello <lumuscar+fdio@cisco.com> | 2019-02-01 20:00:21 +0000 |
---|---|---|
committer | Gerrit Code Review <gerrit@fd.io> | 2019-02-01 20:00:21 +0000 |
commit | 79f9c336d9d8af63e322e3c52f09fec3d7cb3c2b (patch) | |
tree | 7674e218ee813ff7aec6868ab86a1dd6c40af28f /hicn-light/src/config/controlSetStrategy.c | |
parent | e8fabe3f6313a3b9050fe16458e4714d9dce426e (diff) | |
parent | f5a0b8a5e24cede05e15ab696f0e15257a503525 (diff) |
Merge "[HICN24] Windows compatibility for hicn-light"
Diffstat (limited to 'hicn-light/src/config/controlSetStrategy.c')
-rw-r--r-- | hicn-light/src/config/controlSetStrategy.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/hicn-light/src/config/controlSetStrategy.c b/hicn-light/src/config/controlSetStrategy.c index 7b7c11762..579862eeb 100644 --- a/hicn-light/src/config/controlSetStrategy.c +++ b/hicn-light/src/config/controlSetStrategy.c @@ -19,7 +19,6 @@ #include <stdint.h> #include <stdio.h> #include <stdlib.h> -#include <strings.h> #include <parc/assert/parc_Assert.h> @@ -109,7 +108,7 @@ static CommandReturn _controlSetStrategy_Execute(CommandParser *parser, } const char *prefixStr = parcList_GetAtIndex(args, 2); - char addr[strlen(prefixStr) + 1]; + char *addr = (char *)malloc(sizeof(char) * (strlen(prefixStr) + 1)); // separate address and len char *slash; uint32_t len = UINT32_MAX; @@ -121,6 +120,7 @@ static CommandReturn _controlSetStrategy_Execute(CommandParser *parser, } if (len == 0) { printf("ERROR: a prefix can not be of length 0\n"); + free(addr); return CommandReturn_Failure; } @@ -136,6 +136,7 @@ static CommandReturn _controlSetStrategy_Execute(CommandParser *parser, } else if (len > 32) { printf("ERROR: exceeded INET mask length, max=32\n"); parcMemory_Deallocate(&setStrategyCommand); + free(addr); return CommandReturn_Failure; } setStrategyCommand->addressType = ADDR_INET; @@ -147,6 +148,7 @@ static CommandReturn _controlSetStrategy_Execute(CommandParser *parser, } else if (len > 128) { printf("ERROR: exceeded INET6 mask length, max=128\n"); parcMemory_Deallocate(&setStrategyCommand); + free(addr); return CommandReturn_Failure; } setStrategyCommand->addressType = ADDR_INET6; @@ -163,9 +165,12 @@ static CommandReturn _controlSetStrategy_Execute(CommandParser *parser, printf("Error: invalid strategy \n"); parcMemory_Deallocate(&setStrategyCommand); _controlSetStrategy_HelpExecute(parser, ops, args); + free(addr); return CommandReturn_Failure; } + free(addr); + // Fill remaining payload fields setStrategyCommand->len = len; setStrategyCommand->strategyType = strategy; |