the whole program has code like this in countless places:
char nmeabuf[256]; nmea_foobar(foo, nmeabuf);
nmea_foobar(foo2* foo, char* bar) { char buf[256];
sprintf(buf, ....);
unsigned char cksum = nmea_cksum(buf);
sprintf(bar, "$%s*%02X\r\n", buf, cksum); }
so at least we'd have to make buf a few bytes smaller to have a chance, but I guess that does not even completely fix one of the two issues
the whole program has code like this in countless places:
char nmeabuf[256];
nmea_foobar( foo, nmeabuf);
nmea_foobar(foo2* foo, char* bar)
{
char buf[256];
unsigned char cksum = nmea_cksum(buf);
}
so at least we'd have to make buf a few bytes smaller to have a chance,
but I guess that does not even completely fix one of the two issues