[dpdk-dev,v3,1/8] net/failsafe: fix invalid free

Message ID 1515509253-17834-2-git-send-email-matan@mellanox.com (mailing list archive)
State Superseded, archived
Delegated to: Ferruh Yigit
Headers

Checks

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

Commit Message

Matan Azrad Jan. 9, 2018, 2:47 p.m. UTC
  From: Adrien Mazarguil <adrien.mazarguil@6wind.com>

rte_free() is not supposed to work with pointers returned by calloc().

Fixes: a0194d828100 ("net/failsafe: add flexible device definition")
Cc: stable@dpdk.org
Cc: Gaetan Rivet <gaetan.rivet@6wind.com>

Signed-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
---
 drivers/net/failsafe/failsafe_args.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
  

Comments

Gaëtan Rivet Jan. 16, 2018, 10:24 a.m. UTC | #1
Hi Matan,

On Tue, Jan 09, 2018 at 02:47:26PM +0000, Matan Azrad wrote:
> From: Adrien Mazarguil <adrien.mazarguil@6wind.com>
> 
> rte_free() is not supposed to work with pointers returned by calloc().
> 
> Fixes: a0194d828100 ("net/failsafe: add flexible device definition")
> Cc: stable@dpdk.org
> 
> Signed-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
Acked-by: Gaetan Rivet <gaetan.rivet@6wind.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 cfc83e3..ec63ac9 100644
> --- a/drivers/net/failsafe/failsafe_args.c
> +++ b/drivers/net/failsafe/failsafe_args.c
> @@ -407,7 +407,7 @@ typedef int (parse_cb)(struct rte_eth_dev *dev, const char *params,
>  	uint8_t i;
>  
>  	FOREACH_SUBDEV(sdev, i, dev) {
> -		rte_free(sdev->cmdline);
> +		free(sdev->cmdline);
>  		sdev->cmdline = NULL;
>  		free(sdev->devargs.args);
>  		sdev->devargs.args = NULL;
> -- 
> 1.8.3.1
>
  

Patch

diff --git a/drivers/net/failsafe/failsafe_args.c b/drivers/net/failsafe/failsafe_args.c
index cfc83e3..ec63ac9 100644
--- a/drivers/net/failsafe/failsafe_args.c
+++ b/drivers/net/failsafe/failsafe_args.c
@@ -407,7 +407,7 @@  typedef int (parse_cb)(struct rte_eth_dev *dev, const char *params,
 	uint8_t i;
 
 	FOREACH_SUBDEV(sdev, i, dev) {
-		rte_free(sdev->cmdline);
+		free(sdev->cmdline);
 		sdev->cmdline = NULL;
 		free(sdev->devargs.args);
 		sdev->devargs.args = NULL;