From b9a4d13a300665098f04bf5108929ea54668b1bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20G=C3=B6ttsche?= Date: Wed, 13 Apr 2022 17:56:32 +0200 Subject: [PATCH] libselinux: free memory on selabel_open(3) failure MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit If selabel_open(3) fails, e.g. when a specfile has the wrong file permissions, free the memory allocated for digests. Fixes: e40bbea9 ("libselinux: Add selabel_digest function") Acked-by: James Carter Signed-off-by: Christian Göttsche --- src/label.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/label.c b/src/label.c index a03192e5..586e5e5e 100644 --- a/src/label.c +++ b/src/label.c @@ -226,6 +226,8 @@ struct selabel_handle *selabel_open(unsigned int backend, rec->digest = selabel_is_digest_set(opts, nopts, rec->digest); if ((*initfuncs[backend])(rec, opts, nopts)) { + if (rec->digest) + selabel_digest_fini(rec->digest); free(rec->spec_file); free(rec); rec = NULL; -- 2.27.0