DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] [PATCH 0/6] net/bnxt: bounds checking patches
@ 2020-03-03 17:59 Stephen Hemminger
  2020-03-03 17:59 ` [dpdk-dev] [PATCH 1/6] eal: add portable way to check for math overflow Stephen Hemminger
                   ` (6 more replies)
  0 siblings, 7 replies; 14+ messages in thread
From: Stephen Hemminger @ 2020-03-03 17:59 UTC (permalink / raw)
  To: ajit.khaparde, somnath.kotur; +Cc: dev, Stephen Hemminger

This set of patches came from security review of bnxt driver.
It introduces a set of overflow macros that could be more widely
used in other places in DPDK to check for math overflows.

Stephen Hemminger (6):
  eal: add portable way to check for math overflow
  net/bnxt: fix potential data race
  net/bnxt: avoid potential out of bounds read
  net/bnxt: check for integer overflow in buffer sizing
  net/bnxt: add integer underflow check
  net/bnxt: sanitize max_l2_ctx

 drivers/net/bnxt/bnxt_hwrm.c                 | 31 ++++++--
 lib/librte_eal/common/Makefile               |  2 +-
 lib/librte_eal/common/include/rte_overflow.h | 74 ++++++++++++++++++++
 3 files changed, 101 insertions(+), 6 deletions(-)
 create mode 100644 lib/librte_eal/common/include/rte_overflow.h

-- 
2.20.1


^ permalink raw reply	[flat|nested] 14+ messages in thread

* [dpdk-dev] [PATCH 1/6] eal: add portable way to check for math overflow
  2020-03-03 17:59 [dpdk-dev] [PATCH 0/6] net/bnxt: bounds checking patches Stephen Hemminger
@ 2020-03-03 17:59 ` Stephen Hemminger
  2020-03-03 22:28   ` Dmitry Kozlyuk
  2020-03-03 17:59 ` [dpdk-dev] [PATCH 2/6] net/bnxt: fix potential data race Stephen Hemminger
                   ` (5 subsequent siblings)
  6 siblings, 1 reply; 14+ messages in thread
From: Stephen Hemminger @ 2020-03-03 17:59 UTC (permalink / raw)
  To: ajit.khaparde, somnath.kotur; +Cc: dev, Stephen Hemminger

Clang and recent versions of GCC has builtin functions to do most math
operations and check for wraparound. On most architectures this is a
just a math operation followed by a branch on carry set.

But DPDK needs to be able to handle older GCC versions, and other
compilers so a wrapper macro is needed.

Chose to use a macro instead of inline functions to avoid having
to write lots of variants for each numeric type.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 lib/librte_eal/common/Makefile               |  2 +-
 lib/librte_eal/common/include/rte_overflow.h | 74 ++++++++++++++++++++
 2 files changed, 75 insertions(+), 1 deletion(-)
 create mode 100644 lib/librte_eal/common/include/rte_overflow.h

diff --git a/lib/librte_eal/common/Makefile b/lib/librte_eal/common/Makefile
index c2c6d92cd377..3794128b75b7 100644
--- a/lib/librte_eal/common/Makefile
+++ b/lib/librte_eal/common/Makefile
@@ -13,7 +13,7 @@ INC += rte_tailq.h rte_interrupts.h rte_alarm.h
 INC += rte_string_fns.h rte_version.h
 INC += rte_eal_memconfig.h
 INC += rte_hexdump.h rte_devargs.h rte_bus.h rte_dev.h rte_class.h
-INC += rte_option.h
+INC += rte_option.h rte_overflow.h
 INC += rte_pci_dev_feature_defs.h rte_pci_dev_features.h
 INC += rte_malloc.h rte_keepalive.h rte_time.h
 INC += rte_service.h rte_service_component.h
