From 6313827df2a9a0067132626a886e628990715064 Mon Sep 17 00:00:00 2001 From: "Eric S. Raymond" Date: Thu, 26 Feb 2015 05:54:32 -0500 Subject: Prevent multiple path rewrites in gpsmon. --- drivers.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'drivers.c') diff --git a/drivers.c b/drivers.c index 96387cad..6b993c4f 100644 --- a/drivers.c +++ b/drivers.c @@ -1417,6 +1417,7 @@ const struct gps_type_t driver_aivdm = { static void path_rewrite(struct gps_device_t *session, char *prefix) /* prepend the session path to the value of a specified attribute */ { + /* * Hack the packet to reflect its origin. This code is supposed * to insert the path naming the remote gpsd instance into the @@ -1424,6 +1425,11 @@ static void path_rewrite(struct gps_device_t *session, char *prefix) * from the device. */ char *prefloc; + + /* possibly the rewrite has been done already, this comw up in gpsmon */ + if (strstr((char *)session->lexer.outbuffer, session->gpsdata.dev.path) != NULL) + return; + for (prefloc = (char *)session->lexer.outbuffer; prefloc < (char *)session->lexer.outbuffer+session->lexer.outbuflen; prefloc++) -- cgit v1.2.1