Changeset 4636

Show
Ignore:
Timestamp:
07/21/07 10:44:31 (7 years ago)
Author:
khali
Message:

Fix a memory leak in sensors_read_one_sysfs_chip() when an error occurs.

Location:
lm-sensors/branches/lm-sensors-3.0.0
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • lm-sensors/branches/lm-sensors-3.0.0/CHANGES

    r4628 r4636  
    1616           Delete all remnants of algorithm names 
    1717           Drop all the chip-specific support 
     18           Fix a memory leak on error 
    1819  Makefile: Drop the package and version targets 
    1920  Man page sensors.conf.5: Update the chip statement section 
  • lm-sensors/branches/lm-sensors-3.0.0/lib/sysfs.c

    r4630 r4636  
    236236 
    237237                        if ((bus_attr = sysfs_open_attribute(bus_path))) { 
    238                                 if (sysfs_read_attribute(bus_attr)) 
    239                                         return -SENSORS_ERR_PARSE; 
     238                                if (sysfs_read_attribute(bus_attr)) { 
     239                                        sysfs_close_attribute(bus_attr); 
     240                                        goto exit_free; 
     241                                } 
    240242 
    241243                                if (bus_attr->value 
     
    254256                entry.chip.bus = SENSORS_CHIP_NAME_BUS_PCI; 
    255257        } else 
    256                 return -SENSORS_ERR_PARSE; 
     258                goto exit_free; 
    257259         
    258260        if (sensors_read_dynamic_chip(&entry, dev) < 0) 
    259                 return -SENSORS_ERR_PARSE; 
     261                goto exit_free; 
    260262        sensors_add_proc_chips(&entry); 
    261263 
    262264        return 0; 
     265 
     266exit_free: 
     267        free(entry.chip.prefix); 
     268        free(entry.chip.busname); 
     269        return -SENSORS_ERR_PARSE; 
    263270} 
    264271