Fixed segfault if an axis is misconfigured (i.e. is not a sinqAxis
This commit is contained in:
@@ -439,10 +439,12 @@ asynStatus sinqController::writeInt32(asynUser *pasynUser, epicsInt32 value) {
|
|||||||
|
|
||||||
sinqAxis *axis = getSinqAxis(pasynUser);
|
sinqAxis *axis = getSinqAxis(pasynUser);
|
||||||
if (axis == nullptr) {
|
if (axis == nullptr) {
|
||||||
|
int axisNo;
|
||||||
|
getAddress(pasynUser, &axisNo);
|
||||||
asynPrint(this->pasynUserSelf, ASYN_TRACE_ERROR,
|
asynPrint(this->pasynUserSelf, ASYN_TRACE_ERROR,
|
||||||
"Controller \"%s\", axis %d => %s, line %d:\nAxis is not an "
|
"Controller \"%s\", axis %d => %s, line %d:\nAxis is not an "
|
||||||
"instance of sinqAxis",
|
"instance of sinqAxis",
|
||||||
portName, axis->axisNo(), __PRETTY_FUNCTION__, __LINE__);
|
portName, axisNo, __PRETTY_FUNCTION__, __LINE__);
|
||||||
return asynError;
|
return asynError;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -462,10 +464,12 @@ asynStatus sinqController::readInt32(asynUser *pasynUser, epicsInt32 *value) {
|
|||||||
|
|
||||||
sinqAxis *axis = getSinqAxis(pasynUser);
|
sinqAxis *axis = getSinqAxis(pasynUser);
|
||||||
if (axis == nullptr) {
|
if (axis == nullptr) {
|
||||||
|
int axisNo;
|
||||||
|
getAddress(pasynUser, &axisNo);
|
||||||
asynPrint(this->pasynUserSelf, ASYN_TRACE_ERROR,
|
asynPrint(this->pasynUserSelf, ASYN_TRACE_ERROR,
|
||||||
"Controller \"%s\", axis %d => %s, line %d:\nAxis is not an "
|
"Controller \"%s\", axis %d => %s, line %d:\nAxis is not an "
|
||||||
"instance of sinqAxis",
|
"instance of sinqAxis",
|
||||||
portName, axis->axisNo(), __PRETTY_FUNCTION__, __LINE__);
|
portName, axisNo, __PRETTY_FUNCTION__, __LINE__);
|
||||||
return asynError;
|
return asynError;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -495,7 +499,7 @@ asynStatus sinqController::couldNotParseResponse(const char *command,
|
|||||||
asynPrint(this->pasynUserSelf, ASYN_TRACE_ERROR,
|
asynPrint(this->pasynUserSelf, ASYN_TRACE_ERROR,
|
||||||
"Controller \"%s\", axis %d => %s, line %d:\nAxis is not an "
|
"Controller \"%s\", axis %d => %s, line %d:\nAxis is not an "
|
||||||
"instance of sinqAxis",
|
"instance of sinqAxis",
|
||||||
portName, axis->axisNo(), __PRETTY_FUNCTION__, __LINE__);
|
portName, axisNo, __PRETTY_FUNCTION__, __LINE__);
|
||||||
return asynError;
|
return asynError;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user