Code

strbuf: Free memory when it's not longer needed.
[sysdb.git] / src / core / store.c
index fd08de9101272dfafa7e7b0e6f8e4dbe1d626675..6d9c971702b4e696ca14991eb2ea4f4e4716413c 100644 (file)
@@ -295,11 +295,13 @@ store_obj(int parent_type, const char *parent_name,
                else {
                        sdb_time_t interval = last_update - old->last_update;
                        old->last_update = last_update;
-                       if (old->interval)
-                               old->interval = (sdb_time_t)((0.9 * (double)old->interval)
-                                               + (0.1 * (double)interval));
-                       else
-                               old->interval = interval;
+                       if (interval) {
+                               if (old->interval)
+                                       old->interval = (sdb_time_t)((0.9 * (double)old->interval)
+                                                       + (0.1 * (double)interval));
+                               else
+                                       old->interval = interval;
+                       }
                }
 
                if (updated_obj)
@@ -479,6 +481,7 @@ sdb_store_attribute(const char *hostname,
 
        if (status >= 0) {
                assert(updated_attr);
+               sdb_data_free_datum(&SDB_ATTR(updated_attr)->value);
                if (sdb_data_copy(&SDB_ATTR(updated_attr)->value, value)) {
                        sdb_object_deref(SDB_OBJ(updated_attr));
                        status = -1;