<div dir="auto"><div><br><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Mar 15, 2021, 3:10 PM Gedare Bloom <<a href="mailto:gedare@rtems.org">gedare@rtems.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On Fri, Mar 12, 2021 at 8:18 AM Ryan Long <<a href="mailto:ryan.long@oarcorp.com" target="_blank" rel="noreferrer">ryan.long@oarcorp.com</a>> wrote:<br>
><br>
> CID 1439297: Resource leak in rtems_nvdisk_initialize().<br>
><br>
> Closes #4298<br>
> ---<br>
>  cpukit/libblock/src/nvdisk.c | 8 +++++++-<br>
>  1 file changed, 7 insertions(+), 1 deletion(-)<br>
><br>
> diff --git a/cpukit/libblock/src/nvdisk.c b/cpukit/libblock/src/nvdisk.c<br>
> index a7f4167..d742baf 100644<br>
> --- a/cpukit/libblock/src/nvdisk.c<br>
> +++ b/cpukit/libblock/src/nvdisk.c<br>
> @@ -766,8 +766,10 @@ rtems_nvdisk_initialize (rtems_device_major_number major RTEMS_UNUSED,<br>
>      nvd->info_level   = c->info_level;<br>
><br>
>      nvd->devices = calloc (c->device_count, sizeof (rtems_nvdisk_device_ctl));<br>
> -    if (!nvd->devices)<br>
> +    if (!nvd->devices) {<br>
> +      free(nvd);<br>
>        return RTEMS_NO_MEMORY;<br>
> +    }<br>
><br>
>      for (device = 0; device < c->device_count; device++)<br>
>      {<br>
> @@ -790,6 +792,8 @@ rtems_nvdisk_initialize (rtems_device_major_number major RTEMS_UNUSED,<br>
>                               rtems_nvdisk_ioctl, nvd);<br>
>      if (sc != RTEMS_SUCCESSFUL)<br>
>      {<br>
> +      free(nvd->devices);<br>
> +      free(nvd);<br>
>        rtems_nvdisk_error ("disk create phy failed");<br>
>        return sc;<br>
>      }<br>
> @@ -797,5 +801,7 @@ rtems_nvdisk_initialize (rtems_device_major_number major RTEMS_UNUSED,<br>
>      rtems_mutex_init (&nvd->lock, "NV Disk");<br>
>    }<br>
><br>
> +  free(nvd->devices);<br>
> +  free(nvd);<br>
<br>
Does the rtems_blkdev_create() link the nvd? (I think the answer is<br>
yes.) Then, this is not correct.<br></blockquote></div></div><div dir="auto"><br></div><div dir="auto">I think this is my suggestion so what do you think should happen on this case?</div><div dir="auto"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
>    return RTEMS_SUCCESSFUL;<br>
>  }<br>
> --<br>
> 1.8.3.1<br>
><br>
> _______________________________________________<br>
> devel mailing list<br>
> <a href="mailto:devel@rtems.org" target="_blank" rel="noreferrer">devel@rtems.org</a><br>
> <a href="http://lists.rtems.org/mailman/listinfo/devel" rel="noreferrer noreferrer" target="_blank">http://lists.rtems.org/mailman/listinfo/devel</a><br>
_______________________________________________<br>
devel mailing list<br>
<a href="mailto:devel@rtems.org" target="_blank" rel="noreferrer">devel@rtems.org</a><br>
<a href="http://lists.rtems.org/mailman/listinfo/devel" rel="noreferrer noreferrer" target="_blank">http://lists.rtems.org/mailman/listinfo/devel</a><br>
</blockquote></div></div></div>