From fa0b30b15ea77ab444628a7e9f139a85ee915fde Mon Sep 17 00:00:00 2001 From: Patrick Ohly Date: Thu, 13 Aug 2015 18:21:52 +0200 Subject: [PATCH] add_dir_hash: fix DIR leak in case of failure When bailing out of the function due to EVP_DigestUpdate() failing, the DIR resources allocated with opendir() were not freed. Signed-off-by: Patrick Ohly --- src/libimaevm.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/libimaevm.c b/src/libimaevm.c index 575f053..47be27d 100644 --- a/src/libimaevm.c +++ b/src/libimaevm.c @@ -214,6 +214,7 @@ static int add_dir_hash(const char *file, EVP_MD_CTX *ctx) DIR *dir; unsigned long long ino, off; unsigned int type; + int result = 0; dir = opendir(file); if (!dir) { @@ -233,13 +234,14 @@ static int add_dir_hash(const char *file, EVP_MD_CTX *ctx) err |= EVP_DigestUpdate(ctx, &type, sizeof(type)); if (!err) { log_err("EVP_DigestUpdate() failed\n"); - return 1; + result = 1; + break; } } closedir(dir); - return 0; + return result; } static int add_link_hash(const char *path, EVP_MD_CTX *ctx)