Hi, How did you find all those issues, Max? First patch is something that I missed out from the SCSI spec (ordering of the VPD pages) and could have been detected by code inspection, but I am curious about the other fixes.
Thanks, Daniel On 10/29/18 2:34 PM, Paolo Bonzini wrote:
scsi-generic (pass through) devices are able to inject an artificial Block Limits VPD page in order to communicate host HBA limits to the guest. However, Max Reitz found a few issues with the implementation of this feature; this series should fix them all. Paolo Paolo Bonzini (4): scsi-generic: keep VPD page list sorted scsi-generic: avoid out-of-bounds access to VPD page list scsi-generic: avoid invalid access to struct when emulating block limits scsi-generic: do not do VPD emulation for sense other than ILLEGAL_REQUEST hw/scsi/Makefile.objs | 2 +- hw/scsi/emulation.c | 42 +++++++++++++++++ hw/scsi/scsi-disk.c | 92 ++++++++----------------------------- hw/scsi/scsi-generic.c | 51 +++++++++++++++----- include/hw/scsi/emulation.h | 16 +++++++ include/hw/scsi/scsi.h | 1 - 6 files changed, 119 insertions(+), 85 deletions(-) create mode 100644 hw/scsi/emulation.c create mode 100644 include/hw/scsi/emulation.h