2014-07-26 14:29:23

by Rickard Strandqvist

[permalink] [raw]
Subject: [PATCH] s390: char: sclp_async.c: Cleaning up missing null-terminate in conjunction with strncpy

Replacing strncpy with strlcpy to avoid strings that lacks null terminate.

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

diff --git a/drivers/s390/char/sclp_async.c b/drivers/s390/char/sclp_async.c
index 5f9f929..585de0a 100644
--- a/drivers/s390/char/sclp_async.c
+++ b/drivers/s390/char/sclp_async.c
@@ -132,12 +132,12 @@ static int sclp_async_send_wait(char *message)
request->command = SCLP_CMDW_WRITE_EVENT_DATA;
request->sccb = sccb;
request->status = SCLP_REQ_FILLED;
- strncpy(sccb->evbuf.data, message, sizeof(sccb->evbuf.data));
+ strlcpy(sccb->evbuf.data, message, sizeof(sccb->evbuf.data));
/*
* Retain Queue
* e.g. 5639CC140 500 Red Hat RHEL5 Linux for zSeries (RHEL AS)
*/
- strncpy(sccb->evbuf.comp_id, "000000000", sizeof(sccb->evbuf.comp_id));
+ strlcpy(sccb->evbuf.comp_id, "000000000", sizeof(sccb->evbuf.comp_id));
sccb->evbuf.header.length = sizeof(sccb->evbuf);
sccb->header.length = sizeof(sccb->evbuf) + sizeof(sccb->header);
sccb->header.function_code = SCLP_NORMAL_WRITE;
--
1.7.10.4


2014-07-28 19:00:19

by Heiko Carstens

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

On Sat, Jul 26, 2014 at 04:30:47PM +0200, Rickard Strandqvist wrote:
> Replacing strncpy with strlcpy to avoid strings that lacks null terminate.
>
> Signed-off-by: Rickard Strandqvist <[email protected]>
> ---
> drivers/s390/char/sclp_async.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/s390/char/sclp_async.c b/drivers/s390/char/sclp_async.c
> index 5f9f929..585de0a 100644
> --- a/drivers/s390/char/sclp_async.c
> +++ b/drivers/s390/char/sclp_async.c
> @@ -132,12 +132,12 @@ static int sclp_async_send_wait(char *message)
> request->command = SCLP_CMDW_WRITE_EVENT_DATA;
> request->sccb = sccb;
> request->status = SCLP_REQ_FILLED;
> - strncpy(sccb->evbuf.data, message, sizeof(sccb->evbuf.data));
> + strlcpy(sccb->evbuf.data, message, sizeof(sccb->evbuf.data));

Do your patches actually fix any bugs? E.g. this line fills a hardware data
structure, which must not necessarily be null terminated. Actually you even
could have introduced a bug here.
So, please state which of your patches actually do fix bugs.