summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric S. Raymond <esr@thyrsus.com>2015-02-11 22:37:39 -0500
committerEric S. Raymond <esr@thyrsus.com>2015-02-11 23:31:14 -0500
commit5b3382dce406f2a520ff63b64d58f80e24ae74e2 (patch)
tree6b1ff097bb764ac394b8457b61c68ce5e6817131
parent80d869d92dceeab173525f80a5f973849d68433d (diff)
downloadgpsd-5b3382dce406f2a520ff63b64d58f80e24ae74e2.tar.gz
Instrument shm segment creation a bit better.
All regression tests pass.
-rw-r--r--libgps_shm.c6
-rw-r--r--shmexport.c6
2 files changed, 7 insertions, 5 deletions
diff --git a/libgps_shm.c b/libgps_shm.c
index e8dd30f4..fda963da 100644
--- a/libgps_shm.c
+++ b/libgps_shm.c
@@ -41,14 +41,16 @@ struct privdata_t
int gps_shm_open(/*@out@*/struct gps_data_t *gpsdata)
/* open a shared-memory connection to the daemon */
{
+ int shmid;
+
/*@-nullpass@*/
- int shmid = getenv("GPSD_SHM_KEY") ? atoi(getenv("GPSD_SHM_KEY")) : GPSD_KEY;
+ int shmkey = getenv("GPSD_SHM_KEY") ? atoi(getenv("GPSD_SHM_KEY")) : GPSD_KEY;
/*@+nullpass@*/
libgps_debug_trace((DEBUG_CALLS, "gps_shm_open()\n"));
gpsdata->privdata = NULL;
- shmid = shmget((key_t)shmid, sizeof(struct gps_data_t), 0);
+ shmid = shmget((key_t)shmkey, sizeof(struct gps_data_t), 0);
if (shmid == -1) {
/* daemon isn't running or failed to create shared segment */
return -1;
diff --git a/shmexport.c b/shmexport.c
index c9fe87b1..625f570a 100644
--- a/shmexport.c
+++ b/shmexport.c
@@ -35,14 +35,14 @@ bool shm_acquire(struct gps_context_t *context)
/* initialize the shared-memory segment to be used for export */
{
/*@-nullpass@*/
- int shmid = getenv("GPSD_SHM_KEY") ? atoi(getenv("GPSD_SHM_KEY")) : GPSD_KEY;
+ int shmkey = getenv("GPSD_SHM_KEY") ? atoi(getenv("GPSD_SHM_KEY")) : GPSD_KEY;
/*@+nullpass@*/
- shmid = shmget((key_t)shmid, sizeof(struct gps_data_t), (int)(IPC_CREAT|0666));
+ int shmid = shmget((key_t)shmkey, sizeof(struct gps_data_t), (int)(IPC_CREAT|0666));
if (shmid == -1) {
gpsd_report(&context->errout, LOG_ERROR,
"shmget(%ld, %zd, 0666) failed: %s\n",
- (long int)shmid,
+ (long int)shmkey,
sizeof(struct gps_data_t),
strerror(errno));
return false;