[dpdk-dev] app/testpmd: fix NULL pointer deref for traffic management CLI
Checks
Commit Message
Malloc() function might returns NULL when memory allocation fails
due to insufficient space. Therefore, check for handling memory allocation
failure is added.
Coverity issue: 198442,198444
Fixes: 996cb153af06 ("app/testpmd: add commands for TM nodes and hierarchy commit")
Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
---
app/test-pmd/cmdline_tm.c | 10 ++++++++++
1 file changed, 10 insertions(+)
Comments
On 10/27/2017 2:10 AM, Jasvinder Singh wrote:
> Malloc() function might returns NULL when memory allocation fails
> due to insufficient space. Therefore, check for handling memory allocation
> failure is added.
>
> Coverity issue: 198442,198444
> Fixes: 996cb153af06 ("app/testpmd: add commands for TM nodes and hierarchy commit")
>
> Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
On 11/6/2017 10:07 PM, Ferruh Yigit wrote:
> On 10/27/2017 2:10 AM, Jasvinder Singh wrote:
>> Malloc() function might returns NULL when memory allocation fails
>> due to insufficient space. Therefore, check for handling memory allocation
>> failure is added.
>>
>> Coverity issue: 198442,198444
>> Fixes: 996cb153af06 ("app/testpmd: add commands for TM nodes and hierarchy commit")
>>
>> Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
>
> Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
Applied to dpdk/master, thanks.
@@ -1615,6 +1615,11 @@ static void cmd_add_port_tm_nonleaf_node_parsed(void *parsed_result,
shared_shaper_id = (uint32_t *)malloc(MAX_NUM_SHARED_SHAPERS *
sizeof(uint32_t));
+ if (shared_shaper_id == NULL) {
+ printf(" Memory not allocated for shared shapers (error)\n");
+ return;
+ }
+
/* Parse multi shared shaper id string */
ret = parse_multi_ss_id_str(s_str, &n_shared_shapers, shared_shaper_id);
if (ret) {
@@ -1770,6 +1775,11 @@ static void cmd_add_port_tm_leaf_node_parsed(void *parsed_result,
shared_shaper_id = (uint32_t *)malloc(MAX_NUM_SHARED_SHAPERS *
sizeof(uint32_t));
+ if (shared_shaper_id == NULL) {
+ printf(" Memory not allocated for shared shapers (error)\n");
+ return;
+ }
+
/* Parse multi shared shaper id string */
ret = parse_multi_ss_id_str(s_str, &n_shared_shapers, shared_shaper_id);
if (ret) {