]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
libgcrypt: Fix a memory leak
authorVladimir Serbinenko <phcoder@gmail.com>
Mon, 7 Jul 2025 14:52:20 +0000 (14:52 +0000)
committerDaniel Kiper <daniel.kiper@oracle.com>
Fri, 11 Jul 2025 21:12:51 +0000 (23:12 +0200)
Fixes: CID 468917
Signed-off-by: Vladimir Serbinenko <phcoder@gmail.com>
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
grub-core/lib/libgcrypt-patches/08_sexp_leak.patch [new file with mode: 0644]

diff --git a/grub-core/lib/libgcrypt-patches/08_sexp_leak.patch b/grub-core/lib/libgcrypt-patches/08_sexp_leak.patch
new file mode 100644 (file)
index 0000000..eefd031
--- /dev/null
@@ -0,0 +1,21 @@
+sexp: Fix a memory leak
+
+Fixes: CID 468917
+
+Signed-off-by: Vladimir Serbinenko <phcoder@gmail.com>
+
+diff -ur ../libgcrypt-1.11.0/src/sexp.c grub-core/lib/libgcrypt/src/sexp.c
+--- a/grub-core/lib/libgcrypt-grub/src/sexp.c  2024-03-28 10:07:27.000000000 +0000
++++ b/grub-core/lib/libgcrypt-grub/src/sexp.c  2025-07-02 17:10:32.714864459 +0000
+@@ -2725,8 +2725,10 @@
+   length = 0;
+   for (s=string; *s; s +=2 )
+     {
+-      if (!hexdigitp (s) || !hexdigitp (s+1))
++      if (!hexdigitp (s) || !hexdigitp (s+1)) {
++      free (buffer);
+         return NULL;           /* Invalid hex digits. */
++      }
+       ((unsigned char*)buffer)[length++] = xtoi_2 (s);
+     }
+   *r_length = length;