Skip to content

Commit e22c387

Browse files
azeemshaikh38akpm00
authored andcommitted
fs: ocfs2: replace strlcpy with sysfs_emit
strlcpy() reads the entire source buffer first. This read may exceed the destination size limit. This is both inefficient and can lead to linear read overflows if a source string is not NUL-terminated [1]. In an effort to remove strlcpy() completely [2], replace strlcpy() here with sysfs_emit(). Direct replacement is safe here since its ok for `kernel_param_ops.get()` to return -errno [3]. [1] https://www.kernel.org/doc/html/latest/process/deprecated.html#strlcpy [2] KSPP#89 [3] https://elixir.bootlin.com/linux/v6.5/source/include/linux/moduleparam.h#L52 Link: https://lkml.kernel.org/r/[email protected] Signed-off-by: Azeem Shaikh <[email protected]> Reviewed-by: Kees Cook <[email protected]> Reviewed-by: Joseph Qi <[email protected]> Cc: Christian Brauner <[email protected]> Cc: Dave Chinner <[email protected]> Cc: Jan Kara <[email protected]> Cc: Jeff Layton <[email protected]> Cc: Joel Becker <[email protected]> Cc: Mark Fasheh <[email protected]> Cc: Junxiao Bi <[email protected]> Cc: Changwei Ge <[email protected]> Cc: Gang He <[email protected]> Cc: Jun Piao <[email protected]> Signed-off-by: Andrew Morton <[email protected]>
1 parent f6e9d38 commit e22c387

File tree

1 file changed

+1
-2
lines changed

1 file changed

+1
-2
lines changed

fs/ocfs2/dlmfs/dlmfs.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -80,8 +80,7 @@ static int param_set_dlmfs_capabilities(const char *val,
8080
static int param_get_dlmfs_capabilities(char *buffer,
8181
const struct kernel_param *kp)
8282
{
83-
return strlcpy(buffer, DLMFS_CAPABILITIES,
84-
strlen(DLMFS_CAPABILITIES) + 1);
83+
return sysfs_emit(buffer, DLMFS_CAPABILITIES);
8584
}
8685
module_param_call(capabilities, param_set_dlmfs_capabilities,
8786
param_get_dlmfs_capabilities, NULL, 0444);

0 commit comments

Comments
 (0)