Commit f15e006b authored by Dominique Martinet's avatar Dominique Martinet

9p/xen: do not memcpy header into req->rc

while 'h' is packed and can be assumed to match the request payload,
req->rc is a struct p9_fcall which is not packed and that memcpy
could be wrong.

Fix this by copying each fields individually instead.
Reported-by: default avatarChristian Schoenebeck <linux_oss@crudebyte.com>
Reviewed-by: default avatarChristian Schoenebeck <linux_oss@crudebyte.com>
Suggested-by: default avatarStefano Stabellini <sstabellini@kernel.org>
Reviewed-by: default avatarStefano Stabellini <sstabellini@kernel.org>
Link: https://lkml.kernel.org/r/alpine.DEB.2.22.394.2211211454540.1049131@ubuntu-linux-20-04-desktop
Link: https://lkml.kernel.org/r/20221122001025.119121-1-asmadeus@codewreck.orgSigned-off-by: default avatarDominique Martinet <asmadeus@codewreck.org>
parent 26273ade
...@@ -216,7 +216,9 @@ static void p9_xen_response(struct work_struct *work) ...@@ -216,7 +216,9 @@ static void p9_xen_response(struct work_struct *work)
goto recv_error; goto recv_error;
} }
memcpy(&req->rc, &h, sizeof(h)); req->rc.size = h.size;
req->rc.id = h.id;
req->rc.tag = h.tag;
req->rc.offset = 0; req->rc.offset = 0;
masked_cons = xen_9pfs_mask(cons, XEN_9PFS_RING_SIZE(ring)); masked_cons = xen_9pfs_mask(cons, XEN_9PFS_RING_SIZE(ring));
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment