From 2d9012ea413e3bce98f4f616a875a1a21cccbb81 Mon Sep 17 00:00:00 2001
From: Matt Ranostay <matt.ranostay@konsulko.com>
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 <matt.ranostay@konsulko.com>
---
 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)
-- 
GitLab