fixed server crash when reconciling table DCI data with agent
authorVictor Kirhenshtein <victor@netxms.org>
Wed, 25 May 2016 20:39:27 +0000 (23:39 +0300)
committerVictor Kirhenshtein <victor@netxms.org>
Wed, 25 May 2016 20:39:27 +0000 (23:39 +0300)
src/server/core/dctable.cpp

index 16d32ed..214094e 100644 (file)
@@ -339,6 +339,8 @@ bool DCTable::processNewValue(time_t timestamp, const void *value, bool *updateS
        UINT32 nodeId = m_owner->getId();
    bool save = (m_flags & DCF_NO_STORAGE) == 0;
 
        UINT32 nodeId = m_owner->getId();
    bool save = (m_flags & DCF_NO_STORAGE) == 0;
 
+   ((Table *)value)->incRefCount();
+
    unlock();
 
        // Save data to database
    unlock();
 
        // Save data to database
@@ -438,6 +440,7 @@ bool DCTable::processNewValue(time_t timestamp, const void *value, bool *updateS
    if (g_flags & AF_PERFDATA_STORAGE_DRIVER_LOADED)
       PerfDataStorageRequest(this, timestamp, (Table *)value);
 
    if (g_flags & AF_PERFDATA_STORAGE_DRIVER_LOADED)
       PerfDataStorageRequest(this, timestamp, (Table *)value);
 
+   ((Table *)value)->decRefCount();
    return true;
 }
 
    return true;
 }