[PATCH 3/5] nvdisk.c: Fix Resource leak (CID #1439297)

Joel Sherrill joel at rtems.org
Mon Mar 15 20:28:28 UTC 2021


On Mon, Mar 15, 2021, 3:10 PM Gedare Bloom <gedare at rtems.org> wrote:

> On Fri, Mar 12, 2021 at 8:18 AM Ryan Long <ryan.long at oarcorp.com> wrote:
> >
> > CID 1439297: Resource leak in rtems_nvdisk_initialize().
> >
> > Closes #4298
> > ---
> >  cpukit/libblock/src/nvdisk.c | 8 +++++++-
> >  1 file changed, 7 insertions(+), 1 deletion(-)
> >
> > diff --git a/cpukit/libblock/src/nvdisk.c b/cpukit/libblock/src/nvdisk.c
> > index a7f4167..d742baf 100644
> > --- a/cpukit/libblock/src/nvdisk.c
> > +++ b/cpukit/libblock/src/nvdisk.c
> > @@ -766,8 +766,10 @@ rtems_nvdisk_initialize (rtems_device_major_number
> major RTEMS_UNUSED,
> >      nvd->info_level   = c->info_level;
> >
> >      nvd->devices = calloc (c->device_count, sizeof
> (rtems_nvdisk_device_ctl));
> > -    if (!nvd->devices)
> > +    if (!nvd->devices) {
> > +      free(nvd);
> >        return RTEMS_NO_MEMORY;
> > +    }
> >
> >      for (device = 0; device < c->device_count; device++)
> >      {
> > @@ -790,6 +792,8 @@ rtems_nvdisk_initialize (rtems_device_major_number
> major RTEMS_UNUSED,
> >                               rtems_nvdisk_ioctl, nvd);
> >      if (sc != RTEMS_SUCCESSFUL)
> >      {
> > +      free(nvd->devices);
> > +      free(nvd);
> >        rtems_nvdisk_error ("disk create phy failed");
> >        return sc;
> >      }
> > @@ -797,5 +801,7 @@ rtems_nvdisk_initialize (rtems_device_major_number
> major RTEMS_UNUSED,
> >      rtems_mutex_init (&nvd->lock, "NV Disk");
> >    }
> >
> > +  free(nvd->devices);
> > +  free(nvd);
>
> Does the rtems_blkdev_create() link the nvd? (I think the answer is
> yes.) Then, this is not correct.
>

I think this is my suggestion so what do you think should happen on this
case?

>
> >    return RTEMS_SUCCESSFUL;
> >  }
> > --
> > 1.8.3.1
> >
> > _______________________________________________
> > devel mailing list
> > devel at rtems.org
> > http://lists.rtems.org/mailman/listinfo/devel
> _______________________________________________
> devel mailing list
> devel at rtems.org
> http://lists.rtems.org/mailman/listinfo/devel
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/devel/attachments/20210315/a241fbc4/attachment.html>


More information about the devel mailing list