diff options
author | Eric S. Raymond <esr@thyrsus.com> | 2016-01-16 23:54:07 -0500 |
---|---|---|
committer | Eric S. Raymond <esr@thyrsus.com> | 2016-01-16 23:54:07 -0500 |
commit | 31826413d35ed9107abfc24fb98a58f9c249c838 (patch) | |
tree | 5cf437c9c4d12d0c3396cb3d3d6e4c0249dd78bd /libgps_shm.c | |
parent | 7815c4184ff6950267f1713dff44f5cba4a903f6 (diff) | |
download | gpsd-31826413d35ed9107abfc24fb98a58f9c249c838.tar.gz |
Prevent gps fd from being stimpeed by shated-memory interface.
Fix due to Simon Hradecky <shradecky@nomissoft.com>.
Diffstat (limited to 'libgps_shm.c')
-rw-r--r-- | libgps_shm.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/libgps_shm.c b/libgps_shm.c index b2ada1a1..55e1152f 100644 --- a/libgps_shm.c +++ b/libgps_shm.c @@ -102,7 +102,7 @@ int gps_shm_read(struct gps_data_t *gpsdata) return -1; else { - int before, after; + int before, after, gpsfd = gpsdata->gps_fd; void *private_save = gpsdata->privdata; volatile struct shmexport_t *shared = (struct shmexport_t *)PRIVATE(gpsdata)->shmseg; struct gps_data_t noclobber; @@ -133,6 +133,7 @@ int gps_shm_read(struct gps_data_t *gpsdata) (void *)&noclobber, sizeof(struct gps_data_t)); gpsdata->privdata = private_save; + gpsdata->gps_fd=gpsfd; PRIVATE(gpsdata)->tick = after; if ((gpsdata->set & REPORT_IS)!=0) { if (gpsdata->fix.mode >= 2) |