X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fudev%2Fudevadm-hwdb.c;h=d0cce84859aa4a38c28d2a89a03230a26d4fa6f2;hb=53461b74df0576ec091275d1a5dbee00611df1ee;hp=4136b17be5a233faeef8dc24388270dfdf92acb3;hpb=06639c0940ad9a81f085cbaff05bbf3f69a7f88f;p=elogind.git diff --git a/src/udev/udevadm-hwdb.c b/src/udev/udevadm-hwdb.c index 4136b17be..d0cce8485 100644 --- a/src/udev/udevadm-hwdb.c +++ b/src/udev/udevadm-hwdb.c @@ -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); } @@ -646,7 +648,7 @@ static int adm_hwdb(struct udev *udev, int argc, char *argv[]) { udev_list_entry_foreach(entry, udev_hwdb_get_properties_list_entry(hwdb, test, 0)) printf("%s=%s\n", udev_list_entry_get_name(entry), udev_list_entry_get_value(entry)); - hwdb = udev_hwdb_unref(hwdb); + udev_hwdb_unref(hwdb); } } out: