diff options
Diffstat (limited to 'fs/hfs/bnode.c')
| -rw-r--r-- | fs/hfs/bnode.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/fs/hfs/bnode.c b/fs/hfs/bnode.c index 13d58c51fc46..25cef62fbba6 100644 --- a/fs/hfs/bnode.c +++ b/fs/hfs/bnode.c @@ -41,7 +41,7 @@ u32 check_and_correct_requested_length(struct hfs_bnode *node, u32 off, u32 len) node_size = node->tree->node_size; - if ((off + len) > node_size) { + if ((u64)off + len > node_size) { u32 new_len = node_size - off; pr_err("requested length has been corrected: " @@ -64,6 +64,8 @@ void hfs_bnode_read(struct hfs_bnode *node, void *buf, u32 off, u32 len) u32 bytes_read; u32 bytes_to_read; + memset(buf, 0, len); + if (!is_bnode_offset_valid(node, off)) return; |
