| From 4443390e08d34d5771ab444f601cf71b3c9634a4 Mon Sep 17 00:00:00 2001 |
| From: Jan Kara <jack@suse.cz> |
| Date: Mon, 21 Sep 2020 15:08:50 +0200 |
| Subject: reiserfs: Initialize inode keys properly |
| |
| From: Jan Kara <jack@suse.cz> |
| |
| commit 4443390e08d34d5771ab444f601cf71b3c9634a4 upstream. |
| |
| reiserfs_read_locked_inode() didn't initialize key length properly. Use |
| _make_cpu_key() macro for key initialization so that all key member are |
| properly initialized. |
| |
| CC: stable@vger.kernel.org |
| Reported-by: syzbot+d94d02749498bb7bab4b@syzkaller.appspotmail.com |
| Signed-off-by: Jan Kara <jack@suse.cz> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| fs/reiserfs/inode.c | 6 +----- |
| 1 file changed, 1 insertion(+), 5 deletions(-) |
| |
| --- a/fs/reiserfs/inode.c |
| +++ b/fs/reiserfs/inode.c |
| @@ -1553,11 +1553,7 @@ void reiserfs_read_locked_inode(struct i |
| * set version 1, version 2 could be used too, because stat data |
| * key is the same in both versions |
| */ |
| - key.version = KEY_FORMAT_3_5; |
| - key.on_disk_key.k_dir_id = dirino; |
| - key.on_disk_key.k_objectid = inode->i_ino; |
| - key.on_disk_key.k_offset = 0; |
| - key.on_disk_key.k_type = 0; |
| + _make_cpu_key(&key, KEY_FORMAT_3_5, dirino, inode->i_ino, 0, 0, 3); |
| |
| /* look for the object's stat data */ |
| retval = search_item(inode->i_sb, &key, &path_to_sd); |