summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAlan Coopersmith <alan.coopersmith@oracle.com>2012-02-08 22:08:08 -0800
committerAlan Coopersmith <alan.coopersmith@oracle.com>2012-02-08 22:13:07 -0800
commit573b25ecd34dd69ee14c58f752bffdb5709654b9 (patch)
treec1715ccb4465390be24d263ebc0c9305131b1c0f /src
parented6c6157bc94283ce0a8526eeff668094cf3992d (diff)
downloadlibpciaccess-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>
Diffstat (limited to 'src')
-rw-r--r--src/common_device_name.c3
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 );
}