diff options
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.patch | 37 |
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 @@ | |||
1 | From 2a4b3bcde0d73a3a4a6644d5f944ac9d16023ba9 Mon Sep 17 00:00:00 2001 | ||
2 | From: Adrian Bunk <bunk@stusta.de> | ||
3 | Date: Mon, 21 Oct 2019 13:53:25 +0300 | ||
4 | Subject: gps_shm_close: Free privdata | ||
5 | |||
6 | Previously every open/close cycle leaked privdata. | ||
7 | |||
8 | Signed-off-by: Adrian Bunk <bunk@stusta.de> | ||
9 | Signed-off-by: Gary E. Miller <gem@rellim.com> | ||
10 | |||
11 | Upstream-Status: Backport | ||
12 | --- | ||
13 | libgps_shm.c | 8 ++++++-- | ||
14 | 1 file changed, 6 insertions(+), 2 deletions(-) | ||
15 | |||
16 | diff --git a/libgps_shm.c b/libgps_shm.c | ||
17 | index 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 | -- | ||
36 | 2.20.1 | ||
37 | |||