small updates

(Logical change 1.471)
edge.strict_endians
(none)!yura 2004-08-04 09:47:41 +00:00
parent ba508305e3
commit bb8ee06cad
1 changed files with 23 additions and 3 deletions

View File

@ -3167,6 +3167,23 @@ static int ntfs_non_resident_attr_expand(ntfs_attr *na, const s64 newsize)
}
a = ctx->attr;
m = ctx->mrec;
/*
* Check that the attribute name hasn't been placed after the mapping
* pairs array. If it has we need to move it.
* TODO: Implement the move, if someone will hit it.
*/
if (a->name_length) {
if (le16_to_cpu(a->name_offset) >=
le16_to_cpu(a->mapping_pairs_offset)) {
fprintf(stderr, "%s(): Eeek! Name is placed after the "
"mapping pairs array. Aborting...\n",
__FUNCTION__);
err = ENOTSUP;
goto put_err_out;
}
}
/*
* Check the attribute type and the corresponding maximum size
* against @newsize and fail if @newsize is too big.
@ -3274,9 +3291,12 @@ static int ntfs_non_resident_attr_expand(ntfs_attr *na, const s64 newsize)
le32_to_cpu(a->length) + new_alen;
if (new_muse > le32_to_cpu(m->bytes_allocated)) {
fprintf(stderr, "%s(): BUG! Ran out of space in"
" mft record. Please report to "
"linux-ntfs-dev@lists.sf.net\n",
__FUNCTION__);
" mft record. Please run chkdsk"
" and if that doesn't find any "
"errors please report you saw "
"this message to "
"linux-ntfs-dev@lists.sf.net."
"\n", __FUNCTION__);
ntfs_cluster_free (vol, na, na->allocated_size
>> vol->cluster_size_bits, -1);
err = EIO;