added check for dbPutString to DBF_STRING if string size too long

This commit is contained in:
Marty Kraimer
1996-05-03 14:12:35 +00:00
parent 3e0445f2ad
commit cdd3e932fb
2 changed files with 3 additions and 1 deletions

View File

@@ -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 :

View File

@@ -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*/