2014-07-26 23:14:18

by Rickard Strandqvist

[permalink] [raw]
Subject: [PATCH] block: elevator.c: Cleaning up missing null-terminate in conjunction with strncpy

Replacing strncpy with strlcpy to avoid strings that lacks null terminate.
And set a string to be empty from the start.

Signed-off-by: Rickard Strandqvist <[email protected]>
---
block/elevator.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/block/elevator.c b/block/elevator.c
index 24c28b6..ad17774 100644
--- a/block/elevator.c
+++ b/block/elevator.c
@@ -118,7 +118,7 @@ static struct elevator_type *elevator_get(const char *name, bool try_loading)
return e;
}

-static char chosen_elevator[ELV_NAME_MAX];
+static char chosen_elevator[ELV_NAME_MAX] = "";

static int __init elevator_setup(char *str)
{
@@ -126,7 +126,7 @@ static int __init elevator_setup(char *str)
* Be backwards-compatible with previous kernels, so users
* won't get the wrong elevator.
*/
- strncpy(chosen_elevator, str, sizeof(chosen_elevator) - 1);
+ strlcpy(chosen_elevator, str, sizeof(chosen_elevator));
return 1;
}

--
1.7.10.4


2014-07-28 14:32:55

by Jeff Moyer

[permalink] [raw]
Subject: Re: [PATCH] block: elevator.c: Cleaning up missing null-terminate in conjunction with strncpy

Rickard Strandqvist <[email protected]> writes:

> Replacing strncpy with strlcpy to avoid strings that lacks null terminate.
> And set a string to be empty from the start.
>
> Signed-off-by: Rickard Strandqvist <[email protected]>
> ---
> block/elevator.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/block/elevator.c b/block/elevator.c
> index 24c28b6..ad17774 100644
> --- a/block/elevator.c
> +++ b/block/elevator.c
> @@ -118,7 +118,7 @@ static struct elevator_type *elevator_get(const char *name, bool try_loading)
> return e;
> }
>
> -static char chosen_elevator[ELV_NAME_MAX];
> +static char chosen_elevator[ELV_NAME_MAX] = "";
>
> static int __init elevator_setup(char *str)
> {
> @@ -126,7 +126,7 @@ static int __init elevator_setup(char *str)
> * Be backwards-compatible with previous kernels, so users
> * won't get the wrong elevator.
> */
> - strncpy(chosen_elevator, str, sizeof(chosen_elevator) - 1);
> + strlcpy(chosen_elevator, str, sizeof(chosen_elevator));
> return 1;
> }

NACK. bss is zeroed.