binding: navigation: add missing read lock around afb_event_push() 36/23136/1
authorMatt Ranostay <matt.ranostay@konsulko.com>
Tue, 3 Dec 2019 03:43:44 +0000 (19:43 -0800)
committerMatt Ranostay <matt.ranostay@konsulko.com>
Tue, 3 Dec 2019 04:20:37 +0000 (04:20 +0000)
Add missing read lock around event pushing from value that isn't
required to be cached.

Bug-AGL: SPEC-2880
Change-Id: I7aae2ec9df722fdefcec2d35977251e008375d92
Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
binding/navigation-api.c

index d9ea285..19913a1 100644 (file)
@@ -146,12 +146,22 @@ static void broadcast(afb_req_t request, const char *name, gboolean cache)
                json_object_get(jresp);
                *storage = jresp;
 
+               // increment reference for event
+               json_object_get(jresp);
+               afb_event_push(event, jresp);
+
                g_rw_lock_writer_unlock(&ns->rw_lock);
+
+               return;
        }
 
+       g_rw_lock_reader_lock(&ns->rw_lock);
+
        // increment reference for event
        json_object_get(jresp);
        afb_event_push(event, jresp);
+
+       g_rw_lock_reader_unlock(&ns->rw_lock);
 }
 
 static void broadcast_status(afb_req_t request)