From cdd3e932fb50f7c3c9be8d4ff22160d31c230b58 Mon Sep 17 00:00:00 2001 From: Marty Kraimer Date: Fri, 3 May 1996 14:12:35 +0000 Subject: [PATCH] added check for dbPutString to DBF_STRING if string size too long --- src/dbStatic/dbStaticLib.c | 3 ++- src/dbStatic/dbStaticLib.h | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/dbStatic/dbStaticLib.c b/src/dbStatic/dbStaticLib.c index 2ab8dac87..6214dbd21 100644 --- a/src/dbStatic/dbStaticLib.c +++ b/src/dbStatic/dbStaticLib.c @@ -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 : diff --git a/src/dbStatic/dbStaticLib.h b/src/dbStatic/dbStaticLib.h index 60c08a8ec..b5a93af26 100644 --- a/src/dbStatic/dbStaticLib.h +++ b/src/dbStatic/dbStaticLib.h @@ -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*/