<[email protected]> writes:

> From: David Laight <[email protected]>
>
> The code has already checked there is enough room.
> Use memcpy() to avoid compiler warnings from possibly unbounded strcpy().
>
> Signed-off-by: David Laight <[email protected]>
> ---
> This is one of a group of patches that remove potentially unbounded
> strcpy() calls.
>
> They are mostly replaced by strscpy() or, when strlen() has just been
> called, with memcpy() (usually including the '\0').
>
> Calls with copy string literals into arrays are left unchanged.
> They are safe and easily detected as such.
>
> The changes were made by getting the compiler to detect the calls and
> then fixing the code by hand.
>
> Note that all the changes are only compile tested.
>
> Some Makefiles were changed to allow files to contain strcpy().
> As well as 'difficult to fix' files, this included 'show' functions
> as they really need to use sysfs_emit() or seq_printf().
>
> All the patches are being sent individually to avoid very long cc lists.
> Apologies for the terse commit messages and likely unexpected tags.
> (There are about 100 patches in total.)
>
>  fs/configfs/symlink.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/fs/configfs/symlink.c b/fs/configfs/symlink.c
> index f3f79c67add5..9f36699e5922 100644
> --- a/fs/configfs/symlink.c
> +++ b/fs/configfs/symlink.c
> @@ -67,7 +67,7 @@ static int configfs_get_target_path(struct config_item 
> *item,
>       pr_debug("%s: depth = %d, size = %d\n", __func__, depth, size);
>
>       for (s = path; depth--; s += 3)
> -             strcpy(s,"../");
> +             memcpy(s, "../", 4);

I don't think this transform makes sense when copying string literals.
The post transform code has one more foot gun than the original code.

Best regards,
Andreas Hindborg




Reply via email to