From bc00cad75d8bcc3ba696992bec219c21db8406aa Mon Sep 17 00:00:00 2001 From: Yunlei Ding Date: Tue, 11 Mar 2014 10:19:23 +0000 Subject: [PATCH] block-vvfat: fix resource leaks in read_directory() Signed-off-by: Yunlei Ding Coverity-IDs: 1055920 1055921 Reviewed-by: Andrew Cooper --- block-vvfat.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/block-vvfat.c b/block-vvfat.c index 6cd57a2a6..ff5c8bf57 100644 --- a/block-vvfat.c +++ b/block-vvfat.c @@ -760,6 +760,7 @@ static int read_directory(BDRVVVFATState* s, int mapping_index) if (st.st_size > 0x7fffffff) { fprintf(stderr, "File %s is larger than 2GB\n", buffer); free(buffer); + closedir(dir); return -2; } direntry->size=cpu_to_le32(S_ISDIR(st.st_mode)?0:st.st_size); @@ -787,6 +788,8 @@ static int read_directory(BDRVVVFATState* s, int mapping_index) s->current_mapping->read_only = (st.st_mode & (S_IWUSR | S_IWGRP | S_IWOTH)) == 0; } + else + qemu_free(buffer); } closedir(dir); -- 2.39.5