[dpdk-dev] app/testpmd: fix NULL pointer deref for traffic management CLI

Message ID 20171027091018.146152-1-jasvinder.singh@intel.com (mailing list archive)
State Accepted, archived
Delegated to: Ferruh Yigit
Headers

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation success Compilation OK

Commit Message

Jasvinder Singh Oct. 27, 2017, 9:10 a.m. UTC
  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

Ferruh Yigit Nov. 7, 2017, 6:07 a.m. UTC | #1
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>
  
Ferruh Yigit Nov. 7, 2017, 6:11 a.m. UTC | #2
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.
  

Patch

diff --git a/app/test-pmd/cmdline_tm.c b/app/test-pmd/cmdline_tm.c
index 964ce9d..b737f8a 100644
--- a/app/test-pmd/cmdline_tm.c
+++ b/app/test-pmd/cmdline_tm.c
@@ -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) {