From 7c926367b91bb507ee9ebe86b28974b250ffc890 Mon Sep 17 00:00:00 2001 From: szaka Date: Sun, 15 Jul 2007 16:44:42 +0000 Subject: [PATCH] ntfs_mft_record_format(): cleanup --- libntfs-3g/mft.c | 29 +++++++++++------------------ 1 file changed, 11 insertions(+), 18 deletions(-) diff --git a/libntfs-3g/mft.c b/libntfs-3g/mft.c index 900a284b..db6cf6be 100644 --- a/libntfs-3g/mft.c +++ b/libntfs-3g/mft.c @@ -371,29 +371,22 @@ int ntfs_mft_record_layout(const ntfs_volume *vol, const MFT_REF mref, int ntfs_mft_record_format(const ntfs_volume *vol, const MFT_REF mref) { MFT_RECORD *m; - int err; + int ret = -1; - if (!vol || !vol->mft_na) { - errno = EINVAL; - return -1; - } m = ntfs_calloc(vol->mft_record_size); if (!m) return -1; - if (ntfs_mft_record_layout(vol, mref, m)) { - err = errno; - free(m); - errno = err; - return -1; - } - if (ntfs_mft_record_write(vol, mref, m)) { - err = errno; - free(m); - errno = err; - return -1; - } + + if (ntfs_mft_record_layout(vol, mref, m)) + goto free_m; + + if (ntfs_mft_record_write(vol, mref, m)) + goto free_m; + + ret = 0; +free_m: free(m); - return 0; + return ret; } static const char *es = " Leaving inconsistent metadata. Run chkdsk.";