diff options
author | Alan Coopersmith <alan.coopersmith@oracle.com> | 2012-02-08 22:08:08 -0800 |
---|---|---|
committer | Alan Coopersmith <alan.coopersmith@oracle.com> | 2012-02-08 22:13:07 -0800 |
commit | 573b25ecd34dd69ee14c58f752bffdb5709654b9 (patch) | |
tree | c1715ccb4465390be24d263ebc0c9305131b1c0f | |
parent | ed6c6157bc94283ce0a8526eeff668094cf3992d (diff) | |
download | libpciaccess-573b25ecd34dd69ee14c58f752bffdb5709654b9.tar.gz libpciaccess-573b25ecd34dd69ee14c58f752bffdb5709654b9.tar.bz2 libpciaccess-573b25ecd34dd69ee14c58f752bffdb5709654b9.zip |
Close pci.ids file when bailing out because realloc failed
Error: File Leak
Leaked File f
at line 272 of src/common_device_name.c in function 'populate_vendor'.
f initialized at line 204 with fopen("/usr/share/hwdata/pci.ids", "r").
[ This bug was found by the Parfait 0.5.0 bug checking tool.
For more information see http://labs.oracle.com/projects/parfait/ ]
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
-rw-r--r-- | src/common_device_name.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/common_device_name.c b/src/common_device_name.c index 8e8a752..8feaf69 100644 --- a/src/common_device_name.c +++ b/src/common_device_name.c @@ -269,7 +269,7 @@ populate_vendor( struct pci_id_leaf * vend, int fill_device_data ) d = realloc( vend->devices, (vend->num_devices + 1) * sizeof( struct pci_device_leaf ) ); if ( d == NULL ) { - return; + goto cleanup; } last_dev = & d[ vend->num_devices - 1 ]; @@ -302,6 +302,7 @@ populate_vendor( struct pci_id_leaf * vend, int fill_device_data ) } } + cleanup: pci_id_file_close( f ); } |