summaryrefslogtreecommitdiff
path: root/libgps_shm.c
diff options
context:
space:
mode:
authorEric S. Raymond <esr@thyrsus.com>2016-01-17 13:13:24 -0500
committerEric S. Raymond <esr@thyrsus.com>2016-01-17 13:13:24 -0500
commitfdd7753eb38e88ad15ca194527bc14b3a1bae786 (patch)
tree5fac03615bd1ca83e82604ccfd6c3b4b53884957 /libgps_shm.c
parent31826413d35ed9107abfc24fb98a58f9c249c838 (diff)
downloadgpsd-fdd7753eb38e88ad15ca194527bc14b3a1bae786.tar.gz
Simpler fix for fd clobbering in the SHM library interface.
Diffstat (limited to 'libgps_shm.c')
-rw-r--r--libgps_shm.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/libgps_shm.c b/libgps_shm.c
index 55e1152f..c1b8d666 100644
--- a/libgps_shm.c
+++ b/libgps_shm.c
@@ -62,7 +62,7 @@ int gps_shm_open(struct gps_data_t *gpsdata)
free(gpsdata->privdata);
return -2;
}
-#ifndef USE_QT
+#ifndef USE_QT1
gpsdata->gps_fd = SHM_PSEUDO_FD;
#else
gpsdata->gps_fd = (void *)(intptr_t)SHM_PSEUDO_FD;
@@ -102,7 +102,7 @@ int gps_shm_read(struct gps_data_t *gpsdata)
return -1;
else
{
- int before, after, gpsfd = gpsdata->gps_fd;
+ int before, after;
void *private_save = gpsdata->privdata;
volatile struct shmexport_t *shared = (struct shmexport_t *)PRIVATE(gpsdata)->shmseg;
struct gps_data_t noclobber;
@@ -133,7 +133,11 @@ int gps_shm_read(struct gps_data_t *gpsdata)
(void *)&noclobber,
sizeof(struct gps_data_t));
gpsdata->privdata = private_save;
- gpsdata->gps_fd=gpsfd;
+#ifndef USE_QT
+ gpsdata->gps_fd = SHM_PSEUDO_FD;
+#else
+ gpsdata->gps_fd = (void *)(intptr_t)SHM_PSEUDO_FD;
+#endif /* USE_QT */
PRIVATE(gpsdata)->tick = after;
if ((gpsdata->set & REPORT_IS)!=0) {
if (gpsdata->fix.mode >= 2)