summaryrefslogtreecommitdiff
path: root/src/hwdb/hwdb.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/hwdb/hwdb.c')
-rw-r--r--src/hwdb/hwdb.c40
1 files changed, 20 insertions, 20 deletions
diff --git a/src/hwdb/hwdb.c b/src/hwdb/hwdb.c
index fba0c309c5..0fbde28d10 100644
--- a/src/hwdb/hwdb.c
+++ b/src/hwdb/hwdb.c
@@ -214,7 +214,7 @@ static int trie_insert(struct trie *trie, struct trie_node *node, const char *se
const char *key, const char *value,
const char *filename, uint16_t file_priority, uint32_t line_number) {
size_t i = 0;
- int err = 0;
+ int r = 0;
for (;;) {
size_t p;
@@ -255,9 +255,9 @@ static int trie_insert(struct trie *trie, struct trie_node *node, const char *se
node->children_count = 0;
node->values = NULL;
node->values_count = 0;
- err = node_add_child(trie, node, new_child, c);
- if (err < 0)
- return err;
+ r = node_add_child(trie, node, new_child, c);
+ if (r < 0)
+ return r;
new_child = NULL; /* avoid cleanup */
break;
@@ -284,10 +284,10 @@ static int trie_insert(struct trie *trie, struct trie_node *node, const char *se
}
child->prefix_off = off;
- err = node_add_child(trie, node, child, c);
- if (err < 0) {
+ r = node_add_child(trie, node, child, c);
+ if (r < 0) {
free(child);
- return err;
+ return r;
}
return trie_node_add_value(trie, child, key, value, filename, file_priority, line_number);
@@ -329,11 +329,11 @@ static int64_t trie_store_nodes(struct trie_f *trie, struct trie_node *node) {
.children_count = node->children_count,
.values_count = htole64(node->values_count),
};
- struct trie_child_entry_f *children = NULL;
+ _cleanup_free_ struct trie_child_entry_f *children = NULL;
int64_t node_off;
if (node->children_count) {
- children = new0(struct trie_child_entry_f, node->children_count);
+ children = new(struct trie_child_entry_f, node->children_count);
if (!children)
return -ENOMEM;
}
@@ -343,12 +343,13 @@ static int64_t trie_store_nodes(struct trie_f *trie, struct trie_node *node) {
int64_t child_off;
child_off = trie_store_nodes(trie, node->children[i].child);
- if (child_off < 0) {
- free(children);
+ if (child_off < 0)
return child_off;
- }
- children[i].c = node->children[i].c;
- children[i].child_off = htole64(child_off);
+
+ children[i] = (struct trie_child_entry_f) {
+ .c = node->children[i].c,
+ .child_off = htole64(child_off),
+ };
}
/* write node */
@@ -360,7 +361,6 @@ static int64_t trie_store_nodes(struct trie_f *trie, struct trie_node *node) {
if (node->children_count) {
fwrite(children, sizeof(struct trie_child_entry_f), node->children_count, trie->f);
trie->children_count += node->children_count;
- free(children);
}
/* append values array */
@@ -374,8 +374,8 @@ static int64_t trie_store_nodes(struct trie_f *trie, struct trie_node *node) {
};
fwrite(&v, sizeof(struct trie_value_entry2_f), 1, trie->f);
- trie->values_count++;
}
+ trie->values_count += node->values_count;
return node_off;
}
@@ -614,7 +614,8 @@ static int hwdb_query(int argc, char *argv[], void *userdata) {
static int hwdb_update(int argc, char *argv[], void *userdata) {
_cleanup_free_ char *hwdb_bin = NULL;
_cleanup_(trie_freep) struct trie *trie = NULL;
- char **files, **f;
+ _cleanup_strv_free_ char **files = NULL;
+ char **f;
uint16_t file_priority = 1;
int r;
@@ -636,13 +637,12 @@ static int hwdb_update(int argc, char *argv[], void *userdata) {
r = conf_files_list_strv(&files, ".hwdb", arg_root, conf_file_dirs);
if (r < 0)
- return log_error_errno(r, "failed to enumerate hwdb files: %m");
+ return log_error_errno(r, "Failed to enumerate hwdb files: %m");
STRV_FOREACH(f, files) {
- log_debug("reading file '%s'", *f);
+ log_debug("Reading file \"%s\"", *f);
import_file(trie, *f, file_priority++);
}
- strv_free(files);
strbuf_complete(trie->strings);