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); return RTEMS_SUCCESSFUL; } -- 1.8.3.1 _______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel