diff --git a/src/frame.c b/src/frame.c index 9eada96..f238afe 100644 --- a/src/frame.c +++ b/src/frame.c @@ -476,7 +476,9 @@ ssize_t patty_ax25_frame_encode(patty_ax25_frame *frame, } if (frame->info && frame->infolen) { - if (1 + offset + frame->infolen > len) { + if (len < 1 + offset + frame->infolen) { + errno = EOVERFLOW; + goto error_toobig; } @@ -623,6 +625,8 @@ ssize_t patty_ax25_frame_encode_reply_to(patty_ax25_frame *frame, if (PATTY_AX25_FRAME_CONTROL_I(reply->control) || PATTY_AX25_FRAME_CONTROL_UI(reply->control)) { if (len < 1 + offset + reply->infolen) { + errno = EOVERFLOW; + goto error_toobig; }