Changeset 4635

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

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

Location:
lm-sensors/trunk
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • lm-sensors/trunk/CHANGES

    r4624 r4635  
    33 
    44SVN HEAD 
     5  Library: Fix a memory leak on error 
    56  Module i2c-piix4: Add ATI SB700 support (2.6 backport) 
     7 
    68 
    792.10.4 (20070716) 
  • lm-sensors/trunk/lib/sysfs.c

    r4337 r4635  
    2222 
    2323#include <string.h> 
     24#include <stdlib.h> 
    2425#include <limits.h> 
    2526#include <errno.h> 
     
    8485 
    8586                        if ((bus_attr = sysfs_open_attribute(bus_path))) { 
    86                                 if (sysfs_read_attribute(bus_attr)) 
    87                                         return -SENSORS_ERR_PARSE; 
     87                                if (sysfs_read_attribute(bus_attr)) { 
     88                                        sysfs_close_attribute(bus_attr); 
     89                                        goto exit_free; 
     90                                } 
    8891 
    8992                                if (bus_attr->value 
     
    102105                entry.name.bus = SENSORS_CHIP_NAME_BUS_PCI; 
    103106        } else 
    104                 return -SENSORS_ERR_PARSE; 
     107                goto exit_free; 
    105108 
    106109        sensors_add_proc_chips(&entry); 
    107110 
    108111        return 0; 
     112 
     113exit_free: 
     114        free(entry.name.prefix); 
     115        free(entry.name.busname); 
     116        return -SENSORS_ERR_PARSE; 
    109117} 
    110118