devargs: fix leak on hotplug failure
Checks
Commit Message
Caught by ASan, if a secondary process tried to attach a device with an
incorrect driver name, devargs was leaked.
Fixes: 64051bb1f144 ("devargs: unify scratch buffer storage")
Cc: stable@dpdk.org
Signed-off-by: David Marchand <david.marchand@redhat.com>
---
lib/eal/common/eal_common_dev.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
Comments
On Thu, Apr 14, 2022 at 1:28 PM David Marchand
<david.marchand@redhat.com> wrote:
>
> Caught by ASan, if a secondary process tried to attach a device with an
> incorrect driver name, devargs was leaked.
>
> Fixes: 64051bb1f144 ("devargs: unify scratch buffer storage")
> Cc: stable@dpdk.org
>
> Signed-off-by: David Marchand <david.marchand@redhat.com>
Review please?
On Thu, May 12, 2022 at 9:06 AM David Marchand
<david.marchand@redhat.com> wrote:
> On Thu, Apr 14, 2022 at 1:28 PM David Marchand
> <david.marchand@redhat.com> wrote:
> >
> > Caught by ASan, if a secondary process tried to attach a device with an
> > incorrect driver name, devargs was leaked.
> >
> > Fixes: 64051bb1f144 ("devargs: unify scratch buffer storage")
> > Cc: stable@dpdk.org
> >
> > Signed-off-by: David Marchand <david.marchand@redhat.com>
>
> Review please?
No objection, the fix has been around for one month.
Applied.
@@ -180,8 +180,10 @@ local_dev_probe(const char *devargs, struct rte_device **new_dev)
return ret;
err_devarg:
- if (rte_devargs_remove(da) != 0)
+ if (rte_devargs_remove(da) != 0) {
rte_devargs_reset(da);
+ free(da);
+ }
return ret;
}