virgl/vtest: fix memory overwrite problem in virgl_vtest_send_get_caps()

Signed-off-by: Feng Jiang <jiangfeng@kylinos.cn>
(cherry picked from commit 060936fe0d)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18071>
This commit is contained in:
Feng Jiang 2022-08-05 10:09:44 +08:00 committed by Marge Bot
parent 94c771bcdb
commit 5383fd12d2

View file

@ -253,8 +253,13 @@ int virgl_vtest_send_get_caps(struct virgl_vtest_winsys *vws,
ret = virgl_block_read(vws->sock_fd, &caps->caps, resp_size);
if (dummy_size)
ret = virgl_block_read(vws->sock_fd, &dummy, dummy_size);
while (dummy_size) {
ret = virgl_block_read(vws->sock_fd, &dummy,
dummy_size < sizeof(dummy) ? dummy_size : sizeof(dummy));
if (ret <= 0)
break;
dummy_size -= ret;
}
/* now read back the pointless caps v1 we requested */
ret = virgl_block_read(vws->sock_fd, resp_buf, sizeof(resp_buf));