diff --git a/src/ioc/db/dbCa.c b/src/ioc/db/dbCa.c index 65a8327cf..843fbfc0c 100644 --- a/src/ioc/db/dbCa.c +++ b/src/ioc/db/dbCa.c @@ -703,7 +703,12 @@ static long doLocked(struct link *plink, dbLinkUserCallback rtn, void *priv) caLink *pca; long status; - pcaGetCheck + assert(plink); + if (plink->type != CA_LINK) return -1; + pca = (caLink *)plink->value.pv_link.pvt; + assert(pca); + epicsMutexMustLock(pca->lock); + assert(pca->plink); status = rtn(plink, priv); epicsMutexUnlock(pca->lock); return status; diff --git a/src/std/rec/test/regressTest.c b/src/std/rec/test/regressTest.c index 0c68f7ffb..661463984 100644 --- a/src/std/rec/test/regressTest.c +++ b/src/std/rec/test/regressTest.c @@ -133,10 +133,8 @@ void testCADisconn(void) startRegressTestIoc("badCaLink.db"); testdbPutFieldOk("ai:disconn.PROC", DBF_LONG, 1); - testTodoBegin("lp:1798855"); testdbGetFieldEqual("ai:disconn.SEVR", DBF_LONG, INVALID_ALARM); testdbGetFieldEqual("ai:disconn.STAT", DBF_LONG, LINK_ALARM); - testTodoEnd(); }