From 2d9c5e99a191f15ca7d20a8546be922057eb9598 Mon Sep 17 00:00:00 2001 From: Ralph Lange Date: Tue, 15 May 2018 11:17:49 +0200 Subject: [PATCH] db: correctly convert NaN alarm levels to integers (fixes lp #1771298) --- src/db/dbAccess.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/db/dbAccess.c b/src/db/dbAccess.c index ef27afafb..b60594fed 100644 --- a/src/db/dbAccess.c +++ b/src/db/dbAccess.c @@ -297,10 +297,10 @@ static void get_alarm(DBADDR *paddr, char **ppbuffer, if (*options & DBR_AL_LONG) { struct dbr_alLong *pal = (struct dbr_alLong*) pbuffer; - pal->upper_alarm_limit = (epicsInt32) ald.upper_alarm_limit; - pal->upper_warning_limit = (epicsInt32) ald.upper_warning_limit; - pal->lower_warning_limit = (epicsInt32) ald.lower_warning_limit; - pal->lower_alarm_limit = (epicsInt32) ald.lower_alarm_limit; + pal->upper_alarm_limit = isfinite(ald.upper_alarm_limit) ? (epicsInt32) ald.upper_alarm_limit : 0; + pal->upper_warning_limit = isfinite(ald.upper_warning_limit) ? (epicsInt32) ald.upper_warning_limit : 0; + pal->lower_warning_limit = isfinite(ald.lower_warning_limit) ? (epicsInt32) ald.lower_warning_limit : 0; + pal->lower_alarm_limit = isfinite(ald.lower_alarm_limit) ? (epicsInt32) ald.lower_alarm_limit : 0; if (no_data) *options ^= DBR_AL_LONG; /*Turn off option*/