summaryrefslogtreecommitdiff
path: root/pseudonmea.c
diff options
context:
space:
mode:
authorReinhard Arlt <reinhard.arlt@t-online.de>2015-02-16 15:06:20 +0100
committerReinhard Arlt <reinhard.arlt@t-online.de>2015-02-16 15:06:20 +0100
commitcba7e5ad33368e5e77ccc487e81f1f0148d32dc7 (patch)
tree5e254a47585229e3835bc045c0b0cac9cdc87358 /pseudonmea.c
parent7e15f0cbf72a5710195e0d717d528c1ae9ed585e (diff)
downloadgpsd-cba7e5ad33368e5e77ccc487e81f1f0148d32dc7.tar.gz
Fix bug in type24 msg in pseudoais.c .
Diffstat (limited to 'pseudonmea.c')
-rw-r--r--pseudonmea.c26
1 files changed, 14 insertions, 12 deletions
diff --git a/pseudonmea.c b/pseudonmea.c
index 8e83b417..96c80b79 100644
--- a/pseudonmea.c
+++ b/pseudonmea.c
@@ -334,7 +334,7 @@ static void gpsd_binary_ais_dump(struct gps_device_t *session,
}
offset = (unsigned int) strlen(bufp);
}
- } else {
+ } else if (datalen > 0) {
msg1 = 1;
msg2 = 1;
numc[0] = '\0';
@@ -359,18 +359,20 @@ static void gpsd_binary_ais_dump(struct gps_device_t *session,
memset(data, 0, sizeof(data));
datalen = ais_binary_encode(&session->gpsdata.ais, &data[0], 1);
- left = GETLEFT(datalen);
- offset = (unsigned int)strlen(bufp);
- (void)snprintf(&bufp[offset], len-offset,
- "%s,%u,%u,%s,%c,%s,%u",
- type,
- msg1,
- msg2,
- numc,
- channel,
- (char *)data,
- left);
+ if (datalen > 0) {
+ left = GETLEFT(datalen);
+ offset = (unsigned int)strlen(bufp);
+ (void)snprintf(&bufp[offset], len-offset,
+ "%s,%u,%u,%s,%c,%s,%u",
+ type,
+ msg1,
+ msg2,
+ numc,
+ channel,
+ (char *)data,
+ left);
nmea_add_checksum(bufp+offset);
+ }
}
}
#endif /* AIVDM_ENABLE */