diff --git a/lib/librte_eal/common/include/rte_overflow.h b/lib/librte_eal/common/include/rte_overflow.h
new file mode 100644
index 000000000000..d61791371029
--- /dev/null
+++ b/lib/librte_eal/common/include/rte_overflow.h
@@ -0,0 +1,74 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(c) 2020 Microsoft Corp
+ */
+#ifndef RTE_OVERFLOW_H_
+#define RTE_OVERFLOW_H_
+/**
+ * @file
+ *
+ * Math functions with overflow checking.
+ * Wrappers for the __builtin_XXX_overflow functions that exist
+ * in recent versions of GCC and CLANG but may not exist
+ * in older compilers. They are macros to allow use with any
+ * size of unsigned number.
+ *
+ * See:
+ *  https://gcc.gnu.org/onlinedocs/gcc/Integer-Overflow-Builtins.html
+ *  https://github.com/nemequ/portable-snippets/tree/master/safe-math
+ */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <stdbool.h>
+
+#if defined(__has_builtin)
+#    if __has_builtin(__builtin_add_overflow)
+#        define RTE_HAVE_BUILTIN_OVERFLOW
+#    endif
+#elif defined(RTE_TOOLCHAIN_GCC) && (GCC_VERSION >= 5000)
+#    define RTE__HAVE_BUILTIN_OVERFLOW
+#endif
+
+/**
+ * Safely add two bit unsigned numbers
+ * @param a
+ *   One operand
+ * @param b
+ *   Other operand
+ * @param res
+ *   Pointer to the where result of a + b is stored.
+ *   Must not be NULL
+ * @return
+ *   return true if the result overflows and is therefore truncated.
+ */
+#ifdef RTE_HAVE_BUILTIN_OVERFLOW
+#define rte_add_overflow(a, b, res) __builtin_add_overflow(a, b, res)
+#else
+#define rte_add_overflow(a, b, res) ({ *res = a + b; *res < a; })
+#endif
+
+/**
+ * Safely multiply two unsigned numbers
+ * @param a
+ *   One operand
+ * @param b
+ *   Other operand
+ * @param res
+ *   Pointer to the where result of a + b is stored.
+ *   Must not be NULL
+ * @return
+ *   return true if the result overflows and is therefore truncated.
+ */
+#ifdef RTE_HAVE_BUILTIN_OVERFLOW
+#define rte_mul_overflow(a, b, res) __builtin_mul_overflow(a, b, res)
+#else
+#define rte_mul_overflow(a, b, res) ({ *res = a * b; *res < a; })
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* RTE_OVERFLOW_H_ */
-- 
2.20.1


^ permalink raw reply	[flat|nested] 14+ messages in thread

* [dpdk-dev] [PATCH 2/6] net/bnxt: fix potential data race
  2020-03-03 17:59 [dpdk-dev] [PATCH 0/6] net/bnxt: bounds checking patches Stephen Hemminger
  2020-03-03 17:59 ` [dpdk-dev] [PATCH 1/6] eal: add portable way to check for math overflow Stephen Hemminger
@ 2020-03-03 17:59 ` Stephen Hemminger
  2020-03-03 18:13   ` [dpdk-dev] [EXTERNAL] " Christopher Ertl
  2020-03-03 17:59 ` [dpdk-dev] [PATCH 3/6] net/bnxt: avoid potential out of bounds read Stephen Hemminger
                   ` (4 subsequent siblings)
  6 siblings, 1 reply; 14+ messages in thread
From: Stephen Hemminger @ 2020-03-03 17:59 UTC (permalink / raw)
  To: ajit.khaparde, somnath.kotur; +Cc: dev, Stephen Hemminger, Christopher Ertl

The response from the firmware is accessed multiple times.
This is a potential TOCTOU error.

Reported-by: Christopher Ertl <Christopher.Ertl@microsoft.com>
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 drivers/net/bnxt/bnxt_hwrm.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/net/bnxt/bnxt_hwrm.c b/drivers/net/bnxt/bnxt_hwrm.c
index a9c9c7297cab..20e2f6a36713 100644
--- a/drivers/net/bnxt/bnxt_hwrm.c
+++ b/drivers/net/bnxt/bnxt_hwrm.c
@@ -3746,6 +3746,7 @@ int bnxt_hwrm_port_led_qcaps(struct bnxt *bp)
 {
 	struct hwrm_port_led_qcaps_output *resp = bp->hwrm_cmd_resp_addr;
 	struct hwrm_port_led_qcaps_input req = {0};
+	uint8_t num_leds;
 	int rc;
 
 	if (BNXT_VF(bp))
@@ -3757,10 +3758,11 @@ int bnxt_hwrm_port_led_qcaps(struct bnxt *bp)
 
 	HWRM_CHECK_RESULT();
 
-	if (resp->num_leds > 0 && resp->num_leds < BNXT_MAX_LED) {
+	num_leds = resp->num_leds;
+	if (num_leds > 0 && num_leds < BNXT_MAX_LED) {
 		unsigned int i;
 
-		bp->num_leds = resp->num_leds;
+		bp->num_leds = num_leds;
 		memcpy(bp->leds, &resp->led0_id,
 			sizeof(bp->leds[0]) * bp->num_leds);
 		for (i = 0; i < bp->num_leds; i++) {
-- 
2.20.1


^ permalink raw reply	[flat|nested] 14+ messages in thread

* [dpdk-dev] [PATCH 3/6] net/bnxt: avoid potential out of bounds read
  2020-03-03 17:59 [dpdk-dev] [PATCH 0/6] net/bnxt: bounds checking patches Stephen Hemminger
  2020-03-03 17:59 ` [dpdk-dev] [PATCH 1/6] eal: add portable way to check for math overflow Stephen Hemminger
  2020-03-03 17:59 ` [dpdk-dev] [PATCH 2/6] net/bnxt: fix potential data race Stephen Hemminger
@ 2020-03-03 17:59 ` Stephen Hemminger
  2020-03-03 17:59 ` [dpdk-dev] [PATCH 4/6] net/bnxt: check for integer overflow in buffer sizing Stephen Hemminger
                   ` (3 subsequent siblings)
  6 siblings, 0 replies; 14+ messages in thread
From: Stephen Hemminger @ 2020-03-03 17:59 UTC (permalink / raw)
  To: ajit.khaparde, somnath.kotur; +Cc: dev, Stephen Hemminger, Christopher Ertl

If hardware returned a bogus number of vnic's  from the
query it could cause an out of bounds read into vnic table.

Reported-by: Christopher Ertl <Christopher.Ertl@microsoft.com>
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 drivers/net/bnxt/bnxt_hwrm.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/drivers/net/bnxt/bnxt_hwrm.c b/drivers/net/bnxt/bnxt_hwrm.c
index 20e2f6a36713..ad8bdb1c2913 100644
--- a/drivers/net/bnxt/bnxt_hwrm.c
+++ b/drivers/net/bnxt/bnxt_hwrm.c
@@ -4029,6 +4029,12 @@ static int bnxt_hwrm_func_vf_vnic_query(struct bnxt *bp, uint16_t vf,
 
 	HWRM_UNLOCK();
 
+	if (rc > bp->pf.total_vnics) {
+		PMD_DRV_LOG(ERR,
+			    "Vnic id %d is out of range\n", rc);
+		return -EINVAL;
+	}
+
 	return rc;
 }
 
-- 
2.20.1


^ permalink raw reply	[flat|nested] 14+ messages in thread

* [dpdk-dev] [PATCH 4/6] net/bnxt: check for integer overflow in buffer sizing
  2020-03-03 17:59 [dpdk-dev] [PATCH 0/6] net/bnxt: bounds checking patches Stephen Hemminger
                   ` (2 preceding siblings ...)
  2020-03-03 17:59 ` [dpdk-dev] [PATCH 3/6] net/bnxt: avoid potential out of bounds read Stephen Hemminger
