diff options
author | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2018-02-05 09:54:57 +0100 |
---|---|---|
committer | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2018-02-05 09:55:03 +0100 |
commit | bd944e6e1854df9aa6002fed015226d6298029b6 (patch) | |
tree | 2c68e5fe0c4b8ef166f4e09559ca0faa831bd8b5 /src | |
parent | test: add a simple smoke test for string_hashsum() (diff) | |
download | systemd-bd944e6e1854df9aa6002fed015226d6298029b6.tar.xz systemd-bd944e6e1854df9aa6002fed015226d6298029b6.zip |
gcrypt-util: fix memleak
Diffstat (limited to 'src')
-rw-r--r-- | src/basic/gcrypt-util.c | 2 | ||||
-rw-r--r-- | src/basic/gcrypt-util.h | 6 |
2 files changed, 7 insertions, 1 deletions
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 <http://www.gnu.org/licenses/>. ***/ +#pragma once + #include <errno.h> #include <stdbool.h> #include <stddef.h> @@ -27,8 +29,12 @@ #if HAVE_GCRYPT #include <gcrypt.h> +#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) { |