mirror of
https://github.com/torvalds/linux.git
synced 2024-11-12 23:23:03 +00:00
fs/ntfs3: Make checks in run_unpack more clear
Signed-off-by: Konstantin Komarov <almaz.alexandrovich@paragon-software.com>
This commit is contained in:
parent
c4a8ba3342
commit
70dd48ca3a
@ -959,7 +959,7 @@ int run_unpack(struct runs_tree *run, struct ntfs_sb_info *sbi, CLST ino,
|
||||
* Large positive number requires to store 5 bytes
|
||||
* e.g.: 05 FF 7E FF FF 00 00 00
|
||||
*/
|
||||
if (size_size > 8)
|
||||
if (size_size > sizeof(len))
|
||||
return -EINVAL;
|
||||
|
||||
len = run_unpack_s64(run_buf, size_size, 0);
|
||||
@ -971,7 +971,7 @@ int run_unpack(struct runs_tree *run, struct ntfs_sb_info *sbi, CLST ino,
|
||||
|
||||
if (!offset_size)
|
||||
lcn = SPARSE_LCN64;
|
||||
else if (offset_size <= 8) {
|
||||
else if (offset_size <= sizeof(s64)) {
|
||||
s64 dlcn;
|
||||
|
||||
/* Initial value of dlcn is -1 or 0. */
|
||||
@ -984,8 +984,10 @@ int run_unpack(struct runs_tree *run, struct ntfs_sb_info *sbi, CLST ino,
|
||||
return -EINVAL;
|
||||
lcn = prev_lcn + dlcn;
|
||||
prev_lcn = lcn;
|
||||
} else
|
||||
} else {
|
||||
/* The size of 'dlcn' can't be > 8. */
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
next_vcn = vcn64 + len;
|
||||
/* Check boundary. */
|
||||
|
Loading…
Reference in New Issue
Block a user