From: Yunlei Ding Date: Tue, 11 Mar 2014 10:19:23 +0000 (+0000) Subject: block-vvfat: fix resource leaks in read_directory() X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;ds=inline;p=qemu-xen-4.6-testing.git block-vvfat: fix resource leaks in read_directory() Signed-off-by: Yunlei Ding Coverity-IDs: 1055920 1055921 Reviewed-by: Andrew Cooper --- 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);