12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- --- a/ntfsprogs/ntfsclone.c 2018-05-16 18:46:47.114964000 +0200
- +++ b/ntfsprogs/ntfsclone.c 2018-07-16 14:03:20.273809100 +0200
- @@ -776,6 +776,10 @@
-
- /* possible partial cluster holding the backup boot sector */
- backup_bootsector = (lcn + 1)*csize >= full_device_size;
- + buff = (char*)ntfs_malloc(csize);
- + if (!buff)
- + err_exit("Not enough memory");
- +
- if (backup_bootsector) {
- csize = full_device_size - lcn*csize;
- if (csize < 0) {
- @@ -783,10 +787,6 @@
- }
- }
-
- - buff = (char*)ntfs_malloc(csize);
- - if (!buff)
- - err_exit("Not enough memory");
- -
- // need reading when not about to write ?
- if (read_all(fd, buff, csize) == -1) {
-
- @@ -1507,6 +1507,7 @@
- s64 mft_no;
- u32 mft_record_size;
- u32 csize;
- + u32 buff_size;
- u32 bytes_per_sector;
- u32 records_per_set;
- u32 clusters_per_set;
- @@ -1524,15 +1525,18 @@
- /*
- * Depending on the sizes, there may be several records
- * per cluster, or several clusters per record.
- + * Anyway, full clusters are needed for rescuing bad ones.
- */
- if (csize >= mft_record_size) {
- records_per_set = csize/mft_record_size;
- clusters_per_set = 1;
- + buff_size = csize;
- } else {
- clusters_per_set = mft_record_size/csize;
- records_per_set = 1;
- + buff_size = mft_record_size;
- }
- - buff = (char*)ntfs_malloc(mft_record_size);
- + buff = (char*)ntfs_malloc(buff_size);
- if (!buff)
- err_exit("Not enough memory");
-
- @@ -1585,6 +1589,7 @@
- void *fd;
- u32 indx_record_size;
- u32 csize;
- + u32 buff_size;
- u32 bytes_per_sector;
- u32 records_per_set;
- u32 clusters_per_set;
- @@ -1601,16 +1606,19 @@
- /*
- * Depending on the sizes, there may be several records
- * per cluster, or several clusters per record.
- + * Anyway, full clusters are needed for rescuing bad ones.
- */
- indx_record_size = image->ni->vol->indx_record_size;
- if (csize >= indx_record_size) {
- records_per_set = csize/indx_record_size;
- clusters_per_set = 1;
- + buff_size = csize;
- } else {
- clusters_per_set = indx_record_size/csize;
- records_per_set = 1;
- + buff_size = indx_record_size;
- }
- - buff = (char*)ntfs_malloc(indx_record_size);
- + buff = (char*)ntfs_malloc(buff_size);
- if (!buff)
- err_exit("Not enough memory");
-
|