2024-01-10 10:42:08

by Vasiliy Kovalev

[permalink] [raw]
Subject: [PATCH 1/1] misc/vmw_vmci: fix filling of the msg and msg_payload in dg_info struct

From: Vasiliy Kovalev <[email protected]>

Fix "detected field-spanning write" of memcpy warning that is issued by
the tracking mechanism __fortify_memcpy_chk, added 2021-04-20
(f68f2ff91512c199ec24883001245912afc17873 fortify: Detect struct member overflows in memcpy() at compile-time)

Fixes: a110b7ebb9c674 ("VMCI: datagram implementation.")
Signed-off-by: Vasiliy Kovalev <[email protected]>
---
drivers/misc/vmw_vmci/vmci_datagram.c | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/drivers/misc/vmw_vmci/vmci_datagram.c b/drivers/misc/vmw_vmci/vmci_datagram.c
index f50d22882476f9..27853b31e288b1 100644
--- a/drivers/misc/vmw_vmci/vmci_datagram.c
+++ b/drivers/misc/vmw_vmci/vmci_datagram.c
@@ -234,7 +234,10 @@ static int dg_dispatch_as_host(u32 context_id, struct vmci_datagram *dg)

dg_info->in_dg_host_queue = true;
dg_info->entry = dst_entry;
- memcpy(&dg_info->msg, dg, dg_size);
+ memcpy(&dg_info->msg, dg, VMCI_DG_HEADERSIZE);
+ if (dg->payload_size) {
+ memcpy(dg_info->msg_payload, VMCI_DG_PAYLOAD(dg), dg->payload_size);
+ }

INIT_WORK(&dg_info->work, dg_delayed_dispatch);
schedule_work(&dg_info->work);
@@ -377,7 +380,10 @@ int vmci_datagram_invoke_guest_handler(struct vmci_datagram *dg)

dg_info->in_dg_host_queue = false;
dg_info->entry = dst_entry;
- memcpy(&dg_info->msg, dg, VMCI_DG_SIZE(dg));
+ memcpy(&dg_info->msg, dg, VMCI_DG_HEADERSIZE);
+ if (dg->payload_size) {
+ memcpy(dg_info->msg_payload, VMCI_DG_PAYLOAD(dg), dg->payload_size);
+ }

INIT_WORK(&dg_info->work, dg_delayed_dispatch);
schedule_work(&dg_info->work);
--
2.33.8



2024-01-10 10:55:08

by Greg Kroah-Hartman

[permalink] [raw]
Subject: Re: [PATCH 1/1] misc/vmw_vmci: fix filling of the msg and msg_payload in dg_info struct

On Wed, Jan 10, 2024 at 01:40:42PM +0300, [email protected] wrote:
> From: Vasiliy Kovalev <[email protected]>
>
> Fix "detected field-spanning write" of memcpy warning that is issued by
> the tracking mechanism __fortify_memcpy_chk, added 2021-04-20
> (f68f2ff91512c199ec24883001245912afc17873 fortify: Detect struct member overflows in memcpy() at compile-time)

Please properly quote commits.

> Fixes: a110b7ebb9c674 ("VMCI: datagram implementation.")

It's not really a bug to be "fixed", right? It's just a "shut up the
fortify checkers with this false-positive" type of thing.

Again, see the thread I pointed you at for this same discussion.

thanks,

greg k-h

2024-01-10 11:00:26

by Greg Kroah-Hartman

[permalink] [raw]
Subject: Re: [PATCH 1/1] misc/vmw_vmci: fix filling of the msg and msg_payload in dg_info struct

On Wed, Jan 10, 2024 at 01:40:42PM +0300, [email protected] wrote:
> From: Vasiliy Kovalev <[email protected]>
>
> Fix "detected field-spanning write" of memcpy warning that is issued by
> the tracking mechanism __fortify_memcpy_chk, added 2021-04-20
> (f68f2ff91512c199ec24883001245912afc17873 fortify: Detect struct member overflows in memcpy() at compile-time)
>
> Fixes: a110b7ebb9c674 ("VMCI: datagram implementation.")
> Signed-off-by: Vasiliy Kovalev <[email protected]>
> ---
> drivers/misc/vmw_vmci/vmci_datagram.c | 10 ++++++++--
> 1 file changed, 8 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/misc/vmw_vmci/vmci_datagram.c b/drivers/misc/vmw_vmci/vmci_datagram.c
> index f50d22882476f9..27853b31e288b1 100644
> --- a/drivers/misc/vmw_vmci/vmci_datagram.c
> +++ b/drivers/misc/vmw_vmci/vmci_datagram.c
> @@ -234,7 +234,10 @@ static int dg_dispatch_as_host(u32 context_id, struct vmci_datagram *dg)
>
> dg_info->in_dg_host_queue = true;
> dg_info->entry = dst_entry;
> - memcpy(&dg_info->msg, dg, dg_size);
> + memcpy(&dg_info->msg, dg, VMCI_DG_HEADERSIZE);
> + if (dg->payload_size) {
> + memcpy(dg_info->msg_payload, VMCI_DG_PAYLOAD(dg), dg->payload_size);
> + }
>
> INIT_WORK(&dg_info->work, dg_delayed_dispatch);
> schedule_work(&dg_info->work);
> @@ -377,7 +380,10 @@ int vmci_datagram_invoke_guest_handler(struct vmci_datagram *dg)
>
> dg_info->in_dg_host_queue = false;
> dg_info->entry = dst_entry;
> - memcpy(&dg_info->msg, dg, VMCI_DG_SIZE(dg));
> + memcpy(&dg_info->msg, dg, VMCI_DG_HEADERSIZE);
> + if (dg->payload_size) {
> + memcpy(dg_info->msg_payload, VMCI_DG_PAYLOAD(dg), dg->payload_size);
> + }
>
> INIT_WORK(&dg_info->work, dg_delayed_dispatch);
> schedule_work(&dg_info->work);
> --
> 2.33.8
>

Hi,

This is the friendly patch-bot of Greg Kroah-Hartman. You have sent him
a patch that has triggered this response. He used to manually respond
to these common problems, but in order to save his sanity (he kept
writing the same thing over and over, yet to different people), I was
created. Hopefully you will not take offence and will fix the problem
in your patch and resubmit it so that it can be accepted into the Linux
kernel tree.

You are receiving this message because of the following common error(s)
as indicated below:

- Your patch contains warnings and/or errors noticed by the
scripts/checkpatch.pl tool.

If you wish to discuss this problem further, or you have questions about
how to resolve this issue, please feel free to respond to this email and
Greg will reply once he has dug out from the pending patches received
from other developers.

thanks,

greg k-h's patch email bot