From e234d05815c9a8e0e1165d7b6fad87be7b17e46d Mon Sep 17 00:00:00 2001 From: smathis Date: Tue, 23 Dec 2025 11:42:46 +0100 Subject: [PATCH] Fixed segfault if an axis is misconfigured (i.e. is not a sinqAxis --- src/sinqController.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/sinqController.cpp b/src/sinqController.cpp index 45688a9..03f4324 100644 --- a/src/sinqController.cpp +++ b/src/sinqController.cpp @@ -439,10 +439,12 @@ asynStatus sinqController::writeInt32(asynUser *pasynUser, epicsInt32 value) { sinqAxis *axis = getSinqAxis(pasynUser); if (axis == nullptr) { + int axisNo; + getAddress(pasynUser, &axisNo); asynPrint(this->pasynUserSelf, ASYN_TRACE_ERROR, "Controller \"%s\", axis %d => %s, line %d:\nAxis is not an " "instance of sinqAxis", - portName, axis->axisNo(), __PRETTY_FUNCTION__, __LINE__); + portName, axisNo, __PRETTY_FUNCTION__, __LINE__); return asynError; } @@ -462,10 +464,12 @@ asynStatus sinqController::readInt32(asynUser *pasynUser, epicsInt32 *value) { sinqAxis *axis = getSinqAxis(pasynUser); if (axis == nullptr) { + int axisNo; + getAddress(pasynUser, &axisNo); asynPrint(this->pasynUserSelf, ASYN_TRACE_ERROR, "Controller \"%s\", axis %d => %s, line %d:\nAxis is not an " "instance of sinqAxis", - portName, axis->axisNo(), __PRETTY_FUNCTION__, __LINE__); + portName, axisNo, __PRETTY_FUNCTION__, __LINE__); return asynError; } @@ -495,7 +499,7 @@ asynStatus sinqController::couldNotParseResponse(const char *command, asynPrint(this->pasynUserSelf, ASYN_TRACE_ERROR, "Controller \"%s\", axis %d => %s, line %d:\nAxis is not an " "instance of sinqAxis", - portName, axis->axisNo(), __PRETTY_FUNCTION__, __LINE__); + portName, axisNo, __PRETTY_FUNCTION__, __LINE__); return asynError; }