From aad94d17bb017b15814cbbc0e7fe4481f7050737 Mon Sep 17 00:00:00 2001 From: Rostislav Lisovy Date: Wed, 21 Dec 2011 17:30:32 +0100 Subject: [PATCH] sllin: Bugfix. Check length in sll_bump. --- sllin/sllin.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/sllin/sllin.c b/sllin/sllin.c index b754e93..0e49aa5 100644 --- a/sllin/sllin.c +++ b/sllin/sllin.c @@ -260,9 +260,11 @@ static void sllin_send_canfr(struct sllin *sl, canid_t id, char *data, int len) */ static void sll_bump(struct sllin *sl) { + int len = sl->rx_cnt - SLLIN_BUFF_DATA - 1; /* without checksum */ + len = (len < 0) ? 0 : len; + sllin_send_canfr(sl, sl->rx_buff[SLLIN_BUFF_ID] & LIN_ID_MASK, - sl->rx_buff + SLLIN_BUFF_DATA, - sl->rx_cnt - SLLIN_BUFF_DATA - 1); /* without checksum */ + sl->rx_buff + SLLIN_BUFF_DATA, len); } static void sll_send_rtr(struct sllin *sl) -- 2.39.2