Always clear KISS frame decode state on FEND

Always completely discard KISS frame decode state when encountering an
FEND character
This commit is contained in:
XANTRONIX Development 2020-08-10 01:48:00 -04:00 committed by XANTRONIX Industrial
parent b5ec25eb6a
commit f54db37a7e

View file

@ -270,7 +270,7 @@ ssize_t patty_kiss_tnc_recv(patty_kiss_tnc *tnc,
size_t r = 0, /* Number of bytes read */
w = 0; /* Number of bytes written to buf */
enum kiss_flags flags = KISS_NONE;
int flags = KISS_NONE;
if (tnc->offset == tnc->readlen) {
errno = 0;
@ -306,7 +306,7 @@ ssize_t patty_kiss_tnc_recv(patty_kiss_tnc *tnc,
if (!(flags & KISS_FRAME)) {
if (c == PATTY_KISS_FEND) {
flags |= KISS_FRAME;
flags = KISS_FRAME;
continue;
} else {
@ -316,9 +316,9 @@ ssize_t patty_kiss_tnc_recv(patty_kiss_tnc *tnc,
}
} else {
if (c == PATTY_KISS_FEND) {
if (w > 0) {
flags &= ~KISS_FRAME;
flags = KISS_NONE;
if (w > 0) {
goto done;
}