From 8b115c45ad116030d29bb2b84a268e4083d7548c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20G=C3=B6ttsche?= Date: Mon, 22 Jan 2024 14:54:56 +0100 Subject: [PATCH] checkpolicy: free ebitmap on error MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Christian Göttsche Acked-by: James Carter --- policy_define.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/policy_define.c b/policy_define.c index db7e9d0e..053156df 100644 --- a/policy_define.c +++ b/policy_define.c @@ -2525,6 +2525,8 @@ static int define_te_avtab_helper(int which, avrule_t ** rule) int add = 1, ret = 0; int suppress = 0; + ebitmap_init(&tclasses); + avrule = (avrule_t *) malloc(sizeof(avrule_t)); if (!avrule) { yyerror("memory error"); @@ -2571,7 +2573,6 @@ static int define_te_avtab_helper(int which, avrule_t ** rule) } } - ebitmap_init(&tclasses); ret = read_classes(&tclasses); if (ret) goto out; @@ -2648,8 +2649,6 @@ static int define_te_avtab_helper(int which, avrule_t ** rule) free(id); } - ebitmap_destroy(&tclasses); - avrule->perms = perms; *rule = avrule; @@ -2658,6 +2657,9 @@ static int define_te_avtab_helper(int which, avrule_t ** rule) avrule_destroy(avrule); free(avrule); } + + ebitmap_destroy(&tclasses); + return ret; } -- 2.33.0