=== modified file 'src/ioc/dbStatic/dbStaticLib.c' --- src/ioc/dbStatic/dbStaticLib.c 2015-10-13 19:41:39 +0000 +++ src/ioc/dbStatic/dbStaticLib.c 2016-03-30 16:26:53 +0000 @@ -2051,7 +2051,10 @@ switch (pflddes->field_type) { case DBF_STRING: if(!pfield) return(S_dbLib_fieldNotFound); - strncpy((char *)pfield, pstring,pflddes->size); + if(strlen(pstring) >= (size_t)pflddes->size) return S_dbLib_strLen; + strncpy((char *)pfield, pstring, pflddes->size-1); + ((char *)pfield)[pflddes->size-1] = 0; + if((pflddes->special == SPC_CALC) && !stringHasMacro) { char rpcl[RPCL_LEN]; short err; @@ -2062,7 +2065,6 @@ calcErrorStr(err), pstring); } } - if((short)strlen(pstring) >= pflddes->size) status = S_dbLib_strLen; break; case DBF_CHAR: