From d607c875a0999bd29c4db7c92182c8c193379d2a Mon Sep 17 00:00:00 2001 From: "Eric S. Raymond" Date: Mon, 16 Feb 2015 06:13:24 -0500 Subject: Repair the logic for setting a non-default SHM export segment. Also, ensure this always happens within the regression-test driver. All regression tests pass. --- shmexport.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'shmexport.c') diff --git a/shmexport.c b/shmexport.c index 229ad697..3b2f6d8f 100644 --- a/shmexport.c +++ b/shmexport.c @@ -35,20 +35,20 @@ bool shm_acquire(struct gps_context_t *context) /* initialize the shared-memory segment to be used for export */ { /*@-nullpass@*/ - int shmkey = getenv("GPSD_SHM_KEY") ? atoi(getenv("GPSD_SHM_KEY")) : GPSD_KEY; + long shmkey = getenv("GPSD_SHM_KEY") ? strtol(getenv("GPSD_SHM_KEY"), NULL, 0) : GPSD_SHM_KEY; /*@+nullpass@*/ 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(%x, %zd, 0666) for SHM export failed: %s\n", + "shmget(0x%lx, %zd, 0666) for SHM export failed: %s\n", shmkey, sizeof(struct gps_data_t), strerror(errno)); return false; } else gpsd_report(&context->errout, LOG_PROG, - "shmget(%x, %zd, 0666) for SHM export succeeded\n", + "shmget(0x%lx, %zd, 0666) for SHM export succeeded\n", shmkey, sizeof(struct gps_data_t)); -- cgit v1.2.1