diff --git a/src/db/dbAccess.c b/src/db/dbAccess.c index 84eb2f9cf..0fd30e719 100644 --- a/src/db/dbAccess.c +++ b/src/db/dbAccess.c @@ -670,7 +670,7 @@ long dbGetLinkValue(struct link *plink, short dbrType, void *pbuffer, precord->pact = pact; if(status) return(status); } - if(ppv_link->pvlMask&pvlOptMS) + if(ppv_link->pvlMask&pvlOptMS && precord!= paddr->precord) recGblSetSevr(precord,LINK_ALARM,paddr->precord->sevr); if(ppv_link->getCvt && ppv_link->lastGetdbrType==dbrType) { @@ -780,6 +780,7 @@ long dbGetField( DBADDR *paddr,short dbrType,void *pbuffer, } if(options && (*options)) getOptions(paddr,(void **)&pbuf,options,pflin); + if(nRequest && *nRequest==0) goto done; dbInitEntry(pdbbase,&dbEntry); if(status = dbFindRecord(&dbEntry,precord->name)) goto done; if(status = dbFindField(&dbEntry,pfldDes->name)) goto done; diff --git a/src/db/dbLock.c b/src/db/dbLock.c index cb4a5a5dd..a447c34ae 100644 --- a/src/db/dbLock.c +++ b/src/db/dbLock.c @@ -319,6 +319,7 @@ void dbLockSetMerge(dbCommon *pfirst,dbCommon *psecond) lockSet *p1lockSet; lockSet *p2lockSet; + if(pfirst==psecond) return; p1lockSet = p1lockRecord->plockSet; p2lockSet = p2lockRecord->plockSet; if(!p1lockSet) {