[dpdk-dev] examples/ip_pipeline: fix buffer not null terminated
Checks
Commit Message
Coverity issue: 272572
Fixes: 719374345cee ("examples/ip_pipeline: add action profile objects")
Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com>
---
examples/ip_pipeline/action.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Comments
On Mon, Apr 16, 2018 at 12:02:33PM +0100, Fan Zhang wrote:
> Coverity issue: 272572
> Fixes: 719374345cee ("examples/ip_pipeline: add action profile objects")
>
> Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com>
> ---
> examples/ip_pipeline/action.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/examples/ip_pipeline/action.c b/examples/ip_pipeline/action.c
> index 77a04fe19..91011ebe8 100644
> --- a/examples/ip_pipeline/action.c
> +++ b/examples/ip_pipeline/action.c
> @@ -133,7 +133,7 @@ port_in_action_profile_create(const char *name,
> }
>
> /* Node fill in */
> - strncpy(profile->name, name, sizeof(profile->name));
> + strncpy(profile->name, name, sizeof(profile->name) - 1);
> memcpy(&profile->params, params, sizeof(*params));
> profile->ap = ap;
No, this still doesn't null terminate, and is a perfect example of why we
should never use strncpy! Use strlcpy instead.
> -----Original Message-----
> From: Zhang, Roy Fan
> Sent: Monday, April 16, 2018 12:03 PM
> To: dev@dpdk.org
> Cc: Dumitrescu, Cristian <cristian.dumitrescu@intel.com>; Singh, Jasvinder
> <jasvinder.singh@intel.com>
> Subject: [PATCH] examples/ip_pipeline: fix buffer not null terminated
>
> Coverity issue: 272572
> Fixes: 719374345cee ("examples/ip_pipeline: add action profile objects")
>
> Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com>
> ---
> examples/ip_pipeline/action.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/examples/ip_pipeline/action.c b/examples/ip_pipeline/action.c
> index 77a04fe19..91011ebe8 100644
> --- a/examples/ip_pipeline/action.c
> +++ b/examples/ip_pipeline/action.c
> @@ -133,7 +133,7 @@ port_in_action_profile_create(const char *name,
> }
>
> /* Node fill in */
> - strncpy(profile->name, name, sizeof(profile->name));
> + strncpy(profile->name, name, sizeof(profile->name) - 1);
> memcpy(&profile->params, params, sizeof(*params));
> profile->ap = ap;
>
> --
> 2.13.6
Acked-by: Cristian.Dumitrescu <cristian.dumitrescu@intel.com>
Applied to next-pipeline tree, thanks!
On Tue, May 08, 2018 at 02:28:25PM +0000, Dumitrescu, Cristian wrote:
>
>
> > -----Original Message-----
> > From: Zhang, Roy Fan
> > Sent: Monday, April 16, 2018 12:03 PM
> > To: dev@dpdk.org
> > Cc: Dumitrescu, Cristian <cristian.dumitrescu@intel.com>; Singh, Jasvinder
> > <jasvinder.singh@intel.com>
> > Subject: [PATCH] examples/ip_pipeline: fix buffer not null terminated
> >
> > Coverity issue: 272572
> > Fixes: 719374345cee ("examples/ip_pipeline: add action profile objects")
> >
> > Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com>
> > ---
> > examples/ip_pipeline/action.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/examples/ip_pipeline/action.c b/examples/ip_pipeline/action.c
> > index 77a04fe19..91011ebe8 100644
> > --- a/examples/ip_pipeline/action.c
> > +++ b/examples/ip_pipeline/action.c
> > @@ -133,7 +133,7 @@ port_in_action_profile_create(const char *name,
> > }
> >
> > /* Node fill in */
> > - strncpy(profile->name, name, sizeof(profile->name));
> > + strncpy(profile->name, name, sizeof(profile->name) - 1);
> > memcpy(&profile->params, params, sizeof(*params));
> > profile->ap = ap;
> >
> > --
> > 2.13.6
>
> Acked-by: Cristian.Dumitrescu <cristian.dumitrescu@intel.com>
>
> Applied to next-pipeline tree, thanks!
This is not a correct fix, and the code is still broken. However, I see
that you have actually applied the correct v2 patch to the tree, so no big
deal. It's probably best to reply to the correct patch confirming it's
applied, though.
/Bruce
> -----Original Message-----
> From: Richardson, Bruce
> Sent: Tuesday, May 8, 2018 8:51 PM
> To: Dumitrescu, Cristian <cristian.dumitrescu@intel.com>
> Cc: Zhang, Roy Fan <roy.fan.zhang@intel.com>; dev@dpdk.org; Singh,
> Jasvinder <jasvinder.singh@intel.com>
> Subject: Re: [dpdk-dev] [PATCH] examples/ip_pipeline: fix buffer not null
> terminated
>
> On Tue, May 08, 2018 at 02:28:25PM +0000, Dumitrescu, Cristian wrote:
> >
> >
> > > -----Original Message-----
> > > From: Zhang, Roy Fan
> > > Sent: Monday, April 16, 2018 12:03 PM
> > > To: dev@dpdk.org
> > > Cc: Dumitrescu, Cristian <cristian.dumitrescu@intel.com>; Singh,
> Jasvinder
> > > <jasvinder.singh@intel.com>
> > > Subject: [PATCH] examples/ip_pipeline: fix buffer not null terminated
> > >
> > > Coverity issue: 272572
> > > Fixes: 719374345cee ("examples/ip_pipeline: add action profile objects")
> > >
> > > Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com>
> > > ---
> > > examples/ip_pipeline/action.c | 2 +-
> > > 1 file changed, 1 insertion(+), 1 deletion(-)
> > >
> > > diff --git a/examples/ip_pipeline/action.c
> b/examples/ip_pipeline/action.c
> > > index 77a04fe19..91011ebe8 100644
> > > --- a/examples/ip_pipeline/action.c
> > > +++ b/examples/ip_pipeline/action.c
> > > @@ -133,7 +133,7 @@ port_in_action_profile_create(const char
> *name,
> > > }
> > >
> > > /* Node fill in */
> > > - strncpy(profile->name, name, sizeof(profile->name));
> > > + strncpy(profile->name, name, sizeof(profile->name) - 1);
> > > memcpy(&profile->params, params, sizeof(*params));
> > > profile->ap = ap;
> > >
> > > --
> > > 2.13.6
> >
> > Acked-by: Cristian.Dumitrescu <cristian.dumitrescu@intel.com>
> >
> > Applied to next-pipeline tree, thanks!
>
> This is not a correct fix, and the code is still broken. However, I see
> that you have actually applied the correct v2 patch to the tree, so no big
> deal. It's probably best to reply to the correct patch confirming it's
> applied, though.
>
> /Bruce
Yes, the right patch (v2) was applied, the wrong email was replied.
@@ -133,7 +133,7 @@ port_in_action_profile_create(const char *name,
}
/* Node fill in */
- strncpy(profile->name, name, sizeof(profile->name));
+ strncpy(profile->name, name, sizeof(profile->name) - 1);
memcpy(&profile->params, params, sizeof(*params));
profile->ap = ap;