aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPau Espin Pedrol <pespin@sysmocom.de>2022-12-21 18:20:32 +0100
committerPau Espin Pedrol <pespin@sysmocom.de>2022-12-21 21:35:06 +0100
commitc0691ad3fd8b7a298ebec9abce650172443bf331 (patch)
tree2d453e96f4b66ba0be8b74d9aaec2a590dad0e69
parent16d9d5dba80bb7b33bbb979ebad16e7d0108c311 (diff)
amr: osmo_amr_bwe_to_oa(): validate input data is long enough
-rw-r--r--src/amr.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/amr.c b/src/amr.c
index 81bcd08..f201e8a 100644
--- a/src/amr.c
+++ b/src/amr.c
@@ -221,6 +221,8 @@ int osmo_amr_bwe_to_oa(uint8_t *payload, unsigned int payload_len,
ft = (bwe_hdr->ft_hi << 1) | bwe_hdr->ft_lo;
if (!osmo_amr_ft_valid(ft))
return -1;
+ if (OSMO_BYTES_FOR_BITS(AMR_HDR_BWE_LEN_BITS + osmo_amr_bits(ft)) > payload_len)
+ return -1;
memset(buf, 0, sizeof(buf));
oa_hdr = (struct amr_hdr *)buf;