diff options
| author | Adrian Bunk <bunk@stusta.de> | 2019-10-28 00:57:54 +0200 |
|---|---|---|
| committer | Khem Raj <raj.khem@gmail.com> | 2019-10-27 23:10:00 -0700 |
| commit | dc26e0395c1e51d4e961f0e388793de5d5738a75 (patch) | |
| tree | 2db0a40113e443ce41a9a9313cf07bd9405577a6 | |
| parent | 18506b797bcfe162999223b79919e7c730875bb4 (diff) | |
| download | meta-openembedded-dc26e0395c1e51d4e961f0e388793de5d5738a75.tar.gz | |
gpsd: Backport a memory leak fix
Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
| -rw-r--r-- | meta-oe/recipes-navigation/gpsd/gpsd/0001-gps_shm_close-Free-privdata.patch | 37 | ||||
| -rw-r--r-- | meta-oe/recipes-navigation/gpsd/gpsd_3.19.bb | 1 |
2 files changed, 38 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 0000000000..9b38015800 --- /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 | |||
diff --git a/meta-oe/recipes-navigation/gpsd/gpsd_3.19.bb b/meta-oe/recipes-navigation/gpsd/gpsd_3.19.bb index a28d59dce1..054af40829 100644 --- a/meta-oe/recipes-navigation/gpsd/gpsd_3.19.bb +++ b/meta-oe/recipes-navigation/gpsd/gpsd_3.19.bb | |||
| @@ -9,6 +9,7 @@ EXTRANATIVEPATH += "chrpath-native" | |||
| 9 | 9 | ||
| 10 | SRC_URI = "${SAVANNAH_GNU_MIRROR}/${BPN}/${BP}.tar.gz \ | 10 | SRC_URI = "${SAVANNAH_GNU_MIRROR}/${BPN}/${BP}.tar.gz \ |
| 11 | file://0001-SConstruct-prefix-includepy-with-sysroot-and-drop-sy.patch \ | 11 | file://0001-SConstruct-prefix-includepy-with-sysroot-and-drop-sy.patch \ |
| 12 | file://0001-gps_shm_close-Free-privdata.patch \ | ||
| 12 | " | 13 | " |
| 13 | SRC_URI[md5sum] = "b3bf88706794eb8e5f2c2543bf7ba87b" | 14 | SRC_URI[md5sum] = "b3bf88706794eb8e5f2c2543bf7ba87b" |
| 14 | SRC_URI[sha256sum] = "27dd24d45b2ac69baab7933da2bf6ae5fb0be90130f67e753c110a3477155f39" | 15 | SRC_URI[sha256sum] = "27dd24d45b2ac69baab7933da2bf6ae5fb0be90130f67e753c110a3477155f39" |
