]> git.droids-corp.org - dpdk.git/commitdiff
app/testpmd: fix sample action for RSS with no key
authorJiawei Wang <jiaweiw@nvidia.com>
Tue, 26 Jan 2021 03:49:42 +0000 (05:49 +0200)
committerFerruh Yigit <ferruh.yigit@intel.com>
Fri, 29 Jan 2021 17:16:11 +0000 (18:16 +0100)
When the RSS with null key was set in sample actions list, it
caused the segmentation fault since the RSS key pointer was
NULL while did the memory copy.

This patch adds the RSS key NULL pointer checking before copying
to fix the segmentation fault issue.

Fixes: 11b1b0eddade ("app/testpmd: support RSS in sample action")
Signed-off-by: Jiawei Wang <jiaweiw@nvidia.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
app/test-pmd/cmdline_flow.c

index f7d58b1f164a1efc87a5950b39e0c4694a62ff74..1d962785b3891daf709452ca9e74e229004f6289 100644 (file)
@@ -7888,7 +7888,7 @@ cmd_set_raw_parsed_sample(const struct buffer *in)
                        rss = action->conf;
                        rte_memcpy(&sample_rss_data[idx].conf,
                                   (const void *)rss, size);
-                       if (rss->key_len) {
+                       if (rss->key_len && rss->key) {
                                sample_rss_data[idx].conf.key =
                                                sample_rss_data[idx].key;
                                rte_memcpy((void *)((uintptr_t)
@@ -7896,7 +7896,7 @@ cmd_set_raw_parsed_sample(const struct buffer *in)
                                           (const void *)rss->key,
                                           sizeof(uint8_t) * rss->key_len);
                        }
-                       if (rss->queue_num) {
+                       if (rss->queue_num && rss->queue) {
                                sample_rss_data[idx].conf.queue =
                                                sample_rss_data[idx].queue;
                                rte_memcpy((void *)((uintptr_t)