summaryrefslogtreecommitdiffstats
path: root/meta-oe/recipes-navigation/gpsd/gpsd/0001-gps_shm_close-Free-privdata.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-oe/recipes-navigation/gpsd/gpsd/0001-gps_shm_close-Free-privdata.patch')
-rw-r--r--meta-oe/recipes-navigation/gpsd/gpsd/0001-gps_shm_close-Free-privdata.patch37
1 files changed, 37 insertions, 0 deletions
diff --git a/meta-oe/recipes-navigation/gpsd/gpsd/0001-gps_shm_close-Free-privdata.patch b/meta-oe/recipes-navigation/gpsd/gpsd/0001-gps_shm_close-Free-privdata.patch
new file mode 100644
index 000000000..9b3801580
--- /dev/null
+++ b/meta-oe/recipes-navigation/gpsd/gpsd/0001-gps_shm_close-Free-privdata.patch
@@ -0,0 +1,37 @@
1From 2a4b3bcde0d73a3a4a6644d5f944ac9d16023ba9 Mon Sep 17 00:00:00 2001
2From: Adrian Bunk <bunk@stusta.de>
3Date: Mon, 21 Oct 2019 13:53:25 +0300
4Subject: gps_shm_close: Free privdata
5
6Previously every open/close cycle leaked privdata.
7
8Signed-off-by: Adrian Bunk <bunk@stusta.de>
9Signed-off-by: Gary E. Miller <gem@rellim.com>
10
11Upstream-Status: Backport
12---
13 libgps_shm.c | 8 ++++++--
14 1 file changed, 6 insertions(+), 2 deletions(-)
15
16diff --git a/libgps_shm.c b/libgps_shm.c
17index d93972bba..12bb3760b 100644
18--- a/libgps_shm.c
19+++ b/libgps_shm.c
20@@ -163,8 +163,12 @@ int gps_shm_read(struct gps_data_t *gpsdata)
21
22 void gps_shm_close(struct gps_data_t *gpsdata)
23 {
24- if (PRIVATE(gpsdata) && PRIVATE(gpsdata)->shmseg != NULL)
25- (void)shmdt((const void *)PRIVATE(gpsdata)->shmseg);
26+ if (PRIVATE(gpsdata)) {
27+ if (PRIVATE(gpsdata)->shmseg != NULL)
28+ (void)shmdt((const void *)PRIVATE(gpsdata)->shmseg);
29+ free(PRIVATE(gpsdata));
30+ gpsdata->privdata = NULL;
31+ }
32 }
33
34 int gps_shm_mainloop(struct gps_data_t *gpsdata, int timeout,
35--
362.20.1
37