From 2d9012ea413e3bce98f4f616a875a1a21cccbb81 Mon Sep 17 00:00:00 2001 From: Matt Ranostay Date: Mon, 2 Dec 2019 19:43:44 -0800 Subject: [PATCH] binding: navigation: add missing read lock around afb_event_push() 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 --- binding/navigation-api.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/binding/navigation-api.c b/binding/navigation-api.c index d9ea285..19913a1 100644 --- a/binding/navigation-api.c +++ b/binding/navigation-api.c @@ -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) -- 2.16.6