From 6dd1c3683949892d1d7d067efc575f0aa33ea6b3 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Tue, 28 Nov 2017 12:37:51 +0100 Subject: [PATCH] cryptsetup-generator: add helper function and use hashmap_free_with_destructor --- src/cryptsetup/cryptsetup-generator.c | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/src/cryptsetup/cryptsetup-generator.c b/src/cryptsetup/cryptsetup-generator.c index 3f7222a..d0be412 100644 --- a/src/cryptsetup/cryptsetup-generator.c +++ b/src/cryptsetup/cryptsetup-generator.c @@ -219,18 +219,12 @@ static int create_disk( return 0; } -static void free_arg_disks(void) { - crypto_device *d; - - while ((d = hashmap_steal_first(arg_disks))) { - free(d->uuid); - free(d->keyfile); - free(d->name); - free(d->options); - free(d); - } - - hashmap_free(arg_disks); +static void crypt_device_free(crypto_device *d) { + free(d->uuid); + free(d->keyfile); + free(d->name); + free(d->options); + free(d); } static crypto_device *get_crypto_device(const char *uuid) { @@ -492,7 +486,7 @@ int main(int argc, char *argv[]) { r = 0; finish: - free_arg_disks(); + hashmap_free_with_destructor(arg_disks, crypt_device_free); free(arg_default_options); free(arg_default_keyfile); -- 2.7.4