@ 2020-03-03 17:59 ` Stephen Hemminger
  2020-03-03 17:59 ` [dpdk-dev] [PATCH 5/6] net/bnxt: add integer underflow check Stephen Hemminger
                   ` (2 subsequent siblings)
  6 siblings, 0 replies; 14+ messages in thread
From: Stephen Hemminger @ 2020-03-03 17:59 UTC (permalink / raw)
  To: ajit.khaparde, somnath.kotur; +Cc: dev, Stephen Hemminger, Christopher Ertl

If the hardware returns invalid values, the buffer size calculation
could overflow.  Check for this by using the GCC/Clang builtin
that checks.

Reported-by: Christopher Ertl <Christopher.Ertl@microsoft.com>
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 drivers/net/bnxt/bnxt_hwrm.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/net/bnxt/bnxt_hwrm.c b/drivers/net/bnxt/bnxt_hwrm.c
index ad8bdb1c2913..6beb215d604f 100644
--- a/drivers/net/bnxt/bnxt_hwrm.c
+++ b/drivers/net/bnxt/bnxt_hwrm.c
@@ -11,6 +11,7 @@
 #include <rte_malloc.h>
 #include <rte_memzone.h>
 #include <rte_version.h>
+#include <rte_overflow.h>
 #include <rte_io.h>
 
 #include "bnxt.h"
@@ -3861,7 +3862,9 @@ int bnxt_get_nvram_directory(struct bnxt *bp, uint32_t len, uint8_t *data)
 	len -= 2;
 	memset(data, 0xff, len);
 
-	buflen = dir_entries * entry_length;
+	if (rte_mul_overflow(dir_entries, entry_length, &buflen))
+		return -EINVAL;
+
 	buf = rte_malloc("nvm_dir", buflen, 0);
 	if (buf == NULL)
 		return -ENOMEM;
-- 
2.20.1


^ permalink raw reply	[flat|nested] 14+ messages in thread

* [dpdk-dev] [PATCH 5/6] net/bnxt: add integer underflow check
  2020-03-03 17:59 [dpdk-dev] [PATCH 0/6] net/bnxt: bounds checking patches Stephen Hemminger
                   ` (3 preceding siblings ...)
  2020-03-03 17:59 ` [dpdk-dev] [PATCH 4/6] net/bnxt: check for integer overflow in buffer sizing Stephen Hemminger
@ 2020-03-03 17:59 ` Stephen Hemminger
  2020-03-03 17:59 ` [dpdk-dev] [PATCH 6/6] net/bnxt: sanitize max_l2_ctx Stephen Hemminger
  2020-03-31 11:47 ` [dpdk-dev] [PATCH 0/6] net/bnxt: bounds checking patches Ferruh Yigit
  6 siblings, 0 replies; 14+ messages in thread
From: Stephen Hemminger @ 2020-03-03 17:59 UTC (permalink / raw)
  To: ajit.khaparde, somnath.kotur; +Cc: dev, Stephen Hemminger, Christopher Ertl

If a request to read a small value is passed to nvram reader
it would underflow.

Reported-by: Christopher Ertl <Christopher.Ertl@microsoft.com>
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 drivers/net/bnxt/bnxt_hwrm.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/net/bnxt/bnxt_hwrm.c b/drivers/net/bnxt/bnxt_hwrm.c
index 6beb215d604f..d878320aa110 100644
--- a/drivers/net/bnxt/bnxt_hwrm.c
+++ b/drivers/net/bnxt/bnxt_hwrm.c
@@ -3859,6 +3859,9 @@ int bnxt_get_nvram_directory(struct bnxt *bp, uint32_t len, uint8_t *data)
 
 	*data++ = dir_entries;
 	*data++ = entry_length;
+	if (len <= 2)
+		return -EINVAL;
+
 	len -= 2;
 	memset(data, 0xff, len);
 
-- 
2.20.1


^ permalink raw reply	[flat|nested] 14+ messages in thread

* [dpdk-dev] [PATCH 6/6] net/bnxt: sanitize max_l2_ctx
  2020-03-03 17:59 [dpdk-dev] [PATCH 0/6] net/bnxt: bounds checking patches Stephen Hemminger
                   ` (4 preceding siblings ...)
  2020-03-03 17:59 ` [dpdk-dev] [PATCH 5/6] net/bnxt: add integer underflow check Stephen Hemminger
@ 2020-03-03 17:59 ` Stephen Hemminger
  2020-03-31 11:47 ` [dpdk-dev] [PATCH 0/6] net/bnxt: bounds checking patches Ferruh Yigit
  6 siblings, 0 replies; 14+ messages in thread
From: Stephen Hemminger @ 2020-03-03 17:59 UTC (permalink / raw)
  To: ajit.khaparde, somnath.kotur; +Cc: dev, Stephen Hemminger, Christopher Ertl

If max_l2_ctx is very large, then adding the additional value
could cause wraparound.

