json_object returned from get_storage_from_value() needs to be protected
within the write lock. This is to prevent reentrant calls to broadcast() from
accessing it, and running json_object_put()
Bug-AGL: SPEC-2880
Change-Id: I9fdf614728368c75e925e4c5a0f3ca19a7e517e1
Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
json_object *jresp = afb_req_json(request);
if (cache) {
- json_object **storage = get_storage_from_value(ns, name);
+ json_object **storage;
g_rw_lock_writer_lock(&ns->rw_lock);
+ storage = get_storage_from_value(ns, name);
+
if (*storage)
json_object_put(*storage);