diff options
author | Pascal Terjan <pterjan@mandriva.org> | 2009-09-03 16:54:20 +0000 |
---|---|---|
committer | Pascal Terjan <pterjan@mandriva.org> | 2009-09-03 16:54:20 +0000 |
commit | f8229bd77f038346e9ef18d84d44c49b16916abb (patch) | |
tree | 02ac9ca8272dd95a0c6810bb4cb3d54002d73639 | |
parent | 0b31cfc8bc149efac2983e7016b8b1720b174926 (diff) | |
download | ldetect-f8229bd77f038346e9ef18d84d44c49b16916abb.tar ldetect-f8229bd77f038346e9ef18d84d44c49b16916abb.tar.gz ldetect-f8229bd77f038346e9ef18d84d44c49b16916abb.tar.bz2 ldetect-f8229bd77f038346e9ef18d84d44c49b16916abb.tar.xz ldetect-f8229bd77f038346e9ef18d84d44c49b16916abb.zip |
fix freed memory usage in criteria_from_dmidecode and entries_matching_criteria, and some other warnings in dmi.c
-rw-r--r-- | NEWS | 2 | ||||
-rw-r--r-- | dmi.c | 14 |
2 files changed, 8 insertions, 8 deletions
@@ -1,5 +1,7 @@ - do not display any warning when driver field is empty in /proc/bus/usb/devices (#53412) +- fix freed memory usage in criteria_from_dmidecode and entries_matching_criteria +- fix const warnings in dmi.c Version 0.8.4 - 25 June 2009, Pascal Terjan @@ -79,7 +79,7 @@ static char *get_after_colon(char *s) { } else return NULL; } -static struct category *lookup_category(const char *cat_name) { +static const struct category *lookup_category(const char *cat_name) { int i; for (i = 0; i < nb_categories; i++) if (streq(categories[i].cat_name, cat_name)) @@ -87,7 +87,7 @@ static struct category *lookup_category(const char *cat_name) { return NULL; } -static int lookup_field(struct category *category, const char *field_name) { +static int lookup_field(const struct category *category, const char *field_name) { unsigned int i; for (i = 0; i < category->nb_fields; i++) if (streq(category->fields[i], field_name)) @@ -108,9 +108,7 @@ static struct criteria criteria_from_dmidecode(void) { FILE *f; char buf[BUF_SIZE]; - struct criteria r; - - r.nb = 0; + struct criteria r = {0, NULL}; if (!(f = dmidecode_file ? fopen(dmidecode_file, "r") : popen("dmidecode", "r"))) { perror("dmidecode"); @@ -119,7 +117,7 @@ static struct criteria criteria_from_dmidecode(void) { r.criteria = malloc(sizeof(*r.criteria) * MAX_DEVICES); - struct category *category = NULL; + const struct category *category = NULL; /* dmidecode output is less indented as of 2.7 */ int tab_level = 1; @@ -155,7 +153,7 @@ static struct criteria criteria_from_dmidecode(void) { r.nb = 0; return r; } - realloc(r.criteria, sizeof(*r.criteria) * r.nb); + r.criteria = realloc(r.criteria, sizeof(*r.criteria) * r.nb); return r; } @@ -263,7 +261,7 @@ static struct dmi_entries entries_matching_criteria(struct criteria criteria) { foreach_indent(0, ifree(constraints[i])); fh_close(&f); - realloc(r.entries, sizeof(*r.entries) * r.nb); + r.entries = realloc(r.entries, sizeof(*r.entries) * r.nb); return r; } |