OSDN Git Service

Close pci.ids file when bailing out because realloc failed
authorAlan Coopersmith <alan.coopersmith@oracle.com>
Thu, 9 Feb 2012 06:08:08 +0000 (22:08 -0800)
committerAlan Coopersmith <alan.coopersmith@oracle.com>
Thu, 9 Feb 2012 06:13:07 +0000 (22:13 -0800)
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>
src/common_device_name.c

index 8e8a752..8feaf69 100644 (file)
@@ -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 );
 }