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