diff --git a/src/parser.c b/src/parser.c index 70ca8a816eec50ee02d890da994a5d1d189f4e15..2702d6a7588c79facbb979bf9fc9bafa1fdbcc0b 100644 --- a/src/parser.c +++ b/src/parser.c @@ -181,6 +181,7 @@ int nmea_parser_real_push(nmeaPARSER *parser, const char *buff, int buff_sz) (const char *)parser->buffer + nparsed, sen_sz, (nmeaGPGGA *)node->pack)) { + rt_free(node->pack); rt_free(node); node = 0; } @@ -193,6 +194,7 @@ int nmea_parser_real_push(nmeaPARSER *parser, const char *buff, int buff_sz) (const char *)parser->buffer + nparsed, sen_sz, (nmeaGPGSA *)node->pack)) { + rt_free(node->pack); rt_free(node); node = 0; } @@ -205,6 +207,7 @@ int nmea_parser_real_push(nmeaPARSER *parser, const char *buff, int buff_sz) (const char *)parser->buffer + nparsed, sen_sz, (nmeaGPGSV *)node->pack)) { + rt_free(node->pack); rt_free(node); node = 0; } @@ -217,6 +220,7 @@ int nmea_parser_real_push(nmeaPARSER *parser, const char *buff, int buff_sz) (const char *)parser->buffer + nparsed, sen_sz, (nmeaGPRMC *)node->pack)) { + rt_free(node->pack); rt_free(node); node = 0; } @@ -229,6 +233,7 @@ int nmea_parser_real_push(nmeaPARSER *parser, const char *buff, int buff_sz) (const char *)parser->buffer + nparsed, sen_sz, (nmeaGPVTG *)node->pack)) { + rt_free(node->pack); rt_free(node); node = 0; }