Re: [PATCH] kmemleak: avoid buffer overrun: NUL-terminatestrncpy-copied command

From: Catalin Marinas
Date: Fri Aug 24 2012 - 06:27:59 EST


On Mon, Aug 20, 2012 at 05:55:22PM +0100, Jim Meyering wrote:
> From: Jim Meyering <meyering@xxxxxxxxxx>
>
> strncpy NUL-terminates only when the length of the source string
> is smaller than the size of the destination buffer.
> The two other strncpy uses (just preceding) happen to be ok
> with the current TASK_COMM_LEN (16), because the literals
> "hardirq" and "softirq" are both shorter than 16. However,
> technically it'd be better to use strcpy along with a
> compile-time assertion that they fit in the buffer.
>
> Signed-off-by: Jim Meyering <meyering@xxxxxxxxxx>
> ---
> mm/kmemleak.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/mm/kmemleak.c b/mm/kmemleak.c
> index 45eb621..947257f 100644
> --- a/mm/kmemleak.c
> +++ b/mm/kmemleak.c
> @@ -555,6 +555,7 @@ static struct kmemleak_object *create_object(unsigned long ptr, size_t size,
> * case, the command line is not correct.
> */
> strncpy(object->comm, current->comm, sizeof(object->comm));
> + object->comm[sizeof(object->comm) - 1] = 0;

Does it really matter here? object->comm[] and current->comm[] have the
same size, TASK_COMM_LEN.

--
Catalin
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/