Reported-by: Christopher Ertl <Christopher.Ertl@microsoft.com>
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 drivers/net/bnxt/bnxt_hwrm.c | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/drivers/net/bnxt/bnxt_hwrm.c b/drivers/net/bnxt/bnxt_hwrm.c
index d878320aa110..099e04fa550a 100644
--- a/drivers/net/bnxt/bnxt_hwrm.c
+++ b/drivers/net/bnxt/bnxt_hwrm.c
@@ -651,8 +651,15 @@ static int __bnxt_hwrm_func_qcaps(struct bnxt *bp)
 	bp->first_vf_id = rte_le_to_cpu_16(resp->first_vf_id);
 	bp->max_rx_em_flows = rte_le_to_cpu_16(resp->max_rx_em_flows);
 	bp->max_l2_ctx = rte_le_to_cpu_16(resp->max_l2_ctxs);
-	if (!BNXT_CHIP_THOR(bp))
-		bp->max_l2_ctx += bp->max_rx_em_flows;
+	if (!BNXT_CHIP_THOR(bp)) {
+		uint16_t max_l2_ctx;
+
+		if (rte_add_overflow(bp->max_l2_ctx, bp->max_rx_em_flows,
+				     &max_l2_ctx))
+			return -EINVAL;
+		bp->max_l2_ctx = max_l2_ctx;
+	}
+
 	/* TODO: For now, do not support VMDq/RFS on VFs. */
 	if (BNXT_PF(bp)) {
 		if (bp->pf.max_vfs)
-- 
2.20.1


^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [dpdk-dev] [EXTERNAL] [PATCH 2/6] net/bnxt: fix potential data race
  2020-03-03 17:59 ` [dpdk-dev] [PATCH 2/6] net/bnxt: fix potential data race Stephen Hemminger
@ 2020-03-03 18:13   ` Christopher Ertl
  2020-03-03 18:16     ` Stephen Hemminger
  0 siblings, 1 reply; 14+ messages in thread
From: Christopher Ertl @ 2020-03-03 18:13 UTC (permalink / raw)
  To: Stephen Hemminger, Ajit Kumar Khaparde, somnath.kotur; +Cc: dev

Can we add the `volatile` qualifier to the `hwrm_cmd_resp_addr` member (in drivers/net/bnxt/bnxt.h) to get a stronger guarantee that the compiler won't insert TOCTOU races in the output?

Christopher Ertl | MSRC Vulnerabilities & Mitigations | Microsoft Limited | +44 7773976589 | Christopher.Ertl@microsoft.com
 
Microsoft Limited (company number 01624297) is a company registered in England and Wales whose registered office is at Microsoft Campus, Thames Valley Park, Reading. RG6 1WG

-----Original Message-----
From: Stephen Hemminger <stephen@networkplumber.org> 
Sent: Tuesday, March 3, 2020 6:00 PM
To: Ajit Kumar Khaparde <ajit.khaparde@broadcom.com>; somnath.kotur@broadcom.com
Cc: dev@dpdk.org; Stephen Hemminger <stephen@networkplumber.org>; Christopher Ertl <Christopher.Ertl@microsoft.com>
Subject: [EXTERNAL] [PATCH 2/6] net/bnxt: fix potential data race

The response from the firmware is accessed multiple times.
This is a potential TOCTOU error.

Reported-by: Christopher Ertl <Christopher.Ertl@microsoft.com>
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 drivers/net/bnxt/bnxt_hwrm.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/net/bnxt/bnxt_hwrm.c b/drivers/net/bnxt/bnxt_hwrm.c index a9c9c7297cab..20e2f6a36713 100644
--- a/drivers/net/bnxt/bnxt_hwrm.c
+++ b/drivers/net/bnxt/bnxt_hwrm.c
@@ -3746,6 +3746,7 @@ int bnxt_hwrm_port_led_qcaps(struct bnxt *bp)  {
 	struct hwrm_port_led_qcaps_output *resp = bp->hwrm_cmd_resp_addr;
 	struct hwrm_port_led_qcaps_input req = {0};
+	uint8_t num_leds;
 	int rc;
 
 	if (BNXT_VF(bp))
@@ -3757,10 +3758,11 @@ int bnxt_hwrm_port_led_qcaps(struct bnxt *bp)
 
 	HWRM_CHECK_RESULT();
 
-	if (resp->num_leds > 0 && resp->num_leds < BNXT_MAX_LED) {
+	num_leds = resp->num_leds;
+	if (num_leds > 0 && num_leds < BNXT_MAX_LED) {
 		unsigned int i;
 
-		bp->num_leds = resp->num_leds;
+		bp->num_leds = num_leds;
 		memcpy(bp->leds, &resp->led0_id,
 			sizeof(bp->leds[0]) * bp->num_leds);
 		for (i = 0; i < bp->num_leds; i++) {
--
2.20.1


^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [dpdk-dev] [EXTERNAL] [PATCH 2/6] net/bnxt: fix potential data race
  2020-03-03 18:13   ` [dpdk-dev] [EXTERNAL] " Christopher Ertl
@ 2020-03-03 18:16     ` Stephen Hemminger
  0 siblings, 0 replies; 14+ messages in thread
From: Stephen Hemminger @ 2020-03-03 18:16 UTC (permalink / raw)
  To: Christopher Ertl; +Cc: Ajit Kumar Khaparde, somnath.kotur, dev

On Tue, 3 Mar 2020 18:13:22 +0000
Christopher Ertl <Christopher.Ertl@microsoft.com> wrote:

> Can we add the `volatile` qualifier to the `hwrm_cmd_resp_addr` member (in drivers/net/bnxt/bnxt.h) to get a stronger guarantee that the compiler won't insert TOCTOU races in the output?
> 
> Christopher Ertl | MSRC Vulnerabilities & Mitigations | Microsoft Limited | +44 7773976589 | Christopher.Ertl@microsoft.com
>  
> Microsoft Limited (company number 01624297) is a company registered in England and Wales whose registered office is at Microsoft Campus, Thames Valley Park, Reading. RG6 1WG

Should this be done for all the registers in that structure?

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [dpdk-dev] [PATCH 1/6] eal: add portable way to check for math overflow
  2020-03-03 17:59 ` [dpdk-dev] [PATCH 1/6] eal: add portable way to check for math overflow Stephen Hemminger
@ 2020-03-03 22:28   ` Dmitry Kozlyuk
  0 siblings, 0 replies; 14+ messages in thread
From: Dmitry Kozlyuk @ 2020-03-03 22:28 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: ajit.khaparde, somnath.kotur, dev

> +#if defined(__has_builtin)
> +#    if __has_builtin(__builtin_add_overflow)
> +#        define RTE_HAVE_BUILTIN_OVERFLOW
> +#    endif
> +#elif defined(RTE_TOOLCHAIN_GCC) && (GCC_VERSION >= 5000)
> +#    define RTE__HAVE_BUILTIN_OVERFLOW

Excessive underline after RTE results in RTE_HAVE_BUILTIN_OVERFLOW not being
defined.

-- 
Dmitry Kozlyuk

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [dpdk-dev] [PATCH 0/6] net/bnxt: bounds checking patches
  2020-03-03 17:59 [dpdk-dev] [PATCH 0/6] net/bnxt: bounds checking patches Stephen Hemminger
                   ` (5 preceding siblings ...)
  2020-03-03 17:59 ` [dpdk-dev] [PATCH 6/6] net/bnxt: sanitize max_l2_ctx Stephen Hemminger
@ 2020-03-31 11:47 ` Ferruh Yigit
  2020-03-31 17:52   ` Ajit Khaparde
  6 siblings, 1 reply; 14+ messages in thread
From: Ferruh Yigit @ 2020-03-31 11:47 UTC (permalink / raw)
  To: Stephen Hemminger, ajit.khaparde, somnath.kotur; +Cc: dev, David Marchand

On 3/3/2020 5:59 PM, Stephen Hemminger wrote:
> This set of patches came from security review of bnxt driver.
> It introduces a set of overflow macros that could be more widely
> used in other places in DPDK to check for math overflows.
> 
> Stephen Hemminger (6):
>   eal: add portable way to check for math overflow
>   net/bnxt: fix potential data race
>   net/bnxt: avoid potential out of bounds read
>   net/bnxt: check for integer overflow in buffer sizing
>   net/bnxt: add integer underflow check
>   net/bnxt: sanitize max_l2_ctx
> 

Hi Ajit,

I can see this patchset has been merged into your tree, although the note in the
mail list is missing. Since it has eal changes, I believe they should be
reviewed first before merging into brcm tree, can you separate the eal and
dependent patch for review, we can proceed with rest?

Regards,
ferruh

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [dpdk-dev] [PATCH 0/6] net/bnxt: bounds checking patches
  2020-03-31 11:47 ` [dpdk-dev] [PATCH 0/6] net/bnxt: bounds checking patches Ferruh Yigit
@ 2020-03-31 17:52   ` Ajit Khaparde
  2020-03-31 18:04     ` Stephen Hemminger
  0 siblings, 1 reply; 14+ messages in thread
From: Ajit Khaparde @ 2020-03-31 17:52 UTC (permalink / raw)
  To: Ferruh Yigit; +Cc: Stephen Hemminger, Somnath Kotur, dpdk-dev, David Marchand

On Tue, Mar 31, 2020 at 5:23 AM Ferruh Yigit <ferruh.yigit@intel.com> wrote:

> On 3/3/2020 5:59 PM, Stephen Hemminger wrote:
> > This set of patches came from security review of bnxt driver.
> > It introduces a set of overflow macros that could be more widely
> > used in other places in DPDK to check for math overflows.
> >
> > Stephen Hemminger (6):
> >   eal: add portable way to check for math overflow
> >   net/bnxt: fix potential data race
> >   net/bnxt: avoid potential out of bounds read
> >   net/bnxt: check for integer overflow in buffer sizing
> >   net/bnxt: add integer underflow check
> >   net/bnxt: sanitize max_l2_ctx
> >
>
> Hi Ajit,
>
> I can see this patchset has been merged into your tree, although the note
> in the
> mail list is missing. Since it has eal changes, I believe they should be
> reviewed first before merging into brcm tree, can you separate the eal and
> dependent patch for review, we can proceed with rest?
>
I don't mind.
But being original owner - Stephen, do you want to go ahead?

Thanks
Ajit

>
> Regards,
> ferruh
>

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [dpdk-dev] [PATCH 0/6] net/bnxt: bounds checking patches
  2020-03-31 17:52   ` Ajit Khaparde
@ 2020-03-31 18:04     ` Stephen Hemminger
  2020-10-19 22:28       ` Thomas Monjalon
  0 siblings, 1 reply; 14+ messages in thread
From: Stephen Hemminger @ 2020-03-31 18:04 UTC (permalink / raw)
  To: Ajit Khaparde; +Cc: Ferruh Yigit, Somnath Kotur, dpdk-dev, David Marchand

On Tue, 31 Mar 2020 10:52:47 -0700
Ajit Khaparde <ajit.khaparde@broadcom.com> wrote:

> On Tue, Mar 31, 2020 at 5:23 AM Ferruh Yigit <ferruh.yigit@intel.com> wrote:
> 
> > On 3/3/2020 5:59 PM, Stephen Hemminger wrote:  
> > > This set of patches came from security review of bnxt driver.
> > > It introduces a set of overflow macros that could be more widely
> > > used in other places in DPDK to check for math overflows.
> > >
> > > Stephen Hemminger (6):
> > >   eal: add portable way to check for math overflow
> > >   net/bnxt: fix potential data race
> > >   net/bnxt: avoid potential out of bounds read
> > >   net/bnxt: check for integer overflow in buffer sizing
> > >   net/bnxt: add integer underflow check
> > >   net/bnxt: sanitize max_l2_ctx
> > >  
> >
> > Hi Ajit,
> >
> > I can see this patchset has been merged into your tree, although the note
> > in the
> > mail list is missing. Since it has eal changes, I believe they should be
> > reviewed first before merging into brcm tree, can you separate the eal and
> > dependent patch for review, we can proceed with rest?
> >  
> I don't mind.
> But being original owner - Stephen, do you want to go ahead?
> 
> Thanks
> Ajit
> 
> >
> > Regards,
> > ferruh
> >  

Sure, I expected normal review cycle on this.
Hoped that other drivers and eal core would also add overflow checks

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [dpdk-dev] [PATCH 0/6] net/bnxt: bounds checking patches
  2020-03-31 18:04     ` Stephen Hemminger
@ 2020-10-19 22:28       ` Thomas Monjalon
  0 siblings, 0 replies; 14+ messages in thread
From: Thomas Monjalon @ 2020-10-19 22:28 UTC (permalink / raw)
  To: Ajit Khaparde, Stephen Hemminger
  Cc: dev, Ferruh Yigit, Somnath Kotur, David Marchand

Why there was no progress on this during 6 months?

Ajit, it was out of my radar because delegated to you.

Please restart fresh with a separate patch for EAL,
addressing comments. Thanks


31/03/2020 20:04, Stephen Hemminger:
> On Tue, 31 Mar 2020 10:52:47 -0700
> Ajit Khaparde <ajit.khaparde@broadcom.com> wrote:
> 
> > On Tue, Mar 31, 2020 at 5:23 AM Ferruh Yigit <ferruh.yigit@intel.com> wrote:
> > 
> > > On 3/3/2020 5:59 PM, Stephen Hemminger wrote:  
> > > > This set of patches came from security review of bnxt driver.
> > > > It introduces a set of overflow macros that could be more widely
> > > > used in other places in DPDK to check for math overflows.
> > > >
> > > > Stephen Hemminger (6):
> > > >   eal: add portable way to check for math overflow
> > > >   net/bnxt: fix potential data race
> > > >   net/bnxt: avoid potential out of bounds read
> > > >   net/bnxt: check for integer overflow in buffer sizing
> > > >   net/bnxt: add integer underflow check
> > > >   net/bnxt: sanitize max_l2_ctx
> > > >  
> > >
> > > Hi Ajit,
> > >
> > > I can see this patchset has been merged into your tree, although the note
> > > in the
> > > mail list is missing. Since it has eal changes, I believe they should be
> > > reviewed first before merging into brcm tree, can you separate the eal and
> > > dependent patch for review, we can proceed with rest?
> > >  
> > I don't mind.
> > But being original owner - Stephen, do you want to go ahead?
> > 
> > Thanks
> > Ajit
> > 
> > >
> > > Regards,
> > > ferruh
> > >  
> 
> Sure, I expected normal review cycle on this.
> Hoped that other drivers and eal core would also add overflow checks
> 






^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2020-10-19 22:28 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-03-03 17:59 [dpdk-dev] [PATCH 0/6] net/bnxt: bounds checking patches Stephen Hemminger
2020-03-03 17:59 ` [dpdk-dev] [PATCH 1/6] eal: add portable way to check for math overflow Stephen Hemminger
2020-03-03 22:28   ` Dmitry Kozlyuk
2020-03-03 17:59 ` [dpdk-dev] [PATCH 2/6] net/bnxt: fix potential data race Stephen Hemminger
2020-03-03 18:13   ` [dpdk-dev] [EXTERNAL] " Christopher Ertl
2020-03-03 18:16     ` Stephen Hemminger
2020-03-03 17:59 ` [dpdk-dev] [PATCH 3/6] net/bnxt: avoid potential out of bounds read Stephen Hemminger
2020-03-03 17:59 ` [dpdk-dev] [PATCH 4/6] net/bnxt: check for integer overflow in buffer sizing Stephen Hemminger
2020-03-03 17:59 ` [dpdk-dev] [PATCH 5/6] net/bnxt: add integer underflow check Stephen Hemminger
2020-03-03 17:59 ` [dpdk-dev] [PATCH 6/6] net/bnxt: sanitize max_l2_ctx Stephen Hemminger
2020-03-31 11:47 ` [dpdk-dev] [PATCH 0/6] net/bnxt: bounds checking patches Ferruh Yigit
2020-03-31 17:52   ` Ajit Khaparde
2020-03-31 18:04     ` Stephen Hemminger
2020-10-19 22:28       ` Thomas Monjalon

DPDK patches and discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror https://inbox.dpdk.org/dev/0 dev/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 dev dev/ https://inbox.dpdk.org/dev \
		dev@dpdk.org
	public-inbox-index dev

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://inbox.dpdk.org/inbox.dpdk.dev


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git