mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-02-01 17:35:17 +00:00
Read SCSI address attributes bus, target, unit as positive integer
The SCSI address element attributes bus, target, and unit are expected to be positive values, so make sure no one provides a negative value since the value is stored as an unsigned. Signed-off-by: Eric Farman <farman@linux.vnet.ibm.com>
This commit is contained in:
parent
40783db3f9
commit
f714f52882
@ -5024,20 +5024,20 @@ virDomainHostdevSubsysSCSIHostDefParseXML(xmlNodePtr sourcenode,
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
if (virStrToLong_ui(bus, NULL, 0, &scsihostsrc->bus) < 0) {
|
||||
if (virStrToLong_uip(bus, NULL, 0, &scsihostsrc->bus) < 0) {
|
||||
virReportError(VIR_ERR_INTERNAL_ERROR,
|
||||
_("cannot parse bus '%s'"), bus);
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
if (virStrToLong_ui(target, NULL, 0,
|
||||
if (virStrToLong_uip(target, NULL, 0,
|
||||
&scsihostsrc->target) < 0) {
|
||||
virReportError(VIR_ERR_INTERNAL_ERROR,
|
||||
_("cannot parse target '%s'"), target);
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
if (virStrToLong_ui(unit, NULL, 0, &scsihostsrc->unit) < 0) {
|
||||
if (virStrToLong_uip(unit, NULL, 0, &scsihostsrc->unit) < 0) {
|
||||
virReportError(VIR_ERR_INTERNAL_ERROR,
|
||||
_("cannot parse unit '%s'"), unit);
|
||||
goto cleanup;
|
||||
|
@ -480,15 +480,15 @@ static int str2SCSIAddress(const char *str, struct SCSIAddress *scsiAddr)
|
||||
|
||||
controller = (char *)str;
|
||||
|
||||
if (virStrToLong_ui(controller, &bus, 0, &scsiAddr->controller) != 0)
|
||||
if (virStrToLong_uip(controller, &bus, 0, &scsiAddr->controller) != 0)
|
||||
return -1;
|
||||
|
||||
bus++;
|
||||
if (virStrToLong_ui(bus, &unit, 0, &scsiAddr->bus) != 0)
|
||||
if (virStrToLong_uip(bus, &unit, 0, &scsiAddr->bus) != 0)
|
||||
return -1;
|
||||
|
||||
unit++;
|
||||
if (virStrToLong_ui(unit, NULL, 0, &scsiAddr->unit) != 0)
|
||||
if (virStrToLong_uip(unit, NULL, 0, &scsiAddr->unit) != 0)
|
||||
return -1;
|
||||
|
||||
return 0;
|
||||
|
Loading…
x
Reference in New Issue
Block a user