From 36be0aa7834a41dc3d42afdee26e2674e7d1d50e Mon Sep 17 00:00:00 2001 From: Andrew Johnson Date: Fri, 16 Nov 2012 12:40:57 -0600 Subject: [PATCH] rec: Fix minor string in + out issue. Undo strncmp+strncpy to strcmp+strcpy change in r12048. The 'n' versions are needed because device support was never explicitly required to Nil-terminate the string. The dbAccess routines do enforce termination though. --- src/rec/stringinRecord.c | 20 ++++++++++---------- src/rec/stringoutRecord.c | 20 ++++++++++---------- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/src/rec/stringinRecord.c b/src/rec/stringinRecord.c index 7ad30a364..bff03b4fc 100644 --- a/src/rec/stringinRecord.c +++ b/src/rec/stringinRecord.c @@ -156,20 +156,20 @@ static long process(stringinRecord *prec) static void monitor(stringinRecord *prec) { - unsigned short monitor_mask; + int monitor_mask = recGblResetAlarms(prec); - monitor_mask = recGblResetAlarms(prec); - if(strcmp(prec->oval,prec->val)) { - monitor_mask |= DBE_VALUE|DBE_LOG; - strcpy(prec->oval,prec->val); + if (strncmp(prec->oval, prec->val, sizeof(prec->val))) { + monitor_mask |= DBE_VALUE | DBE_LOG; + strncpy(prec->oval, prec->val, sizeof(prec->val)); } + if (prec->mpst == stringinPOST_Always) - monitor_mask |= DBE_VALUE; + monitor_mask |= DBE_VALUE; if (prec->apst == stringinPOST_Always) - monitor_mask |= DBE_LOG; - if(monitor_mask) - db_post_events(prec,&(prec->val[0]),monitor_mask); - return; + monitor_mask |= DBE_LOG; + + if (monitor_mask) + db_post_events(prec, prec->val, monitor_mask); } static long readValue(stringinRecord *prec) diff --git a/src/rec/stringoutRecord.c b/src/rec/stringoutRecord.c index 1f2842e38..1555f5b61 100644 --- a/src/rec/stringoutRecord.c +++ b/src/rec/stringoutRecord.c @@ -184,20 +184,20 @@ static long process(stringoutRecord *prec) static void monitor(stringoutRecord *prec) { - unsigned short monitor_mask; + int monitor_mask = recGblResetAlarms(prec); - monitor_mask = recGblResetAlarms(prec); - if(strcmp(prec->oval,prec->val)) { - monitor_mask |= DBE_VALUE|DBE_LOG; - strcpy(prec->oval,prec->val); + if (strncmp(prec->oval, prec->val, sizeof(prec->val))) { + monitor_mask |= DBE_VALUE | DBE_LOG; + strncpy(prec->oval, prec->val, sizeof(prec->val)); } + if (prec->mpst == stringoutPOST_Always) - monitor_mask |= DBE_VALUE; + monitor_mask |= DBE_VALUE; if (prec->apst == stringoutPOST_Always) - monitor_mask |= DBE_LOG; - if(monitor_mask) - db_post_events(prec,&(prec->val[0]),monitor_mask); - return; + monitor_mask |= DBE_LOG; + + if (monitor_mask) + db_post_events(prec, prec->val, monitor_mask); } static long writeValue(stringoutRecord *prec)