[Skiboot] [PATCH v2 11/12] secvar_util.c: add dealloc_secvar helper to match alloc_secvar
Eric Richter
erichte at linux.ibm.com
Mon Jan 20 13:36:59 AEDT 2020
Since there is a constructor function for alloc_secvar, there should be a
matching destructor function for any of its non-toplevel allocations.
This patch introduces dealloc_secvar(), which frees a whole secvar_node
reference including its children allocations. This also updates the
clear_bank_list() helper function to use this destructor.
Signed-off-by: Eric Richter <erichte at linux.ibm.com>
---
libstb/secvar/secvar.h | 1 +
libstb/secvar/secvar_util.c | 10 ++++++++++
2 files changed, 11 insertions(+)
diff --git a/libstb/secvar/secvar.h b/libstb/secvar/secvar.h
index 771ff648..1bc00476 100644
--- a/libstb/secvar/secvar.h
+++ b/libstb/secvar/secvar.h
@@ -45,6 +45,7 @@ extern struct secvar_backend_driver secvar_backend;
void clear_bank_list(struct list_head *bank);
struct secvar_node *alloc_secvar(uint64_t size);
int realloc_secvar(struct secvar_node *node, uint64_t size);
+void dealloc_secvar(struct secvar_node *node);
struct secvar_node *find_secvar(const char *key, uint64_t key_len, struct list_head *bank);
int is_key_empty(const char *key, uint64_t key_len);
int list_length(struct list_head *bank);
diff --git a/libstb/secvar/secvar_util.c b/libstb/secvar/secvar_util.c
index a143d0bc..eb0def29 100644
--- a/libstb/secvar/secvar_util.c
+++ b/libstb/secvar/secvar_util.c
@@ -64,6 +64,16 @@ int realloc_secvar(struct secvar_node *node, uint64_t size)
return 0;
}
+void dealloc_secvar(struct secvar_node *node)
+{
+ if (!node)
+ return;
+
+ if (node->var)
+ free(node->var);
+ free(node);
+}
+
struct secvar_node *find_secvar(const char *key, uint64_t key_len, struct list_head *bank)
{
struct secvar_node *node = NULL;
--
2.21.0
More information about the Skiboot
mailing list