From 146520d0356fd307cc8cfe7c9bccc7e89b39dc15 Mon Sep 17 00:00:00 2001 From: Andrew Johnson Date: Mon, 21 May 2012 15:43:03 -0500 Subject: [PATCH] dbStatic: Fix dbReportDeviceConfig() overflow. Reported by Hinko Kocevar. --- src/dbStatic/dbStaticLib.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/dbStatic/dbStaticLib.c b/src/dbStatic/dbStaticLib.c index 18bad3d59..247240f25 100644 --- a/src/dbStatic/dbStaticLib.c +++ b/src/dbStatic/dbStaticLib.c @@ -4059,12 +4059,12 @@ void epicsShareAPI dbReportDeviceConfig(dbBase *pdbbase,FILE *report) DBENTRY dbentry; DBENTRY *pdbentry=&dbentry; long status; - char busName[40]; - char linkValue[40]; - char dtypValue[40]; + char linkValue[messagesize]; + char dtypValue[50]; char cvtValue[40]; int ilink,nlinks; struct link *plink; + int linkType; FILE *stream = (report==0) ? stdout : report; if(!pdbbase) { @@ -4081,8 +4081,8 @@ void epicsShareAPI dbReportDeviceConfig(dbBase *pdbbase,FILE *report) status = dbGetLinkField(pdbentry,ilink); if(status || dbGetLinkType(pdbentry)!=DCT_LINK_FORM) continue; plink = pdbentry->pfield; - strcpy(busName,bus[plink->type]); - if(strlen(busName)==0) continue; + linkType = plink->type; + if(bus[linkType][0]==0) continue; strcpy(linkValue,dbGetString(pdbentry)); status = dbFindField(pdbentry,"DTYP"); if(status) break; @@ -4106,7 +4106,7 @@ void epicsShareAPI dbReportDeviceConfig(dbBase *pdbbase,FILE *report) } } fprintf(stream,"%-8s %-20s %-20s %-20s %-s\n", - busName,linkValue,dtypValue, + bus[linkType],linkValue,dtypValue, dbGetRecordName(pdbentry),cvtValue); break; }