Skip to content

Commit

Permalink
trace: f2fs: Fix kasan slab-out-of-bounds
Browse files Browse the repository at this point in the history
This patch fixes the following KASAN report:

KASAN: slab-out-of-bounds in string+0xb4/0x120
Read of size 1 at addr fffffffbf2f3b510 by task atrace/9219

Call trace:
dump_backtrace+0x0/0x3e8
show_stack+0x20/0x30
dump_stack+0x13c/0x198
print_address_description+0x80/0x2e0
kasan_report_error+0x1ac/0x210
__asan_report_load2_noabort+0x0/0xb8
string+0xb4/0x120
vsnprintf+0x5f4/0x1658
seq_buf_vprintf+0x11c/0x200
trace_seq_printf+0x1a8/0x320
trace_raw_output_f2fs_lookup_start+0xe8/0x158
print_trace_line+0x3cc/0xeb0
s_show+0x154/0x248
seq_read+0x8a8/0x1378
__vfs_read+0xfc/0x550
vfs_read+0x108/0x268
ksys_read+0x124/0x2b0

Correctly assign name string for f2fs trace.

Change-Id: I8ed0cf7c542ead06479fb4fde65b01b5e739e6db
Signed-off-by: Sayali Lokhande <sayalil@codeaurora.org>
Signed-off-by: engstk <eng.stk@sapo.pt>
  • Loading branch information
Sayali Lokhande authored and engstk committed Nov 9, 2020
1 parent cf4cb39 commit 79224af
Showing 1 changed file with 9 additions and 9 deletions.
18 changes: 9 additions & 9 deletions include/trace/events/f2fs.h
Original file line number Diff line number Diff line change
Expand Up @@ -333,23 +333,23 @@ TRACE_EVENT(f2fs_unlink_enter,
__field(ino_t, ino)
__field(loff_t, size)
__field(blkcnt_t, blocks)
__field(const char *, name)
__string(name, dentry->d_name.name)
),

TP_fast_assign(
__entry->dev = dir->i_sb->s_dev;
__entry->ino = dir->i_ino;
__entry->size = dir->i_size;
__entry->blocks = dir->i_blocks;
__entry->name = dentry->d_name.name;
__assign_str(name, dentry->d_name.name);
),

TP_printk("dev = (%d,%d), dir ino = %lu, i_size = %lld, "
"i_blocks = %llu, name = %s",
show_dev_ino(__entry),
__entry->size,
(unsigned long long)__entry->blocks,
__entry->name)
__get_str(name))
);

DEFINE_EVENT(f2fs__inode_exit, f2fs_unlink_exit,
Expand Down Expand Up @@ -810,20 +810,20 @@ TRACE_EVENT(f2fs_lookup_start,
TP_STRUCT__entry(
__field(dev_t, dev)
__field(ino_t, ino)
__field(const char *, name)
__string(name, dentry->d_name.name)
__field(unsigned int, flags)
),

TP_fast_assign(
__entry->dev = dir->i_sb->s_dev;
__entry->ino = dir->i_ino;
__entry->name = dentry->d_name.name;
__assign_str(name, dentry->d_name.name);
__entry->flags = flags;
),

TP_printk("dev = (%d,%d), pino = %lu, name:%s, flags:%u",
show_dev_ino(__entry),
__entry->name,
__get_str(name),
__entry->flags)
);

Expand All @@ -837,22 +837,22 @@ TRACE_EVENT(f2fs_lookup_end,
TP_STRUCT__entry(
__field(dev_t, dev)
__field(ino_t, ino)
__field(const char *, name)
__string(name, dentry->d_name.name)
__field(nid_t, cino)
__field(int, err)
),

TP_fast_assign(
__entry->dev = dir->i_sb->s_dev;
__entry->ino = dir->i_ino;
__entry->name = dentry->d_name.name;
__assign_str(name, dentry->d_name.name);
__entry->cino = ino;
__entry->err = err;
),

TP_printk("dev = (%d,%d), pino = %lu, name:%s, ino:%u, err:%d",
show_dev_ino(__entry),
__entry->name,
__get_str(name),
__entry->cino,
__entry->err)
);
Expand Down

0 comments on commit 79224af

Please sign in to comment.