diff --git a/src/libs/zbxpreproc/pp_protocol.c b/src/libs/zbxpreproc/pp_protocol.c index 822eb4ed4b8..5595846ebed 100644 --- a/src/libs/zbxpreproc/pp_protocol.c +++ b/src/libs/zbxpreproc/pp_protocol.c @@ -1171,6 +1171,13 @@ void zbx_preprocess_item_value(zbx_uint64_t itemid, unsigned char item_value_typ else if (ZBX_ISSET_DBL(result) || ZBX_ISSET_UI64(result)) { /* double and uint are valid JSON and do not require limit checks */ + /* except when double is NaN */ + if (ZBX_ISSET_DBL(result) && FAIL == zbx_validate_value_dbl(result->dbl)) + { + state = ITEM_STATE_NOTSUPPORTED; + error = zbx_strdup(NULL, "NaN is not a valid JSON"); + } + zbx_dc_add_history(itemid, item_value_type, item_flags, result, ts, state, error); goto out; }