]> www.infradead.org Git - users/hch/misc.git/commit
vfs: sanity check the length passed to inode_set_cached_link()
authorMateusz Guzik <mjguzik@gmail.com>
Tue, 4 Feb 2025 21:32:07 +0000 (22:32 +0100)
committerChristian Brauner <brauner@kernel.org>
Fri, 7 Feb 2025 09:29:59 +0000 (10:29 +0100)
commit37d11cfc63604b3886308e2111d845d148ced8bc
tree08536943bc5322ee481a5e6f2fd4b5a30ecfbb76
parent091ee63e36e8289f9067f659a48d497911e49d6f
vfs: sanity check the length passed to inode_set_cached_link()

This costs a strlen() call when instatianating a symlink.

Preferably it would be hidden behind VFS_WARN_ON (or compatible), but
there is no such facility at the moment. With the facility in place the
call can be patched out in production kernels.

In the meantime, since the cost is being paid unconditionally, use the
result to a fixup the bad caller.

This is not expected to persist in the long run (tm).

Sample splat:
bad length passed for symlink [/tmp/syz-imagegen43743633/file0/file0] (got 131109, expected 37)
[rest of WARN blurp goes here]

Signed-off-by: Mateusz Guzik <mjguzik@gmail.com>
Link: https://lore.kernel.org/r/20250204213207.337980-1-mjguzik@gmail.com
Signed-off-by: Christian Brauner <brauner@kernel.org>
include/linux/fs.h