summaryrefslogtreecommitdiff
path: root/libgps_shm.c
diff options
context:
space:
mode:
authorEric S. Raymond <esr@thyrsus.com>2016-01-16 23:54:07 -0500
committerEric S. Raymond <esr@thyrsus.com>2016-01-16 23:54:07 -0500
commit31826413d35ed9107abfc24fb98a58f9c249c838 (patch)
tree5cf437c9c4d12d0c3396cb3d3d6e4c0249dd78bd /libgps_shm.c
parent7815c4184ff6950267f1713dff44f5cba4a903f6 (diff)
downloadgpsd-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.c3
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)