Blob Blame History Raw
From ee25c1be953bf385caf23f96384a9834c1f1c250 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Tue, 12 Jul 2022 18:10:30 +0100
Subject: [PATCH] luks: Avoid memory leak on error path

Found by Coverity:

  Error: CPPCHECK_WARNING (CWE-401): [#def65] [important]
  nbdkit-1.30.7/filters/luks/luks-encryption.c:707: error[memleak]: Memory leak: h
  #  705|     if (memcmp (h->phdr.magic, expected_magic, LUKS_MAGIC_LEN) != 0) {
  #  706|       nbdkit_error ("this disk does not contain a LUKS header");
  #  707|->     return NULL;
  #  708|     }
  #  709|     h->phdr.version = be16toh (h->phdr.version);

Fixes: commit 468919dce6c5eb57503eacac0f67e5dd87c58e6c
(cherry picked from commit a345cff137763f105f07bb8942c1bbefd0959cff)
---
 filters/luks/luks-encryption.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/filters/luks/luks-encryption.c b/filters/luks/luks-encryption.c
index 06435b27..207a4e46 100644
--- a/filters/luks/luks-encryption.c
+++ b/filters/luks/luks-encryption.c
@@ -710,6 +710,7 @@ load_header (nbdkit_next *next, const char *passphrase)
 
   if (memcmp (h->phdr.magic, expected_magic, LUKS_MAGIC_LEN) != 0) {
     nbdkit_error ("this disk does not contain a LUKS header");
+    free (h);
     return NULL;
   }
   h->phdr.version = be16toh (h->phdr.version);
-- 
2.31.1