diff --git a/include/patty/ax25/frame.h b/include/patty/ax25/frame.h index a8011b3..fcb1131 100644 --- a/include/patty/ax25/frame.h +++ b/include/patty/ax25/frame.h @@ -66,12 +66,8 @@ ssize_t patty_ax25_frame_decode(patty_ax25_frame *frame, size_t len); ssize_t patty_ax25_frame_encode(patty_ax25_frame *frame, - void *buf, enum patty_ax25_frame_format format, - uint16_t control, - uint8_t proto, - void *info, - size_t infolen, + void *buf, size_t len); ssize_t patty_ax25_frame_encode_reply_to(patty_ax25_frame *frame, diff --git a/src/frame.c b/src/frame.c index 3a4aa15..d6ec769 100644 --- a/src/frame.c +++ b/src/frame.c @@ -289,21 +289,19 @@ error_toobig: } ssize_t patty_ax25_frame_encode(patty_ax25_frame *frame, - void *buf, enum patty_ax25_frame_format format, - uint16_t control, - uint8_t proto, - void *info, - size_t infolen, + void *buf, size_t len) { size_t offset; - offset = encode_address(buf, - &frame->dest, - &frame->src, - frame->repeaters, - frame->hops, - len); + if ((offset = encode_address(buf, + &frame->dest, + &frame->src, + frame->repeaters, + frame->hops, + len)) < 0) { + goto error_toobig; + } switch (format) { case PATTY_AX25_FRAME_NORMAL: