added check for dbPutString to DBF_STRING if string size too long
This commit is contained in:
@@ -165,9 +165,9 @@ static long checkDevChoice(DBENTRY *pdbentry, long link_type)
|
||||
status = S_dbLib_badField;
|
||||
goto clean_up;
|
||||
}
|
||||
plink->type = link_type;
|
||||
if(plink->type==CONSTANT) free((void *)plink->value.constantStr);
|
||||
memset((char *)plink,0,sizeof(struct link));
|
||||
plink->type = link_type;
|
||||
switch(plink->type) {
|
||||
case VME_IO: plink->value.vmeio.parm = pNullString; break;
|
||||
case CAMAC_IO: plink->value.camacio.parm = pNullString; break;
|
||||
@@ -1470,6 +1470,7 @@ long dbPutString(DBENTRY *pdbentry,char *pstring)
|
||||
status = postfix(pstring,rpcl,&error_number);
|
||||
if(status) status = S_dbLib_badField;
|
||||
}
|
||||
if((short)strlen(pstring) >= pflddes->size) status = S_dbLib_strLen;
|
||||
break;
|
||||
case DBF_CHAR :
|
||||
case DBF_SHORT :
|
||||
|
||||
@@ -193,4 +193,5 @@ extern int dbStaticDebug;
|
||||
#define S_dbLib_badLink (M_dbLib|15) /*Bad Link Field*/
|
||||
#define S_dbLib_nameLength (M_dbLib|17) /*Record Name is too long*/
|
||||
#define S_dbLib_noRecSup (M_dbLib|19) /*Record support not found*/
|
||||
#define S_dbLib_strLen (M_dbLib|21) /*String is too long*/
|
||||
#endif /*INCdbStaticLibh*/
|
||||
|
||||
Reference in New Issue
Block a user