Skip to content

Commit 79c3184

Browse files
linosanfilippo-kunbusl1k
authored andcommitted
pibridge-serdev: add sanity check for received packet size
In functions pibridge_req_io() and pibridge_req_gate_tmt() return an error if the size of the received packet does not match the expected size (as specified by the passed parameter "rcv_len"). Signed-off-by: Lino Sanfilippo <l.sanfilippo@kunbus.com>
1 parent 07ea515 commit 79c3184

1 file changed

Lines changed: 14 additions & 0 deletions

File tree

drivers/tty/serdev/pibridge.c

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -334,6 +334,13 @@ int pibridge_req_gate_tmt(u8 dst, u16 cmd, u8 *snd_buf, u8 snd_len,
334334
return -EBADMSG;
335335
}
336336

337+
if (pkthdr.len < rcv_len) {
338+
dev_warn_ratelimited(&pibridge_s->serdev->dev,
339+
"received packet smaller than expected (size: %u, expected: %u)\n",
340+
pkthdr.len, rcv_len);
341+
return -EBADMSG;
342+
}
343+
337344
return 0;
338345
}
339346
EXPORT_SYMBOL(pibridge_req_gate_tmt);
@@ -465,6 +472,13 @@ int pibridge_req_io(u8 addr, u8 cmd, u8 *snd_buf, u8 snd_len, u8 *rcv_buf,
465472
return -EBADMSG;
466473
}
467474

475+
if (pkthdr.len < rcv_len) {
476+
dev_warn_ratelimited(&pibridge_s->serdev->dev,
477+
"received packet smaller than expected (size: %u, expected: %u)\n",
478+
pkthdr.len, rcv_len);
479+
return -EBADMSG;
480+
}
481+
468482
return 0;
469483
}
470484
EXPORT_SYMBOL(pibridge_req_io);

0 commit comments

Comments
 (0)