diff mbox series

[f2fs-dev] f2fs: fix null pointer panic in tracepoint in __replace_atomic_write_block

Message ID 20230403165038.3018949-1-jaegeuk@kernel.org (mailing list archive)
State Accepted
Commit 053654436fc623bfd8d13abd318c4486c0e6776e
Headers show
Series [f2fs-dev] f2fs: fix null pointer panic in tracepoint in __replace_atomic_write_block | expand

Commit Message

Jaegeuk Kim April 3, 2023, 4:50 p.m. UTC
We got a kernel panic if old_addr is NULL.

Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
---
 fs/f2fs/segment.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Jaegeuk Kim April 3, 2023, 4:54 p.m. UTC | #1
We got a kernel panic if old_addr is NULL.

https://bugzilla.kernel.org/show_bug.cgi?id=217266

BUG: kernel NULL pointer dereference, address: 0000000000000000
 Call Trace:
  <TASK>
  f2fs_commit_atomic_write+0x619/0x990 [f2fs a1b985b80f5babd6f3ea778384908880812bfa43]
  __f2fs_ioctl+0xd8e/0x4080 [f2fs a1b985b80f5babd6f3ea778384908880812bfa43]
  ? vfs_write+0x2ae/0x3f0
  ? vfs_write+0x2ae/0x3f0
  __x64_sys_ioctl+0x91/0xd0
  do_syscall_64+0x5c/0x90
  entry_SYSCALL_64_after_hwframe+0x72/0xdc
 RIP: 0033:0x7f69095fe53f

Fixes: 2f3a9ae990a7 ("f2fs: introduce trace_f2fs_replace_atomic_write_block")
Cc: <stable@vger.kernel.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
---
 fs/f2fs/segment.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/fs/f2fs/segment.c b/fs/f2fs/segment.c
index 72bce3808394..2439d7029e64 100644
--- a/fs/f2fs/segment.c
+++ b/fs/f2fs/segment.c
@@ -257,7 +257,7 @@ static int __replace_atomic_write_block(struct inode *inode, pgoff_t index,
 	f2fs_put_dnode(&dn);
 
 	trace_f2fs_replace_atomic_write_block(inode, F2FS_I(inode)->cow_inode,
-					index, *old_addr, new_addr, recover);
+			index, old_addr ? *old_addr : 0, new_addr, recover);
 	return 0;
 }
Chao Yu April 4, 2023, 1:18 a.m. UTC | #2
On 2023/4/4 0:54, Jaegeuk Kim wrote:
> We got a kernel panic if old_addr is NULL.
> 
> https://bugzilla.kernel.org/show_bug.cgi?id=217266
> 
> BUG: kernel NULL pointer dereference, address: 0000000000000000
>   Call Trace:
>    <TASK>
>    f2fs_commit_atomic_write+0x619/0x990 [f2fs a1b985b80f5babd6f3ea778384908880812bfa43]
>    __f2fs_ioctl+0xd8e/0x4080 [f2fs a1b985b80f5babd6f3ea778384908880812bfa43]
>    ? vfs_write+0x2ae/0x3f0
>    ? vfs_write+0x2ae/0x3f0
>    __x64_sys_ioctl+0x91/0xd0
>    do_syscall_64+0x5c/0x90
>    entry_SYSCALL_64_after_hwframe+0x72/0xdc
>   RIP: 0033:0x7f69095fe53f
> 
> Fixes: 2f3a9ae990a7 ("f2fs: introduce trace_f2fs_replace_atomic_write_block")
> Cc: <stable@vger.kernel.org>
> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>

Thanks for fixing this. :)

Reviewed-by: Chao Yu <chao@kernel.org>

Thanks,
patchwork-bot+f2fs@kernel.org April 4, 2023, 1:54 a.m. UTC | #3
Hello:

This patch was applied to jaegeuk/f2fs.git (dev)
by Jaegeuk Kim <jaegeuk@kernel.org>:

On Mon,  3 Apr 2023 09:50:38 -0700 you wrote:
> We got a kernel panic if old_addr is NULL.
> 
> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
> ---
>  fs/f2fs/segment.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)

Here is the summary with links:
  - [f2fs-dev] f2fs: fix null pointer panic in tracepoint in __replace_atomic_write_block
    https://git.kernel.org/jaegeuk/f2fs/c/053654436fc6

You are awesome, thank you!
diff mbox series

Patch

diff --git a/fs/f2fs/segment.c b/fs/f2fs/segment.c
index 72bce3808394..2439d7029e64 100644
--- a/fs/f2fs/segment.c
+++ b/fs/f2fs/segment.c
@@ -257,7 +257,7 @@  static int __replace_atomic_write_block(struct inode *inode, pgoff_t index,
 	f2fs_put_dnode(&dn);
 
 	trace_f2fs_replace_atomic_write_block(inode, F2FS_I(inode)->cow_inode,
-					index, *old_addr, new_addr, recover);
+			index, old_addr ? *old_addr : 0, new_addr, recover);
 	return 0;
 }