From: Matt Ranostay Date: Tue, 3 Dec 2019 03:43:44 +0000 (-0800) Subject: binding: navigation: add missing read lock around afb_event_push() X-Git-Tag: 8.99.2~1 X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=commitdiff_plain;h=2d9012ea413e3bce98f4f616a875a1a21cccbb81;p=apps%2Fagl-service-navigation.git 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 --- 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)