From 29f2c22c68b940005f6257d48869335e75669976 Mon Sep 17 00:00:00 2001 From: resver Date: Mon, 20 Feb 2012 06:33:08 +0000 Subject: [PATCH] Fixed double close on failure to convert volume label to UTF-16. git-svn-id: http://exfat.googlecode.com/svn/trunk@263 60bc1c72-a15a-11de-b98f-4500b42dc123 --- mkfs/main.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/mkfs/main.c b/mkfs/main.c index 993ebeb..9ed99cd 100644 --- a/mkfs/main.c +++ b/mkfs/main.c @@ -243,7 +243,7 @@ static int get_spc_bits(int user_defined, off_t volume_size) return 8; /* 128 KB */ } -static int set_volume_label(int fd, const char* volume_label) +static int set_volume_label(const char* volume_label) { le16_t tmp[EXFAT_ENAME_MAX + 1]; @@ -253,10 +253,7 @@ static int set_volume_label(int fd, const char* volume_label) memset(tmp, 0, sizeof(tmp)); if (utf8_to_utf16(tmp, volume_label, EXFAT_ENAME_MAX, strlen(volume_label)) != 0) - { - exfat_close(fd); return 1; - } memcpy(label_entry.name, tmp, EXFAT_ENAME_MAX * sizeof(le16_t)); label_entry.length = utf16_length(tmp); label_entry.type |= EXFAT_ENTRY_VALID; @@ -294,7 +291,7 @@ static int mkfs(const char* spec, int sector_bits, int spc_bits, } spc_bits = get_spc_bits(spc_bits, volume_size); - if (set_volume_label(fd, volume_label) != 0) + if (set_volume_label(volume_label) != 0) { exfat_close(fd); return 1; -- 2.11.0