diff --git a/src/core/store.c b/src/core/store.c
index 587c527a5185699efe18d104d65f499c12801145..cf4d4a40a9a700d3d50b2ccd38edb6e5bbe6fb47 100644 (file)
--- a/src/core/store.c
+++ b/src/core/store.c
/* stored object = */ SDB_ATTRIBUTE, key, last_update,
&updated_attr);
- SDB_ATTR(updated_attr)->value = strdup(value);
- if (! SDB_ATTR(updated_attr)->value) {
- sdb_object_deref(SDB_OBJ(updated_attr));
- status = -1;
+ if (status >= 0) {
+ assert(updated_attr);
+ SDB_ATTR(updated_attr)->value = strdup(value);
+ if (! SDB_ATTR(updated_attr)->value) {
+ sdb_object_deref(SDB_OBJ(updated_attr));
+ status = -1;
+ }
}
+
pthread_rwlock_unlock(&obj_lock);
return status;
} /* sdb_store_attribute */
}
sdb_llist_iter_destroy(svc_iter);
- sdb_strbuf_append(buf, "]}");
+ sdb_strbuf_append(buf, "]},");
}
sdb_strbuf_append(buf, "]}");