aboutsummaryrefslogtreecommitdiffstats
path: root/src/gb/gprs_bssgp_bss.c
diff options
context:
space:
mode:
authorHarald Welte <laforge@osmocom.org>2019-12-15 21:51:07 +0100
committerHarald Welte <laforge@osmocom.org>2019-12-15 21:56:39 +0100
commit7d0fe2ae6f9892faac0fc4374573869e6edf325e (patch)
treeebbc01304dae758c39e2fe67bbe7bc10558a4a82 /src/gb/gprs_bssgp_bss.c
parenta47d37c94684ba688a6eec06d0346ee13b03aad4 (diff)
gprs_bssgp: Work around gcc-9 claiming "error=stringop-overflow"
gcc-9.2.1 issues the following errror when compiling with -Werror: In function ‘tl16v_put’, inlined from ‘tvlv_put’ at ../../include/osmocom/gsm/tlv.h:156:9, inlined from ‘tvlv_put’ at ../../include/osmocom/gsm/tlv.h:147:24, inlined from ‘msgb_tvlv_put’ at ../../include/osmocom/gsm/tlv.h:223:9, inlined from ‘bssgp_tx_paging’ at gprs_bssgp.c:1250:2: ../../include/osmocom/gsm/tlv.h:131:2: error: ‘memcpy’ reading between 128 and 65535 bytes from a region of size 9 [-Werror=stringop-overflow=] 131 | memcpy(buf, val, len); | ^~~~~~~~~~~~~~~~~~~~~ Unfortunately I've not been able to work around it with some nice GCC #pragma GCC diagnostic ignored "-Wstringop-overflow" Change-Id: I22a0c399c6c00eaf87277002096a82844c9e198e
Diffstat (limited to 'src/gb/gprs_bssgp_bss.c')
-rw-r--r--src/gb/gprs_bssgp_bss.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/gb/gprs_bssgp_bss.c b/src/gb/gprs_bssgp_bss.c
index f06c403f..5c9d11cc 100644
--- a/src/gb/gprs_bssgp_bss.c
+++ b/src/gb/gprs_bssgp_bss.c
@@ -189,6 +189,7 @@ int bssgp_tx_radio_status_imsi(struct bssgp_bvc_ctx *bctx, uint8_t cause,
* mi[131], which is wrong */
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Warray-bounds"
+ OSMO_ASSERT(imsi_len <= GSM48_MID_MAX_SIZE);
/* strip the MI type and length values (2 bytes) */
if (imsi_len > 2)
msgb_tvlv_put(msg, BSSGP_IE_IMSI, imsi_len-2, mi+2);