From b0aa6b59e1f91b4170652364d663d22caf889ac3 Mon Sep 17 00:00:00 2001 From: antonkukoba <akukoba@adfsolutions.com> Date: Thu, 26 Dec 2013 15:04:26 +0200 Subject: [PATCH] Fixed critical section leak in TSK_FS_INFO --- tsk/fs/ntfs.c | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/tsk/fs/ntfs.c b/tsk/fs/ntfs.c index 237189f3b..3fe3cb87e 100755 --- a/tsk/fs/ntfs.c +++ b/tsk/fs/ntfs.c @@ -4721,7 +4721,7 @@ ntfs_open(TSK_IMG_INFO * img_info, TSK_OFF_T offset, ntfs->fs = (ntfs_sb *) tsk_malloc(len); if (ntfs->fs == NULL) { fs->tag = 0; - free(ntfs); + tsk_fs_free((TSK_FS_INFO *)ntfs); return NULL; } @@ -4734,7 +4734,7 @@ ntfs_open(TSK_IMG_INFO * img_info, TSK_OFF_T offset, tsk_error_set_errstr2("%s: Error reading boot sector.", myname); fs->tag = 0; free(ntfs->fs); - free(ntfs); + tsk_fs_free((TSK_FS_INFO *)ntfs); return NULL; } @@ -4742,7 +4742,7 @@ ntfs_open(TSK_IMG_INFO * img_info, TSK_OFF_T offset, if (tsk_fs_guessu16(fs, ntfs->fs->magic, NTFS_FS_MAGIC)) { fs->tag = 0; free(ntfs->fs); - free(ntfs); + tsk_fs_free((TSK_FS_INFO *)ntfs); tsk_error_reset(); tsk_error_set_errno(TSK_ERR_FS_MAGIC); tsk_error_set_errstr("Not a NTFS file system (magic)"); @@ -4769,7 +4769,7 @@ ntfs_open(TSK_IMG_INFO * img_info, TSK_OFF_T offset, ntfs->ssize_b); fs->tag = 0; free(ntfs->fs); - free(ntfs); + tsk_fs_free((TSK_FS_INFO *)ntfs); return NULL; } @@ -4790,7 +4790,7 @@ ntfs_open(TSK_IMG_INFO * img_info, TSK_OFF_T offset, ntfs->fs->csize); fs->tag = 0; free(ntfs->fs); - free(ntfs); + tsk_fs_free((TSK_FS_INFO *)ntfs); return NULL; } @@ -4810,7 +4810,7 @@ ntfs_open(TSK_IMG_INFO * img_info, TSK_OFF_T offset, fprintf(stderr, "ntfs_open: invalid volume size: 0\n"); fs->tag = 0; free(ntfs->fs); - free(ntfs); + tsk_fs_free((TSK_FS_INFO *)ntfs); return NULL; } @@ -4833,7 +4833,7 @@ ntfs_open(TSK_IMG_INFO * img_info, TSK_OFF_T offset, if ((ntfs->mft_rsize_b == 0) || (ntfs->mft_rsize_b % 512)) { fs->tag = 0; free(ntfs->fs); - free(ntfs); + tsk_fs_free((TSK_FS_INFO *)ntfs); tsk_error_reset(); tsk_error_set_errno(TSK_ERR_FS_MAGIC); tsk_error_set_errstr @@ -4852,7 +4852,7 @@ ntfs_open(TSK_IMG_INFO * img_info, TSK_OFF_T offset, if ((ntfs->idx_rsize_b == 0) || (ntfs->idx_rsize_b % 512)) { fs->tag = 0; free(ntfs->fs); - free(ntfs); + tsk_fs_free((TSK_FS_INFO *)ntfs); tsk_error_reset(); tsk_error_set_errno(TSK_ERR_FS_MAGIC); tsk_error_set_errstr @@ -4869,7 +4869,7 @@ ntfs_open(TSK_IMG_INFO * img_info, TSK_OFF_T offset, if (tsk_getu64(fs->endian, ntfs->fs->mft_clust) > fs->last_block) { fs->tag = 0; free(ntfs->fs); - free(ntfs); + tsk_fs_free((TSK_FS_INFO *)ntfs); tsk_error_reset(); tsk_error_set_errno(TSK_ERR_FS_MAGIC); tsk_error_set_errstr @@ -4927,7 +4927,7 @@ ntfs_open(TSK_IMG_INFO * img_info, TSK_OFF_T offset, tsk_fs_file_open_meta(fs, NULL, NTFS_MFT_MFT)) == NULL) { fs->tag = 0; free(ntfs->fs); - free(ntfs); + tsk_fs_free((TSK_FS_INFO *)ntfs); if (tsk_verbose) fprintf(stderr, "ntfs_open: Error opening $MFT (%s)\n", tsk_error_get()); @@ -4945,7 +4945,7 @@ ntfs_open(TSK_IMG_INFO * img_info, TSK_OFF_T offset, fs->tag = 0; tsk_fs_file_close(ntfs->mft_file); free(ntfs->fs); - free(ntfs); + tsk_fs_free((TSK_FS_INFO *)ntfs); tsk_error_errstr2_concat(" - Data Attribute not found in $MFT"); if (tsk_verbose) fprintf(stderr, @@ -4971,7 +4971,7 @@ ntfs_open(TSK_IMG_INFO * img_info, TSK_OFF_T offset, fs->tag = 0; tsk_fs_file_close(ntfs->mft_file); free(ntfs->fs); - free(ntfs); + tsk_fs_free((TSK_FS_INFO *)ntfs); if (tsk_verbose) fprintf(stderr, "ntfs_open: Error loading file system version ((%s)\n", @@ -4984,7 +4984,7 @@ ntfs_open(TSK_IMG_INFO * img_info, TSK_OFF_T offset, fs->tag = 0; tsk_fs_file_close(ntfs->mft_file); free(ntfs->fs); - free(ntfs); + tsk_fs_free((TSK_FS_INFO *)ntfs); if (tsk_verbose) fprintf(stderr, "ntfs_open: Error loading block bitmap (%s)\n", tsk_error_get()); @@ -4999,7 +4999,7 @@ ntfs_open(TSK_IMG_INFO * img_info, TSK_OFF_T offset, fs->tag = 0; tsk_fs_file_close(ntfs->mft_file); free(ntfs->fs); - free(ntfs); + tsk_fs_free((TSK_FS_INFO *)ntfs); if (tsk_verbose) fprintf(stderr, "ntfs_open: Error loading Secure Info (%s)\n", tsk_error_get()); -- GitLab