diff --git a/cpukit/ChangeLog b/cpukit/ChangeLog index c696696f98..32b8ab0599 100644 --- a/cpukit/ChangeLog +++ b/cpukit/ChangeLog @@ -1,3 +1,8 @@ +2010-01-19 Joel Sherrill + + * libblock/src/ide_part_table.c: Another error path without a + free(sector). + 2010-01-19 Joel Sherrill Coverity Id 28 diff --git a/cpukit/libblock/src/ide_part_table.c b/cpukit/libblock/src/ide_part_table.c index c11660b7b6..f9a942c510 100644 --- a/cpukit/libblock/src/ide_part_table.c +++ b/cpukit/libblock/src/ide_part_table.c @@ -223,7 +223,7 @@ read_extended_partition(uint32_t start, rtems_part_desc_t *ext_part) { int i; dev_t dev; - rtems_sector_data_t *sector; + rtems_sector_data_t *sector = NULL; uint32_t here; uint8_t *data; rtems_part_desc_t *new_part_desc; @@ -244,11 +244,14 @@ read_extended_partition(uint32_t start, rtems_part_desc_t *ext_part) rc = get_sector(dev, here, §or); if (rc != RTEMS_SUCCESSFUL) { + if (sector) + free(sector); return rc; } if (!msdos_signature_check(sector)) { + free(sector); return RTEMS_INTERNAL_ERROR; }