qemu/scsi
Paolo Bonzini ee8c13b814 pr-helper: avoid error on PR IN command with zero request size
After reading a PR IN command with zero request size in prh_read_request,
the resp->result field will be uninitialized and the resp.sz field will
be also uninitialized when returning to prh_co_entry.

If resp->result == GOOD (from a previous successful reply or just luck),
then the assert in prh_write_response might not be triggered and
uninitialized response will be sent.

The fix is to remove the whole handling of sz == 0 in prh_co_entry.
Those errors apply only to PR OUT commands and it's perfectly okay to
catch them later in do_pr_out and multipath_pr_out; the check for
too-short parameters in fact doesn't apply in the easy SG_IO case, as
it can be left to the target firmware even.

The result is that prh_read_request does not fail requests anymore and
prh_co_entry becomes simpler.

Reported-by: Dima Stepanov <dimastep@yandex-team.ru>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2018-07-06 18:39:19 +02:00
..
Makefile.objs pr-manager: put stubs in .c file 2018-06-28 19:05:35 +02:00
pr-helper.h Clean up includes 2018-02-09 05:05:11 +01:00
pr-manager-helper.c pr-manager-helper: report event on connection/disconnection 2018-06-28 19:05:35 +02:00
pr-manager-stub.c pr-manager: add query-pr-managers QMP command 2018-06-28 19:05:35 +02:00
pr-manager.c pr-manager: add query-pr-managers QMP command 2018-06-28 19:05:35 +02:00
qemu-pr-helper.c pr-helper: avoid error on PR IN command with zero request size 2018-07-06 18:39:19 +02:00
trace-events scsi, file-posix: add support for persistent reservation management 2017-09-22 01:06:51 +02:00
utils.c scsi: fix scsi_convert_sense crash when in_buf == NULL && in_len == 0 2018-01-12 09:54:13 +01:00