parent
7a3e8fdeb5
commit
0803017bb6
|
|
@ -694,7 +694,7 @@ void dump_resident_attr_val(ATTR_TYPES type, char *val, u32 val_len)
|
||||||
default:
|
default:
|
||||||
i = le32_to_cpu(type);
|
i = le32_to_cpu(type);
|
||||||
printf("Cannot display unknown %s defined attribute type 0x%x"
|
printf("Cannot display unknown %s defined attribute type 0x%x"
|
||||||
".\n", i >=
|
".\n", (u32)i >=
|
||||||
le32_to_cpu(AT_FIRST_USER_DEFINED_ATTRIBUTE) ?
|
le32_to_cpu(AT_FIRST_USER_DEFINED_ATTRIBUTE) ?
|
||||||
"user" : "system", i);
|
"user" : "system", i);
|
||||||
}
|
}
|
||||||
|
|
@ -809,7 +809,7 @@ void dump_attr_record(ATTR_RECORD *a)
|
||||||
if (a->name_length) {
|
if (a->name_length) {
|
||||||
if (ucstos(s, (uchar_t*)((char*)a +
|
if (ucstos(s, (uchar_t*)((char*)a +
|
||||||
cpu_to_le16(a->name_offset)),
|
cpu_to_le16(a->name_offset)),
|
||||||
min(sizeof(s), a->name_length + 1)) == -1) {
|
min(sizeof(s), a->name_length + 1U)) == -1) {
|
||||||
Eprintf("Could not convert Unicode string to single "
|
Eprintf("Could not convert Unicode string to single "
|
||||||
"byte string in current locale.\n");
|
"byte string in current locale.\n");
|
||||||
strncpy(s, "Error converting Unicode string",
|
strncpy(s, "Error converting Unicode string",
|
||||||
|
|
@ -1067,7 +1067,7 @@ runlist *allocate_scattered_clusters(s64 clusters)
|
||||||
* Reallocate memory if necessary. Make sure we have
|
* Reallocate memory if necessary. Make sure we have
|
||||||
* enough for the terminator entry as well.
|
* enough for the terminator entry as well.
|
||||||
*/
|
*/
|
||||||
if ((rlpos + 2) * sizeof(runlist) >= rlsize) {
|
if ((rlpos + 2) * (int)sizeof(runlist) >= rlsize) {
|
||||||
rlsize += 4096; /* PAGE_SIZE */
|
rlsize += 4096; /* PAGE_SIZE */
|
||||||
rlt = realloc(rl, rlsize);
|
rlt = realloc(rl, rlsize);
|
||||||
if (!rlt)
|
if (!rlt)
|
||||||
|
|
@ -1905,7 +1905,7 @@ int add_attr_index_root(MFT_RECORD *m, const char *name, const u32 name_len,
|
||||||
free(r);
|
free(r);
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
if (index_block_size < opts.sector_size) {
|
if (index_block_size < (u32)opts.sector_size) {
|
||||||
Eprintf("add_attr_index_root: index block size is "
|
Eprintf("add_attr_index_root: index block size is "
|
||||||
"smaller than the sector size.\n");
|
"smaller than the sector size.\n");
|
||||||
free(r);
|
free(r);
|
||||||
|
|
@ -2445,7 +2445,7 @@ int create_hardlink(INDEX_BLOCK *index, const MFT_REF ref_parent,
|
||||||
/**
|
/**
|
||||||
* init_options
|
* init_options
|
||||||
*/
|
*/
|
||||||
void init_options()
|
void init_options(void)
|
||||||
{
|
{
|
||||||
memset(&opts, 0, sizeof(opts));
|
memset(&opts, 0, sizeof(opts));
|
||||||
opts.index_block_size = 4096;
|
opts.index_block_size = 4096;
|
||||||
|
|
@ -2679,13 +2679,13 @@ int main(int argc, char **argv)
|
||||||
else
|
else
|
||||||
vol->cluster_size = 4096;
|
vol->cluster_size = 4096;
|
||||||
/* For small volumes on devices with large sector sizes. */
|
/* For small volumes on devices with large sector sizes. */
|
||||||
if (vol->cluster_size < opts.sector_size)
|
if (vol->cluster_size < (u32)opts.sector_size)
|
||||||
vol->cluster_size = opts.sector_size;
|
vol->cluster_size = opts.sector_size;
|
||||||
}
|
}
|
||||||
/* Validate cluster size. */
|
/* Validate cluster size. */
|
||||||
if (vol->cluster_size & (vol->cluster_size - 1) ||
|
if (vol->cluster_size & (vol->cluster_size - 1) ||
|
||||||
vol->cluster_size < opts.sector_size ||
|
vol->cluster_size < (u32)opts.sector_size ||
|
||||||
vol->cluster_size > 128 * opts.sector_size ||
|
vol->cluster_size > 128 * (u32)opts.sector_size ||
|
||||||
vol->cluster_size > 65536)
|
vol->cluster_size > 65536)
|
||||||
err_exit("Error: cluster_size is invalid. It must be a power "
|
err_exit("Error: cluster_size is invalid. It must be a power "
|
||||||
"of two, be at least\nthe same as sector_size, be "
|
"of two, be at least\nthe same as sector_size, be "
|
||||||
|
|
@ -2967,7 +2967,7 @@ int main(int argc, char **argv)
|
||||||
fflush(stdout);
|
fflush(stdout);
|
||||||
}
|
}
|
||||||
bw = mkntfs_write(vol->dev, buf, vol->cluster_size);
|
bw = mkntfs_write(vol->dev, buf, vol->cluster_size);
|
||||||
if (bw != vol->cluster_size) {
|
if (bw != (ssize_t)vol->cluster_size) {
|
||||||
if (bw != -1 || errno != EIO)
|
if (bw != -1 || errno != EIO)
|
||||||
err_exit("This should not happen.\n");
|
err_exit("This should not happen.\n");
|
||||||
if (!position)
|
if (!position)
|
||||||
|
|
@ -2996,12 +2996,12 @@ int main(int argc, char **argv)
|
||||||
Qprintf("\b\b\b\b100%%");
|
Qprintf("\b\b\b\b100%%");
|
||||||
position = (opts.volume_size & (vol->cluster_size - 1)) /
|
position = (opts.volume_size & (vol->cluster_size - 1)) /
|
||||||
opts.sector_size;
|
opts.sector_size;
|
||||||
for (i = 0; i < position; i++) {
|
for (i = 0; (unsigned long)i < position; i++) {
|
||||||
bw = mkntfs_write(vol->dev, buf, opts.sector_size);
|
bw = mkntfs_write(vol->dev, buf, opts.sector_size);
|
||||||
if (bw != opts.sector_size) {
|
if (bw != opts.sector_size) {
|
||||||
if (bw != -1 || errno != EIO)
|
if (bw != -1 || errno != EIO)
|
||||||
err_exit("This should not happen.\n");
|
err_exit("This should not happen.\n");
|
||||||
else if (i + 1 == position &&
|
else if (i + 1UL == position &&
|
||||||
(vol->major_ver >= 2 ||
|
(vol->major_ver >= 2 ||
|
||||||
(vol->major_ver == 1 &&
|
(vol->major_ver == 1 &&
|
||||||
vol->minor_ver >= 2)))
|
vol->minor_ver >= 2)))
|
||||||
|
|
@ -3264,7 +3264,8 @@ int main(int argc, char **argv)
|
||||||
vol->cluster_size;
|
vol->cluster_size;
|
||||||
else {
|
else {
|
||||||
bs->clusters_per_mft_record = -(ffs(vol->mft_record_size) - 1);
|
bs->clusters_per_mft_record = -(ffs(vol->mft_record_size) - 1);
|
||||||
if ((1 << -bs->clusters_per_mft_record) != vol->mft_record_size)
|
if ((u32)(1 << -bs->clusters_per_mft_record) !=
|
||||||
|
vol->mft_record_size)
|
||||||
err_exit("BUG: calculated clusters_per_mft_record "
|
err_exit("BUG: calculated clusters_per_mft_record "
|
||||||
"is wrong (= 0x%x)\n",
|
"is wrong (= 0x%x)\n",
|
||||||
bs->clusters_per_mft_record);
|
bs->clusters_per_mft_record);
|
||||||
|
|
@ -3272,7 +3273,7 @@ int main(int argc, char **argv)
|
||||||
Dprintf("Clusters per mft record = %i (0x%x)\n",
|
Dprintf("Clusters per mft record = %i (0x%x)\n",
|
||||||
bs->clusters_per_mft_record,
|
bs->clusters_per_mft_record,
|
||||||
bs->clusters_per_mft_record);
|
bs->clusters_per_mft_record);
|
||||||
if (opts.index_block_size >= vol->cluster_size)
|
if (opts.index_block_size >= (int)vol->cluster_size)
|
||||||
bs->clusters_per_index_record = opts.index_block_size /
|
bs->clusters_per_index_record = opts.index_block_size /
|
||||||
vol->cluster_size;
|
vol->cluster_size;
|
||||||
else {
|
else {
|
||||||
|
|
@ -3491,7 +3492,7 @@ bb_err:
|
||||||
Vprintf("Syncing $MFT.\n");
|
Vprintf("Syncing $MFT.\n");
|
||||||
pos = opts.mft_lcn * vol->cluster_size;
|
pos = opts.mft_lcn * vol->cluster_size;
|
||||||
lw = 1;
|
lw = 1;
|
||||||
for (i = 0; i < opts.mft_size / vol->mft_record_size; i++) {
|
for (i = 0; i < opts.mft_size / (s32)vol->mft_record_size; i++) {
|
||||||
if (!opts.no_action)
|
if (!opts.no_action)
|
||||||
lw = ntfs_mst_pwrite(vol->dev, pos, 1,
|
lw = ntfs_mst_pwrite(vol->dev, pos, 1,
|
||||||
vol->mft_record_size,
|
vol->mft_record_size,
|
||||||
|
|
|
||||||
|
|
@ -350,7 +350,7 @@ int cluster_find (ntfs_volume *vol, LCN s_begin, LCN s_end)
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i = s_begin; i < s_end; i++) {
|
for (i = s_begin; (LCN)i < s_end; i++) {
|
||||||
if (utils_cluster_in_use (vol, i) == 1) {
|
if (utils_cluster_in_use (vol, i) == 1) {
|
||||||
in_use = 1;
|
in_use = 1;
|
||||||
break;
|
break;
|
||||||
|
|
@ -368,7 +368,7 @@ int cluster_find (ntfs_volume *vol, LCN s_begin, LCN s_end)
|
||||||
|
|
||||||
// first, is the cluster in use in $Bitmap?
|
// first, is the cluster in use in $Bitmap?
|
||||||
|
|
||||||
for (i = 0; i < vol->nr_mft_records; i++) {
|
for (i = 0; (s64)i < vol->nr_mft_records; i++) {
|
||||||
ntfs_inode *inode;
|
ntfs_inode *inode;
|
||||||
ntfs_attr_search_ctx *ctx;
|
ntfs_attr_search_ctx *ctx;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -220,7 +220,7 @@ int resize_resident_attribute_value(MFT_RECORD *m, ATTR_RECORD *a,
|
||||||
new_muse = le32_to_cpu(m->bytes_in_use) - le32_to_cpu(a->length) +
|
new_muse = le32_to_cpu(m->bytes_in_use) - le32_to_cpu(a->length) +
|
||||||
new_alen;
|
new_alen;
|
||||||
/* Check for sufficient space. */
|
/* Check for sufficient space. */
|
||||||
if (new_muse > le32_to_cpu(m->bytes_allocated)) {
|
if ((u32)new_muse > le32_to_cpu(m->bytes_allocated)) {
|
||||||
errno = ENOSPC;
|
errno = ENOSPC;
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -71,7 +71,7 @@ void init_upcase_table(uchar_t *uc, u32 uc_len)
|
||||||
|
|
||||||
memset((char*)uc, 0, uc_len);
|
memset((char*)uc, 0, uc_len);
|
||||||
uc_len >>= 1;
|
uc_len >>= 1;
|
||||||
for (i = 0; i < uc_len; i++)
|
for (i = 0; (u32)i < uc_len; i++)
|
||||||
uc[i] = i;
|
uc[i] = i;
|
||||||
for (r = 0; uc_run_table[r][0]; r++)
|
for (r = 0; uc_run_table[r][0]; r++)
|
||||||
for (i = uc_run_table[r][0]; i < uc_run_table[r][1]; i++)
|
for (i = uc_run_table[r][0]; i < uc_run_table[r][1]; i++)
|
||||||
|
|
|
||||||
|
|
@ -675,7 +675,8 @@ int utils_mftrec_in_use (ntfs_volume *vol, MFT_REF mref)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Does mref lie in the section of $Bitmap we already have cached? */
|
/* Does mref lie in the section of $Bitmap we already have cached? */
|
||||||
if ((mref < bmpmref) || (mref >= (bmpmref + (sizeof (buffer) << 3)))) {
|
if (((s64)MREF(mref) < bmpmref) || ((s64)MREF(mref) >= (bmpmref +
|
||||||
|
(sizeof (buffer) << 3)))) {
|
||||||
Dprintf ("Bit lies outside cache.\n");
|
Dprintf ("Bit lies outside cache.\n");
|
||||||
|
|
||||||
/* Mark the buffer as not in use, in case the read is shorter. */
|
/* Mark the buffer as not in use, in case the read is shorter. */
|
||||||
|
|
@ -760,7 +761,7 @@ ntfs_inode * utils_pathname_to_inode (ntfs_volume *vol, ntfs_inode *parent, cons
|
||||||
}
|
}
|
||||||
|
|
||||||
inum = ntfs_inode_lookup_by_name (ni, unicode, len);
|
inum = ntfs_inode_lookup_by_name (ni, unicode, len);
|
||||||
if (inum == -1) {
|
if (inum == (u64)-1) {
|
||||||
Eprintf ("Couldn't find name '%s' in pathname '%s'.\n", p, pathname);
|
Eprintf ("Couldn't find name '%s' in pathname '%s'.\n", p, pathname);
|
||||||
goto close;
|
goto close;
|
||||||
}
|
}
|
||||||
|
|
@ -912,7 +913,7 @@ int mft_next_record (struct mft_search_ctx *ctx)
|
||||||
ctx->inode = NULL;
|
ctx->inode = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (ctx->mft_num++; ctx->mft_num < ctx->vol->nr_mft_records; ctx->mft_num++) {
|
for (ctx->mft_num++; (s64)ctx->mft_num < ctx->vol->nr_mft_records; ctx->mft_num++) {
|
||||||
ctx->flags_match = 0;
|
ctx->flags_match = 0;
|
||||||
int in_use = utils_mftrec_in_use (ctx->vol, (MFT_REF) ctx->mft_num);
|
int in_use = utils_mftrec_in_use (ctx->vol, (MFT_REF) ctx->mft_num);
|
||||||
if (in_use == -1) {
|
if (in_use == -1) {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue