OSDN Git Service

volume.c: Fix passing bad pointer type to ntfs_is_[baad|mft]_recordp.
authorErik Larsson <mechie@users.sourceforge.net>
Mon, 25 Jan 2016 10:31:12 +0000 (11:31 +0100)
committerErik Larsson <mechie@users.sourceforge.net>
Mon, 25 Jan 2016 10:31:12 +0000 (11:31 +0100)
libntfs-3g/volume.c

index edd7697..dc9aa9a 100644 (file)
@@ -963,13 +963,13 @@ ntfs_volume *ntfs_device_mount(struct ntfs_device *dev, ntfs_mount_flags flags)
 
                mrec = (MFT_RECORD*)(m + i * vol->mft_record_size);
                if (mrec->flags & MFT_RECORD_IN_USE) {
-                       if (ntfs_is_baad_recordp(mrec)) {
+                       if (ntfs_is_baad_recordp(&mrec->magic)) {
                                ntfs_log_error("$MFT error: Incomplete multi "
                                               "sector transfer detected in "
                                               "'%s'.\n", s);
                                goto io_error_exit;
                        }
-                       if (!ntfs_is_mft_recordp(mrec)) {
+                       if (!ntfs_is_mft_recordp(&mrec->magic)) {
                                ntfs_log_error("$MFT error: Invalid mft "
                                                "record for '%s'.\n", s);
                                goto io_error_exit;
@@ -977,13 +977,13 @@ ntfs_volume *ntfs_device_mount(struct ntfs_device *dev, ntfs_mount_flags flags)
                }
                mrec2 = (MFT_RECORD*)(m2 + i * vol->mft_record_size);
                if (mrec2->flags & MFT_RECORD_IN_USE) {
-                       if (ntfs_is_baad_recordp(mrec2)) {
+                       if (ntfs_is_baad_recordp(&mrec2->magic)) {
                                ntfs_log_error("$MFTMirr error: Incomplete "
                                                "multi sector transfer "
                                                "detected in '%s'.\n", s);
                                goto io_error_exit;
                        }
-                       if (!ntfs_is_mft_recordp(mrec2)) {
+                       if (!ntfs_is_mft_recordp(&mrec2->magic)) {
                                ntfs_log_error("$MFTMirr error: Invalid mft "
                                                "record for '%s'.\n", s);
                                goto io_error_exit;