* [PATCH 01/16] eal: verify strdup return value
2023-11-10 6:36 [PATCH 00/16] verify strdup return value Chengwen Feng
@ 2023-11-10 6:36 ` Chengwen Feng
2023-11-10 6:36 ` [PATCH 02/16] bus/dpaa: " Chengwen Feng
` (14 subsequent siblings)
15 siblings, 0 replies; 18+ messages in thread
From: Chengwen Feng @ 2023-11-10 6:36 UTC (permalink / raw)
To: thomas, ferruh.yigit, Bruce Richardson, Ciara Power, Keith Wiles,
Jianfeng Tan, Jeff Guo
Cc: dev
Add verify strdup() return value logic.
Fixes: 293c53d8b23c ("eal: add telemetry callbacks")
Fixes: 0d0f478d0483 ("eal/linux: add uevent parse and process")
Cc: stable@dpdk.org
Signed-off-by: Chengwen Feng <fengchengwen@huawei.com>
---
lib/eal/common/eal_common_options.c | 24 ++++++++++++++++++++++--
lib/eal/linux/eal_dev.c | 3 +++
2 files changed, 25 insertions(+), 2 deletions(-)
diff --git a/lib/eal/common/eal_common_options.c b/lib/eal/common/eal_common_options.c
index a6d21f1cba..8b5a4632dd 100644
--- a/lib/eal/common/eal_common_options.c
+++ b/lib/eal/common/eal_common_options.c
@@ -226,6 +226,8 @@ eal_save_args(int argc, char **argv)
if (strcmp(argv[i], "--") == 0)
break;
eal_args[i] = strdup(argv[i]);
+ if (eal_args[i] == NULL)
+ goto error;
}
eal_args[i++] = NULL; /* always finish with NULL */
@@ -235,13 +237,31 @@ eal_save_args(int argc, char **argv)
eal_app_args = calloc(argc - i + 1, sizeof(*eal_args));
if (eal_app_args == NULL)
- return -1;
+ goto error;
- for (j = 0; i < argc; j++, i++)
+ for (j = 0; i < argc; j++, i++) {
eal_app_args[j] = strdup(argv[i]);
+ if (eal_app_args[j] == NULL)
+ goto error;
+ }
eal_app_args[j] = NULL;
return 0;
+
+error:
+ if (eal_app_args != NULL) {
+ i = 0;
+ while (eal_app_args[i] != NULL)
+ free(eal_app_args[i++]);
+ free(eal_app_args);
+ eal_app_args = NULL;
+ }
+ i = 0;
+ while (eal_args[i] != NULL)
+ free(eal_args[i++]);
+ free(eal_args);
+ eal_args = NULL;
+ return -1;
}
#endif
diff --git a/lib/eal/linux/eal_dev.c b/lib/eal/linux/eal_dev.c
index ac76f6174d..df3cd6b39a 100644
--- a/lib/eal/linux/eal_dev.c
+++ b/lib/eal/linux/eal_dev.c
@@ -181,7 +181,10 @@ dev_uev_parse(const char *buf, struct rte_dev_event *event, int length)
buf += 14;
i += 14;
strlcpy(pci_slot_name, buf, sizeof(subsystem));
+ free(event->devname);
event->devname = strdup(pci_slot_name);
+ if (event->devname == NULL)
+ return -1;
}
for (; i < length; i++) {
if (*buf == '\0')
--
2.17.1
^ permalink raw reply [flat|nested] 18+ messages in thread
* [PATCH 02/16] bus/dpaa: verify strdup return value
2023-11-10 6:36 [PATCH 00/16] verify strdup return value Chengwen Feng
2023-11-10 6:36 ` [PATCH 01/16] eal: " Chengwen Feng
@ 2023-11-10 6:36 ` Chengwen Feng
2023-11-10 6:36 ` [PATCH 03/16] bus/fslmc: " Chengwen Feng
` (13 subsequent siblings)
15 siblings, 0 replies; 18+ messages in thread
From: Chengwen Feng @ 2023-11-10 6:36 UTC (permalink / raw)
To: thomas, ferruh.yigit, Hemant Agrawal, Sachin Saxena, Shreyansh Jain; +Cc: dev
Add verify strdup return value logic.
Fixes: e79df833d3f6 ("bus/dpaa: support hotplug ops")
Cc: stable@dpdk.org
Signed-off-by: Chengwen Feng <fengchengwen@huawei.com>
---
drivers/bus/dpaa/dpaa_bus.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/drivers/bus/dpaa/dpaa_bus.c b/drivers/bus/dpaa/dpaa_bus.c
index e57159f5d8..a67f5c9ab5 100644
--- a/drivers/bus/dpaa/dpaa_bus.c
+++ b/drivers/bus/dpaa/dpaa_bus.c
@@ -791,6 +791,10 @@ dpaa_bus_dev_iterate(const void *start, const char *str,
/* Now that name=device_name format is available, split */
dup = strdup(str);
+ if (dup == NULL) {
+ DPAA_BUS_DEBUG("Dup string (%s) failed!\n", str);
+ return NULL;
+ }
dev_name = dup + strlen("name=");
if (start != NULL) {
--
2.17.1
^ permalink raw reply [flat|nested] 18+ messages in thread
* [PATCH 03/16] bus/fslmc: verify strdup return value
2023-11-10 6:36 [PATCH 00/16] verify strdup return value Chengwen Feng
2023-11-10 6:36 ` [PATCH 01/16] eal: " Chengwen Feng
2023-11-10 6:36 ` [PATCH 02/16] bus/dpaa: " Chengwen Feng
@ 2023-11-10 6:36 ` Chengwen Feng
2023-11-10 6:36 ` [PATCH 04/16] bus/vdev: " Chengwen Feng
` (12 subsequent siblings)
15 siblings, 0 replies; 18+ messages in thread
From: Chengwen Feng @ 2023-11-10 6:36 UTC (permalink / raw)
To: thomas, ferruh.yigit, Hemant Agrawal, Sachin Saxena, Shreyansh Jain; +Cc: dev
Add verify strdup return value logic.
Fixes: e67a61614d0b ("bus/fslmc: support device iteration")
Cc: stable@dpdk.org
Signed-off-by: Chengwen Feng <fengchengwen@huawei.com>
---
drivers/bus/fslmc/fslmc_bus.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/drivers/bus/fslmc/fslmc_bus.c b/drivers/bus/fslmc/fslmc_bus.c
index 57bfb5111a..89f0f329c0 100644
--- a/drivers/bus/fslmc/fslmc_bus.c
+++ b/drivers/bus/fslmc/fslmc_bus.c
@@ -634,6 +634,10 @@ fslmc_bus_dev_iterate(const void *start, const char *str,
/* Now that name=device_name format is available, split */
dup = strdup(str);
+ if (dup == NULL) {
+ DPAA2_BUS_DEBUG("Dup string (%s) failed!\n", str);
+ return NULL;
+ }
dev_name = dup + strlen("name=");
if (start != NULL) {
--
2.17.1
^ permalink raw reply [flat|nested] 18+ messages in thread
* [PATCH 04/16] bus/vdev: verify strdup return value
2023-11-10 6:36 [PATCH 00/16] verify strdup return value Chengwen Feng
` (2 preceding siblings ...)
2023-11-10 6:36 ` [PATCH 03/16] bus/fslmc: " Chengwen Feng
@ 2023-11-10 6:36 ` Chengwen Feng
2023-11-10 6:36 ` [PATCH 05/16] dma/idxd: " Chengwen Feng
` (11 subsequent siblings)
15 siblings, 0 replies; 18+ messages in thread
From: Chengwen Feng @ 2023-11-10 6:36 UTC (permalink / raw)
To: thomas, ferruh.yigit, Gaetan Rivet, Ray Kinsella, Xueming Li; +Cc: dev
Add verify strdup return value logic.
Fixes: 64051bb1f144 ("devargs: unify scratch buffer storage")
Cc: stable@dpdk.org
Signed-off-by: Chengwen Feng <fengchengwen@huawei.com>
---
drivers/bus/vdev/vdev.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/drivers/bus/vdev/vdev.c b/drivers/bus/vdev/vdev.c
index 7974b27295..05582f1727 100644
--- a/drivers/bus/vdev/vdev.c
+++ b/drivers/bus/vdev/vdev.c
@@ -247,6 +247,10 @@ alloc_devargs(const char *name, const char *args)
devargs->data = strdup(args);
else
devargs->data = strdup("");
+ if (devargs->data == NULL) {
+ free(devargs);
+ return NULL;
+ }
devargs->args = devargs->data;
ret = strlcpy(devargs->name, name, sizeof(devargs->name));
--
2.17.1
^ permalink raw reply [flat|nested] 18+ messages in thread
* [PATCH 05/16] dma/idxd: verify strdup return value
2023-11-10 6:36 [PATCH 00/16] verify strdup return value Chengwen Feng
` (3 preceding siblings ...)
2023-11-10 6:36 ` [PATCH 04/16] bus/vdev: " Chengwen Feng
@ 2023-11-10 6:36 ` Chengwen Feng
2023-11-10 6:36 ` [PATCH 06/16] event/cnxk: " Chengwen Feng
` (10 subsequent siblings)
15 siblings, 0 replies; 18+ messages in thread
From: Chengwen Feng @ 2023-11-10 6:36 UTC (permalink / raw)
To: thomas, ferruh.yigit, Bruce Richardson, Kevin Laatz, Conor Walsh; +Cc: dev
Add verify strdup return value logic.
Fixes: e888bb1278c6 ("dma/idxd: add bus device probing")
Cc: stable@dpdk.org
Signed-off-by: Chengwen Feng <fengchengwen@huawei.com>
---
drivers/dma/idxd/idxd_bus.c | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/drivers/dma/idxd/idxd_bus.c b/drivers/dma/idxd/idxd_bus.c
index 3b2d4c2b65..ba8076715d 100644
--- a/drivers/dma/idxd/idxd_bus.c
+++ b/drivers/dma/idxd/idxd_bus.c
@@ -261,9 +261,15 @@ static int
is_for_this_process_use(struct rte_dsa_device *dev, const char *name)
{
char *runtime_dir = strdup(rte_eal_get_runtime_dir());
- char *prefix = basename(runtime_dir);
- int prefixlen = strlen(prefix);
int retval = 0;
+ int prefixlen;
+ char *prefix;
+
+ if (runtime_dir == NULL)
+ return retval;
+
+ prefix = basename(runtime_dir);
+ prefixlen = strlen(prefix);
if (strncmp(name, "dpdk_", 5) == 0)
retval = 1;
--
2.17.1
^ permalink raw reply [flat|nested] 18+ messages in thread
* [PATCH 06/16] event/cnxk: verify strdup return value
2023-11-10 6:36 [PATCH 00/16] verify strdup return value Chengwen Feng
` (4 preceding siblings ...)
2023-11-10 6:36 ` [PATCH 05/16] dma/idxd: " Chengwen Feng
@ 2023-11-10 6:36 ` Chengwen Feng
2023-11-10 6:36 ` [PATCH 07/16] net/failsafe: fix memory leak when parse args Chengwen Feng
` (9 subsequent siblings)
15 siblings, 0 replies; 18+ messages in thread
From: Chengwen Feng @ 2023-11-10 6:36 UTC (permalink / raw)
To: thomas, ferruh.yigit, Pavan Nikhilesh, Shijith Thotton; +Cc: dev
Add verify strdup return value logic.
Fixes: 38c2e3240ba8 ("event/cnxk: add option to control SSO HWGRP QoS")
Cc: stable@dpdk.org
Signed-off-by: Chengwen Feng <fengchengwen@huawei.com>
---
drivers/event/cnxk/cnxk_eventdev.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/event/cnxk/cnxk_eventdev.c b/drivers/event/cnxk/cnxk_eventdev.c
index 0c61f4c20e..1ec281e735 100644
--- a/drivers/event/cnxk/cnxk_eventdev.c
+++ b/drivers/event/cnxk/cnxk_eventdev.c
@@ -553,6 +553,9 @@ parse_list(const char *value, void *opaque, param_parse_t fn)
char *end = NULL;
char *f = s;
+ if (s == NULL)
+ return;
+
while (*s) {
if (*s == '[')
start = s;
--
2.17.1
^ permalink raw reply [flat|nested] 18+ messages in thread
* [PATCH 07/16] net/failsafe: fix memory leak when parse args
2023-11-10 6:36 [PATCH 00/16] verify strdup return value Chengwen Feng
` (5 preceding siblings ...)
2023-11-10 6:36 ` [PATCH 06/16] event/cnxk: " Chengwen Feng
@ 2023-11-10 6:36 ` Chengwen Feng
2023-11-10 6:36 ` [PATCH 08/16] net/nfp: verify strdup return value Chengwen Feng
` (8 subsequent siblings)
15 siblings, 0 replies; 18+ messages in thread
From: Chengwen Feng @ 2023-11-10 6:36 UTC (permalink / raw)
To: thomas, ferruh.yigit, Gaetan Rivet, Olga Shern; +Cc: dev
Should free the memory which allocated by strdup().
Fixes: a46f8d584eb8 ("net/failsafe: add fail-safe PMD")
Cc: stable@dpdk.org
Signed-off-by: Chengwen Feng <fengchengwen@huawei.com>
---
drivers/net/failsafe/failsafe_args.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/failsafe/failsafe_args.c b/drivers/net/failsafe/failsafe_args.c
index b203e02d9a..3b867437d7 100644
--- a/drivers/net/failsafe/failsafe_args.c
+++ b/drivers/net/failsafe/failsafe_args.c
@@ -248,7 +248,7 @@ fs_parse_device_param(struct rte_eth_dev *dev, const char *param,
goto free_args;
} else {
ERROR("Unrecognized device type: %.*s", (int)b, param);
- return -EINVAL;
+ ret = -EINVAL;
}
free_args:
free(args);
--
2.17.1
^ permalink raw reply [flat|nested] 18+ messages in thread
* [PATCH 08/16] net/nfp: verify strdup return value
2023-11-10 6:36 [PATCH 00/16] verify strdup return value Chengwen Feng
` (6 preceding siblings ...)
2023-11-10 6:36 ` [PATCH 07/16] net/failsafe: fix memory leak when parse args Chengwen Feng
@ 2023-11-10 6:36 ` Chengwen Feng
2023-11-10 6:58 ` Chaoyong He
2023-11-10 6:36 ` [PATCH 09/16] app/dumpcap: " Chengwen Feng
` (7 subsequent siblings)
15 siblings, 1 reply; 18+ messages in thread
From: Chengwen Feng @ 2023-11-10 6:36 UTC (permalink / raw)
To: thomas, ferruh.yigit, Chaoyong He, Chang Miao, Shihong Wang; +Cc: dev
Add verify strdup return value logic.
Fixes: 3d21da66c06b ("net/nfp: create security session")
Cc: stable@dpdk.org
Signed-off-by: Chengwen Feng <fengchengwen@huawei.com>
---
drivers/net/nfp/nfp_ipsec.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/drivers/net/nfp/nfp_ipsec.c b/drivers/net/nfp/nfp_ipsec.c
index 452947380e..7ce9cca0b2 100644
--- a/drivers/net/nfp/nfp_ipsec.c
+++ b/drivers/net/nfp/nfp_ipsec.c
@@ -524,6 +524,11 @@ nfp_aesgcm_iv_update(struct ipsec_add_sa *cfg,
uint8_t *cfg_iv;
iv_str = strdup(iv_string);
+ if (iv_str == NULL) {
+ PMD_DRV_LOG(ERR, "Failed to strdup iv_string");
+ return;
+ }
+
cfg_iv = (uint8_t *)cfg->aesgcm_fields.iv;
for (i = 0; i < iv_len; i++) {
--
2.17.1
^ permalink raw reply [flat|nested] 18+ messages in thread
* RE: [PATCH 08/16] net/nfp: verify strdup return value
2023-11-10 6:36 ` [PATCH 08/16] net/nfp: verify strdup return value Chengwen Feng
@ 2023-11-10 6:58 ` Chaoyong He
0 siblings, 0 replies; 18+ messages in thread
From: Chaoyong He @ 2023-11-10 6:58 UTC (permalink / raw)
To: Chengwen Feng, thomas, ferruh.yigit, Chang Miao, Shihong Wang; +Cc: dev
> [You don't often get email from fengchengwen@huawei.com. Learn why this
> is important at https://aka.ms/LearnAboutSenderIdentification ]
>
> Add verify strdup return value logic.
>
> Fixes: 3d21da66c06b ("net/nfp: create security session")
> Cc: stable@dpdk.org
>
> Signed-off-by: Chengwen Feng <fengchengwen@huawei.com>
> ---
> drivers/net/nfp/nfp_ipsec.c | 5 +++++
> 1 file changed, 5 insertions(+)
>
> diff --git a/drivers/net/nfp/nfp_ipsec.c b/drivers/net/nfp/nfp_ipsec.c index
> 452947380e..7ce9cca0b2 100644
> --- a/drivers/net/nfp/nfp_ipsec.c
> +++ b/drivers/net/nfp/nfp_ipsec.c
> @@ -524,6 +524,11 @@ nfp_aesgcm_iv_update(struct ipsec_add_sa *cfg,
> uint8_t *cfg_iv;
>
> iv_str = strdup(iv_string);
> + if (iv_str == NULL) {
> + PMD_DRV_LOG(ERR, "Failed to strdup iv_string");
> + return;
> + }
> +
> cfg_iv = (uint8_t *)cfg->aesgcm_fields.iv;
>
> for (i = 0; i < iv_len; i++) {
> --
> 2.17.1
Looks good tome.
Thanks.
Acked-by: Chaoyong He <chaoyong.he@corigine.com>
^ permalink raw reply [flat|nested] 18+ messages in thread
* [PATCH 09/16] app/dumpcap: verify strdup return value
2023-11-10 6:36 [PATCH 00/16] verify strdup return value Chengwen Feng
` (7 preceding siblings ...)
2023-11-10 6:36 ` [PATCH 08/16] net/nfp: verify strdup return value Chengwen Feng
@ 2023-11-10 6:36 ` Chengwen Feng
2023-11-10 6:36 ` [PATCH 10/16] app/pdump: " Chengwen Feng
` (6 subsequent siblings)
15 siblings, 0 replies; 18+ messages in thread
From: Chengwen Feng @ 2023-11-10 6:36 UTC (permalink / raw)
To: thomas, ferruh.yigit, Reshma Pattan, Stephen Hemminger; +Cc: dev
Add verify strdup return value logic.
Fixes: cbb44143be74 ("app/dumpcap: add new packet capture application")
Cc: stable@dpdk.org
Signed-off-by: Chengwen Feng <fengchengwen@huawei.com>
---
app/dumpcap/main.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/app/dumpcap/main.c b/app/dumpcap/main.c
index 64294bbfb3..6ae2446dd9 100644
--- a/app/dumpcap/main.c
+++ b/app/dumpcap/main.c
@@ -639,6 +639,11 @@ static void dpdk_init(void)
eal_argv[i++] = strdup(file_prefix);
}
+ for (i = 0; i < eal_argc; i++) {
+ if (eal_argv[i] == NULL)
+ rte_panic("No memory\n");
+ }
+
if (rte_eal_init(eal_argc, eal_argv) < 0)
rte_exit(EXIT_FAILURE, "EAL init failed: is primary process running?\n");
}
--
2.17.1
^ permalink raw reply [flat|nested] 18+ messages in thread
* [PATCH 10/16] app/pdump: verify strdup return value
2023-11-10 6:36 [PATCH 00/16] verify strdup return value Chengwen Feng
` (8 preceding siblings ...)
2023-11-10 6:36 ` [PATCH 09/16] app/dumpcap: " Chengwen Feng
@ 2023-11-10 6:36 ` Chengwen Feng
2023-11-10 6:36 ` [PATCH 11/16] app/test: " Chengwen Feng
` (5 subsequent siblings)
15 siblings, 0 replies; 18+ messages in thread
From: Chengwen Feng @ 2023-11-10 6:36 UTC (permalink / raw)
To: thomas, ferruh.yigit, Reshma Pattan, Stephen Hemminger,
konstantin.ananyev
Cc: dev
Add verify strdup return value logic.
Fixes: caa7028276b8 ("app/pdump: add tool for packet capturing")
Cc: stable@dpdk.org
Signed-off-by: Chengwen Feng <fengchengwen@huawei.com>
---
app/pdump/main.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/app/pdump/main.c b/app/pdump/main.c
index 7a1c7bdf60..a9205e130b 100644
--- a/app/pdump/main.c
+++ b/app/pdump/main.c
@@ -171,6 +171,9 @@ parse_device_id(const char *key __rte_unused, const char *value,
struct pdump_tuples *pt = extra_args;
pt->device_id = strdup(value);
+ if (pt->device_id == NULL)
+ return -1;
+
pt->dump_by_type = DEVICE_ID;
return 0;
--
2.17.1
^ permalink raw reply [flat|nested] 18+ messages in thread
* [PATCH 11/16] app/test: verify strdup return value
2023-11-10 6:36 [PATCH 00/16] verify strdup return value Chengwen Feng
` (9 preceding siblings ...)
2023-11-10 6:36 ` [PATCH 10/16] app/pdump: " Chengwen Feng
@ 2023-11-10 6:36 ` Chengwen Feng
2023-11-10 6:36 ` [PATCH 12/16] app/test-crypto-perf: " Chengwen Feng
` (4 subsequent siblings)
15 siblings, 0 replies; 18+ messages in thread
From: Chengwen Feng @ 2023-11-10 6:36 UTC (permalink / raw)
To: thomas, ferruh.yigit; +Cc: dev
Add verify strdup return value logic.
Fixes: af75078fece3 ("first public release")
Cc: stable@dpdk.org
Signed-off-by: Chengwen Feng <fengchengwen@huawei.com>
---
app/test/process.h | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/app/test/process.h b/app/test/process.h
index af7bc3e0de..c576c42349 100644
--- a/app/test/process.h
+++ b/app/test/process.h
@@ -59,8 +59,11 @@ process_dup(const char *const argv[], int numargs, const char *env_value)
return -1;
else if (pid == 0) {
/* make a copy of the arguments to be passed to exec */
- for (i = 0; i < numargs; i++)
+ for (i = 0; i < numargs; i++) {
argv_cpy[i] = strdup(argv[i]);
+ if (argv_cpy[i] == NULL)
+ rte_panic("Error dup args\n");
+ }
argv_cpy[i] = NULL;
num = numargs;
--
2.17.1
^ permalink raw reply [flat|nested] 18+ messages in thread
* [PATCH 12/16] app/test-crypto-perf: verify strdup return value
2023-11-10 6:36 [PATCH 00/16] verify strdup return value Chengwen Feng
` (10 preceding siblings ...)
2023-11-10 6:36 ` [PATCH 11/16] app/test: " Chengwen Feng
@ 2023-11-10 6:36 ` Chengwen Feng
2023-11-10 6:36 ` [PATCH 13/16] app/test-dma-perf: " Chengwen Feng
` (3 subsequent siblings)
15 siblings, 0 replies; 18+ messages in thread
From: Chengwen Feng @ 2023-11-10 6:36 UTC (permalink / raw)
To: thomas, ferruh.yigit, Ciara Power, Piotr Azarewicz,
Marcin Kerlin, Michal Kobylinski, Declan Doherty,
Slawomir Mrozowicz
Cc: dev
Add verify strdup return value logic.
Fixes: f8be1786b1b8 ("app/crypto-perf: introduce performance test application")
Cc: stable@dpdk.org
Signed-off-by: Chengwen Feng <fengchengwen@huawei.com>
---
app/test-crypto-perf/cperf_options_parsing.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/app/test-crypto-perf/cperf_options_parsing.c b/app/test-crypto-perf/cperf_options_parsing.c
index 75afedc7fd..8909b5690d 100644
--- a/app/test-crypto-perf/cperf_options_parsing.c
+++ b/app/test-crypto-perf/cperf_options_parsing.c
@@ -516,6 +516,10 @@ parse_test_file(struct cperf_options *opts,
const char *arg)
{
opts->test_file = strdup(arg);
+ if (opts->test_file == NULL) {
+ RTE_LOG(ERR, USER1, "Dup vector file failed!\n");
+ return -1;
+ }
if (access(opts->test_file, F_OK) != -1)
return 0;
RTE_LOG(ERR, USER1, "Test vector file doesn't exist\n");
--
2.17.1
^ permalink raw reply [flat|nested] 18+ messages in thread
* [PATCH 13/16] app/test-dma-perf: verify strdup return value
2023-11-10 6:36 [PATCH 00/16] verify strdup return value Chengwen Feng
` (11 preceding siblings ...)
2023-11-10 6:36 ` [PATCH 12/16] app/test-crypto-perf: " Chengwen Feng
@ 2023-11-10 6:36 ` Chengwen Feng
2023-11-10 6:36 ` [PATCH 14/16] app/testpmd: " Chengwen Feng
` (2 subsequent siblings)
15 siblings, 0 replies; 18+ messages in thread
From: Chengwen Feng @ 2023-11-10 6:36 UTC (permalink / raw)
To: thomas, ferruh.yigit, Cheng Jiang, Morten Brørup,
Anoob Joseph, Yuan Wang, Jiayu Hu
Cc: dev
Add verify strdup return value logic.
Fixes: 623dc9364dc6 ("app/dma-perf: introduce DMA performance test")
Cc: stable@dpdk.org
Signed-off-by: Chengwen Feng <fengchengwen@huawei.com>
---
app/test-dma-perf/main.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/app/test-dma-perf/main.c b/app/test-dma-perf/main.c
index e5bccc27da..339ee25eb5 100644
--- a/app/test-dma-perf/main.c
+++ b/app/test-dma-perf/main.c
@@ -206,6 +206,8 @@ parse_lcore_dma(struct test_configure *test_case, const char *value)
return -1;
input = strndup(value, strlen(value) + 1);
+ if (input == NULL)
+ return -1;
addrs = input;
while (*addrs == '\0')
--
2.17.1
^ permalink raw reply [flat|nested] 18+ messages in thread
* [PATCH 14/16] app/testpmd: verify strdup return value
2023-11-10 6:36 [PATCH 00/16] verify strdup return value Chengwen Feng
` (12 preceding siblings ...)
2023-11-10 6:36 ` [PATCH 13/16] app/test-dma-perf: " Chengwen Feng
@ 2023-11-10 6:36 ` Chengwen Feng
2023-11-10 6:36 ` [PATCH 15/16] examples/qos_sched: fix memory leak when parse args Chengwen Feng
2023-11-10 6:36 ` [PATCH 16/16] examples/vhost: verify strdup return value Chengwen Feng
15 siblings, 0 replies; 18+ messages in thread
From: Chengwen Feng @ 2023-11-10 6:36 UTC (permalink / raw)
To: thomas, ferruh.yigit, Aman Singh, Yuying Zhang, Xuan Ding,
Andrew Rybchenko, Wenxuan Wu, Yuan Wang
Cc: dev
Add verify strdup return value logic.
Fixes: 52e2e7edcf48 ("app/testpmd: add protocol-based buffer split")
Cc: stable@dpdk.org
Signed-off-by: Chengwen Feng <fengchengwen@huawei.com>
---
app/test-pmd/cmdline.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c
index 912bf3355c..904c04d466 100644
--- a/app/test-pmd/cmdline.c
+++ b/app/test-pmd/cmdline.c
@@ -3528,6 +3528,8 @@ parse_hdrs_list(const char *str, const char *item_name, unsigned int max_items,
nb_item = 0;
char *str2 = strdup(str);
+ if (str2 == NULL)
+ return nb_item;
cur = strtok_r(str2, ",", &tmp);
while (cur != NULL) {
parsed_items[nb_item] = get_ptype(cur);
--
2.17.1
^ permalink raw reply [flat|nested] 18+ messages in thread
* [PATCH 15/16] examples/qos_sched: fix memory leak when parse args
2023-11-10 6:36 [PATCH 00/16] verify strdup return value Chengwen Feng
` (13 preceding siblings ...)
2023-11-10 6:36 ` [PATCH 14/16] app/testpmd: " Chengwen Feng
@ 2023-11-10 6:36 ` Chengwen Feng
2023-11-10 6:36 ` [PATCH 16/16] examples/vhost: verify strdup return value Chengwen Feng
15 siblings, 0 replies; 18+ messages in thread
From: Chengwen Feng @ 2023-11-10 6:36 UTC (permalink / raw)
To: thomas, ferruh.yigit, Cristian Dumitrescu, Slawomir Mrozowicz; +Cc: dev
Should free the memory which allocated by strdup().
Fixes: 035b6a4f4bba ("examples/qos_sched: fix out-of-bounds option parsing")
Cc: stable@dpdk.org
Signed-off-by: Chengwen Feng <fengchengwen@huawei.com>
---
examples/qos_sched/args.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/examples/qos_sched/args.c b/examples/qos_sched/args.c
index e97273152a..8d61d3e454 100644
--- a/examples/qos_sched/args.c
+++ b/examples/qos_sched/args.c
@@ -103,8 +103,10 @@ app_parse_opt_vals(const char *conf_str, char separator, uint32_t n_vals, uint32
n_tokens = rte_strsplit(string, strnlen(string, 32), tokens, n_vals, separator);
- if (n_tokens > MAX_OPT_VALUES)
+ if (n_tokens > MAX_OPT_VALUES) {
+ free(string);
return -1;
+ }
for (i = 0; i < n_tokens; i++)
opt_vals[i] = (uint32_t)atol(tokens[i]);
--
2.17.1
^ permalink raw reply [flat|nested] 18+ messages in thread
* [PATCH 16/16] examples/vhost: verify strdup return value
2023-11-10 6:36 [PATCH 00/16] verify strdup return value Chengwen Feng
` (14 preceding siblings ...)
2023-11-10 6:36 ` [PATCH 15/16] examples/qos_sched: fix memory leak when parse args Chengwen Feng
@ 2023-11-10 6:36 ` Chengwen Feng
15 siblings, 0 replies; 18+ messages in thread
From: Chengwen Feng @ 2023-11-10 6:36 UTC (permalink / raw)
To: thomas, ferruh.yigit, Maxime Coquelin, Chenbo Xia, Sunil Pai G, Jiayu Hu
Cc: dev
Add verify strdup return value logic.
Fixes: 53d3f4778c1d ("vhost: integrate dmadev in asynchronous data-path")
Cc: stable@dpdk.org
Signed-off-by: Chengwen Feng <fengchengwen@huawei.com>
---
examples/vhost/main.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/examples/vhost/main.c b/examples/vhost/main.c
index ce5c1efddf..3fc1b151d1 100644
--- a/examples/vhost/main.c
+++ b/examples/vhost/main.c
@@ -260,6 +260,9 @@ open_dma(const char *value)
char *dma_arg[RTE_MAX_VHOST_DEVICE];
int args_nr;
+ if (input == NULL)
+ return -1;
+
while (isblank(*addrs))
addrs++;
if (*addrs == '\0') {
--
2.17.1
^ permalink raw reply [flat|nested] 18+ messages in thread