From bd944e6e1854df9aa6002fed015226d6298029b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Mon, 5 Feb 2018 09:54:57 +0100 Subject: [PATCH] gcrypt-util: fix memleak --- src/basic/gcrypt-util.c | 2 +- src/basic/gcrypt-util.h | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/basic/gcrypt-util.c b/src/basic/gcrypt-util.c index 1bfb776725..34d0d399b7 100644 --- a/src/basic/gcrypt-util.c +++ b/src/basic/gcrypt-util.c @@ -42,7 +42,7 @@ void initialize_libgcrypt(bool secmem) { } int string_hashsum(const char *s, size_t len, int md_algorithm, char **out) { - gcry_md_hd_t md = NULL; + _cleanup_(gcry_md_closep) gcry_md_hd_t md = NULL; size_t hash_size; void *hash; char *enc; diff --git a/src/basic/gcrypt-util.h b/src/basic/gcrypt-util.h index 69faf08e56..714cae673b 100644 --- a/src/basic/gcrypt-util.h +++ b/src/basic/gcrypt-util.h @@ -20,6 +20,8 @@ along with systemd; If not, see . ***/ +#pragma once + #include #include #include @@ -27,8 +29,12 @@ #if HAVE_GCRYPT #include +#include "macro.h" + void initialize_libgcrypt(bool secmem); int string_hashsum(const char *s, size_t len, int md_algorithm, char **out); + +DEFINE_TRIVIAL_CLEANUP_FUNC(gcry_md_hd_t, gcry_md_close); #endif static inline int string_hashsum_sha224(const char *s, size_t len, char **out) {