Fix cylinder bias stack overrun in XML parsing
PiperOrigin-RevId: 952016771 Change-Id: I49657d41ad96a6bd1f7f9d5e6b6491c5a229d244
This commit is contained in:
committed by
Copybara-Service
parent
0b1ed5b356
commit
d3166cb630
@@ -2619,14 +2619,16 @@ void mjXReader::OneActuator(XMLElement* elem, mjsActuator* actuator) {
|
|||||||
// cylinder
|
// cylinder
|
||||||
else if (type == "cylinder") {
|
else if (type == "cylinder") {
|
||||||
double timeconst = actuator->dynprm[0];
|
double timeconst = actuator->dynprm[0];
|
||||||
double bias = actuator->biasprm[0];
|
double bias[3] = {actuator->biasprm[0], actuator->biasprm[1], actuator->biasprm[2]};
|
||||||
double area = actuator->gainprm[0];
|
double area = actuator->gainprm[0];
|
||||||
double diameter = -1;
|
double diameter = -1;
|
||||||
ReadAttr(elem, "timeconst", 1, &timeconst, text);
|
ReadAttr(elem, "timeconst", 1, &timeconst, text);
|
||||||
ReadAttr(elem, "bias", 3, &bias, text);
|
ReadAttr(elem, "bias", 3, bias, text);
|
||||||
ReadAttr(elem, "area", 1, &area, text);
|
ReadAttr(elem, "area", 1, &area, text);
|
||||||
ReadAttr(elem, "diameter", 1, &diameter, text);
|
ReadAttr(elem, "diameter", 1, &diameter, text);
|
||||||
err = mjs_setToCylinder(actuator, timeconst, bias, area, diameter);
|
err = mjs_setToCylinder(actuator, timeconst, bias[0], area, diameter);
|
||||||
|
actuator->biasprm[1] = bias[1];
|
||||||
|
actuator->biasprm[2] = bias[2];
|
||||||
}
|
}
|
||||||
|
|
||||||
// muscle
|
// muscle
|
||||||
|
|||||||
Reference in New Issue
Block a user