mirror of
https://github.com/morgan9e/systemd
synced 2026-04-15 17:06:39 +09:00
udev: fix two trivial memleaks in error path
Based-on-a-patch-by: Ian Stakenvicius <axs@gentoo.org>
This commit is contained in:
@@ -442,19 +442,19 @@ int main(int argc, char **argv)
|
||||
|
||||
if (debug)
|
||||
fprintf(stderr, "ID %s: not in database\n", argv[i]);
|
||||
him = malloc(sizeof (struct _mate));
|
||||
him = new(struct _mate, 1);
|
||||
if (!him) {
|
||||
ret = ENOMEM;
|
||||
goto out;
|
||||
}
|
||||
|
||||
him->name = malloc(strlen(argv[i]) + 1);
|
||||
him->name = strdup(argv[i]);
|
||||
if (!him->name) {
|
||||
free(him);
|
||||
ret = ENOMEM;
|
||||
goto out;
|
||||
}
|
||||
|
||||
strcpy(him->name, argv[i]);
|
||||
him->state = STATE_NONE;
|
||||
udev_list_node_append(&him->node, &bunch);
|
||||
} else {
|
||||
|
||||
@@ -303,8 +303,10 @@ 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)
|
||||
if (child_off < 0) {
|
||||
free(children);
|
||||
return child_off;
|
||||
}
|
||||
children[i].c = node->children[i].c;
|
||||
children[i].child_off = htole64(child_off);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user