From bd1238e0bdaeb070e28156052a544cf72b01d6c5 Mon Sep 17 00:00:00 2001 From: XANTRONIX Development Date: Tue, 15 Sep 2020 14:18:26 -0500 Subject: [PATCH] Improve frame encoding error handling, reporting Changes: * Improve error detection in patty_ax25_frame_encode() * Make patty_ax25_frame_encode() set EOVERFLOW when encoding beyond the caller specified limit * Make patty_ax25_frame_encode_reply_to() set EOVERFLOW when encoding beyond the caller specified limit --- src/frame.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) 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; }