* [PATCH v2 01/16] eal: verify strdup return value
2023-11-10 10:01 [PATCH v2 00/16] verify strdup return value Chengwen Feng
@ 2023-11-10 10:01 ` Chengwen Feng
2023-11-21 3:44 ` lihuisong (C)
2023-11-10 10:01 ` [PATCH v2 02/16] bus/dpaa: " Chengwen Feng
` (16 subsequent siblings)
17 siblings, 1 reply; 29+ messages in thread
From: Chengwen Feng @ 2023-11-10 10:01 UTC (permalink / raw)
To: thomas, ferruh.yigit, Keith Wiles, Ciara Power, Bruce Richardson,
Jeff Guo, Jianfeng Tan
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] 29+ messages in thread
* Re: [PATCH v2 01/16] eal: verify strdup return value
2023-11-10 10:01 ` [PATCH v2 01/16] eal: " Chengwen Feng
@ 2023-11-21 3:44 ` lihuisong (C)
2024-02-18 13:50 ` Thomas Monjalon
0 siblings, 1 reply; 29+ messages in thread
From: lihuisong (C) @ 2023-11-21 3:44 UTC (permalink / raw)
To: Chengwen Feng, thomas, ferruh.yigit, Keith Wiles, Ciara Power,
Bruce Richardson, Jeff Guo, Jianfeng Tan
Cc: dev
在 2023/11/10 18:01, Chengwen Feng 写道:
> 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);
It seems that above free for devname is unnecessary.
> event->devname = strdup(pci_slot_name);
> + if (event->devname == NULL)
> + return -1;
> }
> for (; i < length; i++) {
> if (*buf == '\0')
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [PATCH v2 01/16] eal: verify strdup return value
2023-11-21 3:44 ` lihuisong (C)
@ 2024-02-18 13:50 ` Thomas Monjalon
0 siblings, 0 replies; 29+ messages in thread
From: Thomas Monjalon @ 2024-02-18 13:50 UTC (permalink / raw)
To: Chengwen Feng
Cc: ferruh.yigit, Keith Wiles, Ciara Power, Bruce Richardson,
Jeff Guo, Jianfeng Tan, dev, lihuisong (C)
21/11/2023 04:44, lihuisong (C):
> 在 2023/11/10 18:01, Chengwen Feng 写道:
> > --- 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);
> It seems that above free for devname is unnecessary.
You didn't reply to this comment, so I will drop this free call.
> > event->devname = strdup(pci_slot_name);
> > + if (event->devname == NULL)
> > + return -1;
^ permalink raw reply [flat|nested] 29+ messages in thread
* [PATCH v2 02/16] bus/dpaa: verify strdup return value
2023-11-10 10:01 [PATCH v2 00/16] verify strdup return value Chengwen Feng
2023-11-10 10:01 ` [PATCH v2 01/16] eal: " Chengwen Feng
@ 2023-11-10 10:01 ` Chengwen Feng
2023-11-15 2:43 ` Sachin Saxena
2023-11-10 10:01 ` [PATCH v2 03/16] bus/fslmc: " Chengwen Feng
` (15 subsequent siblings)
17 siblings, 1 reply; 29+ messages in thread
From: Chengwen Feng @ 2023-11-10 10:01 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] 29+ messages in thread
* RE: [PATCH v2 02/16] bus/dpaa: verify strdup return value
2023-11-10 10:01 ` [PATCH v2 02/16] bus/dpaa: " Chengwen Feng
@ 2023-11-15 2:43 ` Sachin Saxena
0 siblings, 0 replies; 29+ messages in thread
From: Sachin Saxena @ 2023-11-15 2:43 UTC (permalink / raw)
To: Chengwen Feng, thomas, ferruh.yigit, Hemant Agrawal, Shreyansh Jain; +Cc: dev
Acked-by: Sachin Saxena <sachin.saxena@nxp.com>
> -----Original Message-----
> From: Chengwen Feng <fengchengwen@huawei.com>
> Sent: 10 November 2023 03:31 PM
> To: thomas@monjalon.net; ferruh.yigit@amd.com; Hemant Agrawal
> <hemant.agrawal@nxp.com>; Sachin Saxena <sachin.saxena@nxp.com>;
> Shreyansh Jain <shreyansh.jain@nxp.com>
> Cc: dev@dpdk.org
> Subject: [PATCH v2 02/16] bus/dpaa: verify strdup return value
>
> 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] 29+ messages in thread
* [PATCH v2 03/16] bus/fslmc: verify strdup return value
2023-11-10 10:01 [PATCH v2 00/16] verify strdup return value Chengwen Feng
2023-11-10 10:01 ` [PATCH v2 01/16] eal: " Chengwen Feng
2023-11-10 10:01 ` [PATCH v2 02/16] bus/dpaa: " Chengwen Feng
@ 2023-11-10 10:01 ` Chengwen Feng
2023-11-15 2:43 ` Sachin Saxena
2023-11-10 10:01 ` [PATCH v2 04/16] bus/vdev: " Chengwen Feng
` (14 subsequent siblings)
17 siblings, 1 reply; 29+ messages in thread
From: Chengwen Feng @ 2023-11-10 10:01 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] 29+ messages in thread
* RE: [PATCH v2 03/16] bus/fslmc: verify strdup return value
2023-11-10 10:01 ` [PATCH v2 03/16] bus/fslmc: " Chengwen Feng
@ 2023-11-15 2:43 ` Sachin Saxena
0 siblings, 0 replies; 29+ messages in thread
From: Sachin Saxena @ 2023-11-15 2:43 UTC (permalink / raw)
To: Chengwen Feng, thomas, ferruh.yigit, Hemant Agrawal, Shreyansh Jain; +Cc: dev
Acked-by: Sachin Saxena <sachin.saxena@nxp.com>
> -----Original Message-----
> From: Chengwen Feng <fengchengwen@huawei.com>
> Sent: 10 November 2023 03:31 PM
> To: thomas@monjalon.net; ferruh.yigit@amd.com; Hemant Agrawal
> <hemant.agrawal@nxp.com>; Sachin Saxena <sachin.saxena@nxp.com>;
> Shreyansh Jain <shreyansh.jain@nxp.com>
> Cc: dev@dpdk.org
> Subject: [PATCH v2 03/16] bus/fslmc: verify strdup return value
>
> 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] 29+ messages in thread
* [PATCH v2 04/16] bus/vdev: verify strdup return value
2023-11-10 10:01 [PATCH v2 00/16] verify strdup return value Chengwen Feng
` (2 preceding siblings ...)
2023-11-10 10:01 ` [PATCH v2 03/16] bus/fslmc: " Chengwen Feng
@ 2023-11-10 10:01 ` Chengwen Feng
2023-11-21 3:36 ` lihuisong (C)
2023-11-10 10:01 ` [PATCH v2 05/16] dma/idxd: " Chengwen Feng
` (13 subsequent siblings)
17 siblings, 1 reply; 29+ messages in thread
From: Chengwen Feng @ 2023-11-10 10:01 UTC (permalink / raw)
To: thomas, ferruh.yigit, Gaetan Rivet, Xueming Li, Ray Kinsella; +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] 29+ messages in thread
* Re: [PATCH v2 04/16] bus/vdev: verify strdup return value
2023-11-10 10:01 ` [PATCH v2 04/16] bus/vdev: " Chengwen Feng
@ 2023-11-21 3:36 ` lihuisong (C)
0 siblings, 0 replies; 29+ messages in thread
From: lihuisong (C) @ 2023-11-21 3:36 UTC (permalink / raw)
To: Chengwen Feng, thomas, ferruh.yigit, Gaetan Rivet, Xueming Li,
Ray Kinsella
Cc: dev
Acked-by: Huisong Li <lihuisong@huawei.com>
在 2023/11/10 18:01, Chengwen Feng 写道:
> 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));
^ permalink raw reply [flat|nested] 29+ messages in thread
* [PATCH v2 05/16] dma/idxd: verify strdup return value
2023-11-10 10:01 [PATCH v2 00/16] verify strdup return value Chengwen Feng
` (3 preceding siblings ...)
2023-11-10 10:01 ` [PATCH v2 04/16] bus/vdev: " Chengwen Feng
@ 2023-11-10 10:01 ` Chengwen Feng
2023-11-10 10:01 ` [PATCH v2 06/16] event/cnxk: " Chengwen Feng
` (12 subsequent siblings)
17 siblings, 0 replies; 29+ messages in thread
From: Chengwen Feng @ 2023-11-10 10:01 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] 29+ messages in thread
* [PATCH v2 06/16] event/cnxk: verify strdup return value
2023-11-10 10:01 [PATCH v2 00/16] verify strdup return value Chengwen Feng
` (4 preceding siblings ...)
2023-11-10 10:01 ` [PATCH v2 05/16] dma/idxd: " Chengwen Feng
@ 2023-11-10 10:01 ` Chengwen Feng
2023-11-10 10:01 ` [PATCH v2 07/16] net/failsafe: fix memory leak when parse args Chengwen Feng
` (11 subsequent siblings)
17 siblings, 0 replies; 29+ messages in thread
From: Chengwen Feng @ 2023-11-10 10:01 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] 29+ messages in thread
* [PATCH v2 07/16] net/failsafe: fix memory leak when parse args
2023-11-10 10:01 [PATCH v2 00/16] verify strdup return value Chengwen Feng
` (5 preceding siblings ...)
2023-11-10 10:01 ` [PATCH v2 06/16] event/cnxk: " Chengwen Feng
@ 2023-11-10 10:01 ` Chengwen Feng
2023-11-10 10:01 ` [PATCH v2 08/16] net/nfp: verify strdup return value Chengwen Feng
` (10 subsequent siblings)
17 siblings, 0 replies; 29+ messages in thread
From: Chengwen Feng @ 2023-11-10 10:01 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] 29+ messages in thread
* [PATCH v2 08/16] net/nfp: verify strdup return value
2023-11-10 10:01 [PATCH v2 00/16] verify strdup return value Chengwen Feng
` (6 preceding siblings ...)
2023-11-10 10:01 ` [PATCH v2 07/16] net/failsafe: fix memory leak when parse args Chengwen Feng
@ 2023-11-10 10:01 ` Chengwen Feng
2023-11-10 10:01 ` [PATCH v2 09/16] app/dumpcap: " Chengwen Feng
` (9 subsequent siblings)
17 siblings, 0 replies; 29+ messages in thread
From: Chengwen Feng @ 2023-11-10 10:01 UTC (permalink / raw)
To: thomas, ferruh.yigit, Chaoyong He, Shihong Wang, Chang Miao; +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>
Acked-by: Chaoyong He <chaoyong.he@corigine.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] 29+ messages in thread
* [PATCH v2 09/16] app/dumpcap: verify strdup return value
2023-11-10 10:01 [PATCH v2 00/16] verify strdup return value Chengwen Feng
` (7 preceding siblings ...)
2023-11-10 10:01 ` [PATCH v2 08/16] net/nfp: verify strdup return value Chengwen Feng
@ 2023-11-10 10:01 ` Chengwen Feng
2023-11-10 10:01 ` [PATCH v2 10/16] app/pdump: " Chengwen Feng
` (8 subsequent siblings)
17 siblings, 0 replies; 29+ messages in thread
From: Chengwen Feng @ 2023-11-10 10:01 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..6f49703c50 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 < (unsigned int)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] 29+ messages in thread
* [PATCH v2 10/16] app/pdump: verify strdup return value
2023-11-10 10:01 [PATCH v2 00/16] verify strdup return value Chengwen Feng
` (8 preceding siblings ...)
2023-11-10 10:01 ` [PATCH v2 09/16] app/dumpcap: " Chengwen Feng
@ 2023-11-10 10:01 ` Chengwen Feng
2023-11-10 10:01 ` [PATCH v2 11/16] app/test: " Chengwen Feng
` (7 subsequent siblings)
17 siblings, 0 replies; 29+ messages in thread
From: Chengwen Feng @ 2023-11-10 10:01 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] 29+ messages in thread
* [PATCH v2 11/16] app/test: verify strdup return value
2023-11-10 10:01 [PATCH v2 00/16] verify strdup return value Chengwen Feng
` (9 preceding siblings ...)
2023-11-10 10:01 ` [PATCH v2 10/16] app/pdump: " Chengwen Feng
@ 2023-11-10 10:01 ` Chengwen Feng
2023-11-21 3:33 ` lihuisong (C)
2023-11-10 10:01 ` [PATCH v2 12/16] app/test-crypto-perf: " Chengwen Feng
` (6 subsequent siblings)
17 siblings, 1 reply; 29+ messages in thread
From: Chengwen Feng @ 2023-11-10 10:01 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] 29+ messages in thread
* Re: [PATCH v2 11/16] app/test: verify strdup return value
2023-11-10 10:01 ` [PATCH v2 11/16] app/test: " Chengwen Feng
@ 2023-11-21 3:33 ` lihuisong (C)
0 siblings, 0 replies; 29+ messages in thread
From: lihuisong (C) @ 2023-11-21 3:33 UTC (permalink / raw)
To: Chengwen Feng, thomas, ferruh.yigit; +Cc: dev
Acked-by: Huisong Li <lihuisong@huawei.com>
在 2023/11/10 18:01, Chengwen Feng 写道:
> 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;
>
^ permalink raw reply [flat|nested] 29+ messages in thread
* [PATCH v2 12/16] app/test-crypto-perf: verify strdup return value
2023-11-10 10:01 [PATCH v2 00/16] verify strdup return value Chengwen Feng
` (10 preceding siblings ...)
2023-11-10 10:01 ` [PATCH v2 11/16] app/test: " Chengwen Feng
@ 2023-11-10 10:01 ` Chengwen Feng
2023-11-10 10:01 ` [PATCH v2 13/16] app/test-dma-perf: " Chengwen Feng
` (5 subsequent siblings)
17 siblings, 0 replies; 29+ messages in thread
From: Chengwen Feng @ 2023-11-10 10:01 UTC (permalink / raw)
To: thomas, ferruh.yigit, Ciara Power, Michal Kobylinski,
Declan Doherty, Slawomir Mrozowicz, Marcin Kerlin,
Piotr Azarewicz
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] 29+ messages in thread
* [PATCH v2 13/16] app/test-dma-perf: verify strdup return value
2023-11-10 10:01 [PATCH v2 00/16] verify strdup return value Chengwen Feng
` (11 preceding siblings ...)
2023-11-10 10:01 ` [PATCH v2 12/16] app/test-crypto-perf: " Chengwen Feng
@ 2023-11-10 10:01 ` Chengwen Feng
2023-11-21 3:32 ` lihuisong (C)
2023-11-10 10:01 ` [PATCH v2 14/16] app/testpmd: " Chengwen Feng
` (4 subsequent siblings)
17 siblings, 1 reply; 29+ messages in thread
From: Chengwen Feng @ 2023-11-10 10:01 UTC (permalink / raw)
To: thomas, ferruh.yigit, Cheng Jiang, Yuan Wang, Chenbo Xia, 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] 29+ messages in thread
* Re: [PATCH v2 13/16] app/test-dma-perf: verify strdup return value
2023-11-10 10:01 ` [PATCH v2 13/16] app/test-dma-perf: " Chengwen Feng
@ 2023-11-21 3:32 ` lihuisong (C)
0 siblings, 0 replies; 29+ messages in thread
From: lihuisong (C) @ 2023-11-21 3:32 UTC (permalink / raw)
To: Chengwen Feng, thomas, ferruh.yigit, Cheng Jiang, Yuan Wang,
Chenbo Xia, Jiayu Hu
Cc: dev
Acked-by: Huisong Li <lihuisong@huawei.com>
在 2023/11/10 18:01, Chengwen Feng 写道:
> 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')
^ permalink raw reply [flat|nested] 29+ messages in thread
* [PATCH v2 14/16] app/testpmd: verify strdup return value
2023-11-10 10:01 [PATCH v2 00/16] verify strdup return value Chengwen Feng
` (12 preceding siblings ...)
2023-11-10 10:01 ` [PATCH v2 13/16] app/test-dma-perf: " Chengwen Feng
@ 2023-11-10 10:01 ` Chengwen Feng
2023-11-10 11:44 ` Ivan Malov
2023-11-21 3:32 ` lihuisong (C)
2023-11-10 10:01 ` [PATCH v2 15/16] examples/qos_sched: fix memory leak when parse args Chengwen Feng
` (3 subsequent siblings)
17 siblings, 2 replies; 29+ messages in thread
From: Chengwen Feng @ 2023-11-10 10:01 UTC (permalink / raw)
To: thomas, ferruh.yigit, Aman Singh, Yuying Zhang, Wenxuan Wu,
Yuan Wang, Andrew Rybchenko, Xuan Ding
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] 29+ messages in thread
* Re: [PATCH v2 14/16] app/testpmd: verify strdup return value
2023-11-10 10:01 ` [PATCH v2 14/16] app/testpmd: " Chengwen Feng
@ 2023-11-10 11:44 ` Ivan Malov
2023-11-21 3:32 ` lihuisong (C)
1 sibling, 0 replies; 29+ messages in thread
From: Ivan Malov @ 2023-11-10 11:44 UTC (permalink / raw)
To: Chengwen Feng
Cc: thomas, ferruh.yigit, Aman Singh, Yuying Zhang, Wenxuan Wu,
Yuan Wang, Andrew Rybchenko, Xuan Ding, dev
Hi,
On Fri, 10 Nov 2023, Chengwen Feng wrote:
> 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
>
>
Acked-by: Ivan Malov <ivan.malov@arknetworks.am>
Thank you.
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [PATCH v2 14/16] app/testpmd: verify strdup return value
2023-11-10 10:01 ` [PATCH v2 14/16] app/testpmd: " Chengwen Feng
2023-11-10 11:44 ` Ivan Malov
@ 2023-11-21 3:32 ` lihuisong (C)
1 sibling, 0 replies; 29+ messages in thread
From: lihuisong (C) @ 2023-11-21 3:32 UTC (permalink / raw)
To: Chengwen Feng, thomas, ferruh.yigit, Aman Singh, Yuying Zhang,
Wenxuan Wu, Yuan Wang, Andrew Rybchenko, Xuan Ding
Cc: dev
Acked-by: Huisong Li <lihuisong@huawei.com>
在 2023/11/10 18:01, Chengwen Feng 写道:
> 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);
^ permalink raw reply [flat|nested] 29+ messages in thread
* [PATCH v2 15/16] examples/qos_sched: fix memory leak when parse args
2023-11-10 10:01 [PATCH v2 00/16] verify strdup return value Chengwen Feng
` (13 preceding siblings ...)
2023-11-10 10:01 ` [PATCH v2 14/16] app/testpmd: " Chengwen Feng
@ 2023-11-10 10:01 ` Chengwen Feng
2023-11-10 10:01 ` [PATCH v2 16/16] examples/vhost: verify strdup return value Chengwen Feng
` (2 subsequent siblings)
17 siblings, 0 replies; 29+ messages in thread
From: Chengwen Feng @ 2023-11-10 10:01 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] 29+ messages in thread
* [PATCH v2 16/16] examples/vhost: verify strdup return value
2023-11-10 10:01 [PATCH v2 00/16] verify strdup return value Chengwen Feng
` (14 preceding siblings ...)
2023-11-10 10:01 ` [PATCH v2 15/16] examples/qos_sched: fix memory leak when parse args Chengwen Feng
@ 2023-11-10 10:01 ` Chengwen Feng
2023-11-21 3:35 ` lihuisong (C)
2024-01-15 2:57 ` [PATCH v2 00/16] " fengchengwen
2024-02-18 16:01 ` Thomas Monjalon
17 siblings, 1 reply; 29+ messages in thread
From: Chengwen Feng @ 2023-11-10 10:01 UTC (permalink / raw)
To: thomas, ferruh.yigit, Maxime Coquelin, Chenbo Xia, Jiayu Hu, Sunil Pai G
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] 29+ messages in thread
* Re: [PATCH v2 16/16] examples/vhost: verify strdup return value
2023-11-10 10:01 ` [PATCH v2 16/16] examples/vhost: verify strdup return value Chengwen Feng
@ 2023-11-21 3:35 ` lihuisong (C)
0 siblings, 0 replies; 29+ messages in thread
From: lihuisong (C) @ 2023-11-21 3:35 UTC (permalink / raw)
To: Chengwen Feng, thomas, ferruh.yigit, Maxime Coquelin, Chenbo Xia,
Jiayu Hu, Sunil Pai G
Cc: dev
Acked-by: Huisong Li <lihuisong@huawei.com>
在 2023/11/10 18:01, Chengwen Feng 写道:
> 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') {
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [PATCH v2 00/16] verify strdup return value
2023-11-10 10:01 [PATCH v2 00/16] verify strdup return value Chengwen Feng
` (15 preceding siblings ...)
2023-11-10 10:01 ` [PATCH v2 16/16] examples/vhost: verify strdup return value Chengwen Feng
@ 2024-01-15 2:57 ` fengchengwen
2024-02-18 16:01 ` Thomas Monjalon
17 siblings, 0 replies; 29+ messages in thread
From: fengchengwen @ 2024-01-15 2:57 UTC (permalink / raw)
To: thomas, ferruh.yigit; +Cc: dev
Friendly ping.
On 2023/11/10 18:01, Chengwen Feng wrote:
> This patchset mainly fix the return value of strdup not checked which
> may lead to segment fault. It also include two commits which fix memory
> leak of strdup.
>
> Chengwen Feng (16):
> eal: verify strdup return value
> bus/dpaa: verify strdup return value
> bus/fslmc: verify strdup return value
> bus/vdev: verify strdup return value
> dma/idxd: verify strdup return value
> event/cnxk: verify strdup return value
> net/failsafe: fix memory leak when parse args
> net/nfp: verify strdup return value
> app/dumpcap: verify strdup return value
> app/pdump: verify strdup return value
> app/test: verify strdup return value
> app/test-crypto-perf: verify strdup return value
> app/test-dma-perf: verify strdup return value
> app/testpmd: verify strdup return value
> examples/qos_sched: fix memory leak when parse args
> examples/vhost: verify strdup return value
>
> ---
> v2: fix 0-day warning of app/dumpcap commit.
>
> app/dumpcap/main.c | 5 ++++
> app/pdump/main.c | 3 +++
> app/test-crypto-perf/cperf_options_parsing.c | 4 ++++
> app/test-dma-perf/main.c | 2 ++
> app/test-pmd/cmdline.c | 2 ++
> app/test/process.h | 5 +++-
> drivers/bus/dpaa/dpaa_bus.c | 4 ++++
> drivers/bus/fslmc/fslmc_bus.c | 4 ++++
> drivers/bus/vdev/vdev.c | 4 ++++
> drivers/dma/idxd/idxd_bus.c | 10 ++++++--
> drivers/event/cnxk/cnxk_eventdev.c | 3 +++
> drivers/net/failsafe/failsafe_args.c | 2 +-
> drivers/net/nfp/nfp_ipsec.c | 5 ++++
> examples/qos_sched/args.c | 4 +++-
> examples/vhost/main.c | 3 +++
> lib/eal/common/eal_common_options.c | 24 ++++++++++++++++++--
> lib/eal/linux/eal_dev.c | 3 +++
> 17 files changed, 80 insertions(+), 7 deletions(-)
>
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [PATCH v2 00/16] verify strdup return value
2023-11-10 10:01 [PATCH v2 00/16] verify strdup return value Chengwen Feng
` (16 preceding siblings ...)
2024-01-15 2:57 ` [PATCH v2 00/16] " fengchengwen
@ 2024-02-18 16:01 ` Thomas Monjalon
17 siblings, 0 replies; 29+ messages in thread
From: Thomas Monjalon @ 2024-02-18 16:01 UTC (permalink / raw)
To: Chengwen Feng; +Cc: ferruh.yigit, dev
10/11/2023 11:01, Chengwen Feng:
> This patchset mainly fix the return value of strdup not checked which
> may lead to segment fault. It also include two commits which fix memory
> leak of strdup.
>
> Chengwen Feng (16):
> eal: verify strdup return value
> bus/dpaa: verify strdup return value
> bus/fslmc: verify strdup return value
> bus/vdev: verify strdup return value
> dma/idxd: verify strdup return value
> event/cnxk: verify strdup return value
> net/failsafe: fix memory leak when parse args
> net/nfp: verify strdup return value
> app/dumpcap: verify strdup return value
> app/pdump: verify strdup return value
> app/test: verify strdup return value
> app/test-crypto-perf: verify strdup return value
> app/test-dma-perf: verify strdup return value
> app/testpmd: verify strdup return value
> examples/qos_sched: fix memory leak when parse args
> examples/vhost: verify strdup return value
Applied, with small change in EAL as suggested by Huisong, thanks.
^ permalink raw reply [flat|nested] 29+ messages in thread