diff options
author | Eric S. Raymond <esr@thyrsus.com> | 2016-01-17 13:13:24 -0500 |
---|---|---|
committer | Eric S. Raymond <esr@thyrsus.com> | 2016-01-17 13:13:24 -0500 |
commit | fdd7753eb38e88ad15ca194527bc14b3a1bae786 (patch) | |
tree | 5fac03615bd1ca83e82604ccfd6c3b4b53884957 /libgps_shm.c | |
parent | 31826413d35ed9107abfc24fb98a58f9c249c838 (diff) | |
download | gpsd-fdd7753eb38e88ad15ca194527bc14b3a1bae786.tar.gz |
Simpler fix for fd clobbering in the SHM library interface.
Diffstat (limited to 'libgps_shm.c')
-rw-r--r-- | libgps_shm.c | 10 |
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) |