diff options
author | Dan Carpenter <dan.carpenter@oracle.com> | 2020-06-08 17:16:29 +0300 |
---|---|---|
committer | Namjae Jeon <namjae.jeon@samsung.com> | 2020-06-09 16:50:18 +0900 |
commit | fc961522ddbdf00254dd03b677627139cc1f68bc (patch) | |
tree | b81f898f8dac5429084e0abb43b96c330bd6ff34 /fs/exfat | |
parent | a949824f01f3b39f737d77aed6cba47aced09319 (diff) | |
download | lwn-fc961522ddbdf00254dd03b677627139cc1f68bc.tar.gz lwn-fc961522ddbdf00254dd03b677627139cc1f68bc.zip |
exfat: Fix potential use after free in exfat_load_upcase_table()
This code calls brelse(bh) and then dereferences "bh" on the next line
resulting in a possible use after free. The brelse() should just be
moved down a line.
Fixes: b676fdbcf4c8 ("exfat: standardize checksum calculation")
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Namjae Jeon <namjae.jeon@samsung.com>
Diffstat (limited to 'fs/exfat')
-rw-r--r-- | fs/exfat/nls.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/exfat/nls.c b/fs/exfat/nls.c index c1ec05695497..57b5a7a4d1f7 100644 --- a/fs/exfat/nls.c +++ b/fs/exfat/nls.c @@ -692,8 +692,8 @@ static int exfat_load_upcase_table(struct super_block *sb, index++; } } - brelse(bh); chksum = exfat_calc_chksum32(bh->b_data, i, chksum, CS_DEFAULT); + brelse(bh); } if (index >= 0xFFFF && utbl_checksum == chksum) |