X-Git-Url: http://mj.ucw.cz/gitweb/?a=blobdiff_plain;f=lib%2Fnames-parse.c;h=f3b7da9ee1897c4bfc950c50d2de9b0777038c8b;hb=c0d9545ca51c70b7d9fb80d96085b5924ceccadb;hp=71b622f84cb841d5a85274a9ecf17dbbea6e18a5;hpb=c6b83ae3aece7a098858701c4ae3b36adc1c1378;p=pciutils.git diff --git a/lib/names-parse.c b/lib/names-parse.c index 71b622f..f3b7da9 100644 --- a/lib/names-parse.c +++ b/lib/names-parse.c @@ -30,7 +30,7 @@ static pci_file pci_open(struct pci_access *a) if (result) return result; len = strlen(a->id_file_name); - if (len >= 3 && memcmp(a->id_file_name + len - 3, ".gz", 3) != 0) + if (len < 3 || memcmp(a->id_file_name + len - 3, ".gz", 3) != 0) return result; new_name = malloc(len - 2); memcpy(new_name, a->id_file_name, len - 3); @@ -233,7 +233,17 @@ pci_load_name_list(struct pci_access *a) return 1; } -void pci_set_name_list_path(struct pci_access *a, char *name, int to_be_freed) +void +pci_free_name_list(struct pci_access *a) +{ + pci_id_cache_flush(a); + pci_id_hash_free(a); + pci_id_hwdb_free(a); + a->id_load_failed = 0; +} + +void +pci_set_name_list_path(struct pci_access *a, char *name, int to_be_freed) { if (a->free_id_name) free(a->id_file_name);