From 452fb3470c91c69a787275f927fb187c641e8e03 Mon Sep 17 00:00:00 2001 From: Adrian Bunk Date: Thu, 31 Oct 2019 18:54:11 +0200 Subject: gpsd: Backport a memory leak fix Signed-off-by: Adrian Bunk Signed-off-by: Khem Raj Signed-off-by: Armin Kuster --- .../0001-gps_shm_close-Free-privdata.patch | 37 ++++++++++++++++++++++ meta-oe/recipes-navigation/gpsd/gpsd_3.17.bb | 1 + 2 files changed, 38 insertions(+) create mode 100644 meta-oe/recipes-navigation/gpsd/gpsd-3.17/0001-gps_shm_close-Free-privdata.patch diff --git a/meta-oe/recipes-navigation/gpsd/gpsd-3.17/0001-gps_shm_close-Free-privdata.patch b/meta-oe/recipes-navigation/gpsd/gpsd-3.17/0001-gps_shm_close-Free-privdata.patch new file mode 100644 index 0000000000..9b38015800 --- /dev/null +++ b/meta-oe/recipes-navigation/gpsd/gpsd-3.17/0001-gps_shm_close-Free-privdata.patch @@ -0,0 +1,37 @@ +From 2a4b3bcde0d73a3a4a6644d5f944ac9d16023ba9 Mon Sep 17 00:00:00 2001 +From: Adrian Bunk +Date: Mon, 21 Oct 2019 13:53:25 +0300 +Subject: gps_shm_close: Free privdata + +Previously every open/close cycle leaked privdata. + +Signed-off-by: Adrian Bunk +Signed-off-by: Gary E. Miller + +Upstream-Status: Backport +--- + libgps_shm.c | 8 ++++++-- + 1 file changed, 6 insertions(+), 2 deletions(-) + +diff --git a/libgps_shm.c b/libgps_shm.c +index d93972bba..12bb3760b 100644 +--- a/libgps_shm.c ++++ b/libgps_shm.c +@@ -163,8 +163,12 @@ int gps_shm_read(struct gps_data_t *gpsdata) + + void gps_shm_close(struct gps_data_t *gpsdata) + { +- if (PRIVATE(gpsdata) && PRIVATE(gpsdata)->shmseg != NULL) +- (void)shmdt((const void *)PRIVATE(gpsdata)->shmseg); ++ if (PRIVATE(gpsdata)) { ++ if (PRIVATE(gpsdata)->shmseg != NULL) ++ (void)shmdt((const void *)PRIVATE(gpsdata)->shmseg); ++ free(PRIVATE(gpsdata)); ++ gpsdata->privdata = NULL; ++ } + } + + int gps_shm_mainloop(struct gps_data_t *gpsdata, int timeout, +-- +2.20.1 + diff --git a/meta-oe/recipes-navigation/gpsd/gpsd_3.17.bb b/meta-oe/recipes-navigation/gpsd/gpsd_3.17.bb index 488fa3a52d..f4e0180551 100644 --- a/meta-oe/recipes-navigation/gpsd/gpsd_3.17.bb +++ b/meta-oe/recipes-navigation/gpsd/gpsd_3.17.bb @@ -12,6 +12,7 @@ SRC_URI = "${SAVANNAH_GNU_MIRROR}/${BPN}/${BP}.tar.gz \ file://0004-SConstruct-disable-html-and-man-docs-building-becaus.patch \ file://0001-include-sys-ttydefaults.h.patch \ file://0001-Add-bounds-check-in-in_escape-state-of-JSON-parser.patch \ + file://0001-gps_shm_close-Free-privdata.patch \ " SRC_URI[md5sum] = "e0cfadcf4a65dfbdd2afb11c58f4e4a1" SRC_URI[sha256sum] = "68e0dbecfb5831997f8b3d6ba48aed812eb465d8c0089420ab68f9ce4d85e77a" -- cgit 1.2.3-korg