arehbein has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/31155 )
Change subject: common: Fix memleak in get_smscb_block() ......................................................................
common: Fix memleak in get_smscb_block()
Fix condition `block_nr == 4`, which was never reached, by effectively replacing - `4` by `msg->num_segs`, so we truly check if the current block is the last of this message - the index `block_nr` (which starts at zero) by `block_nr + 1` so it is comparable to `msg->num_segs`
Related: OS#5354
Change-Id: I3dc116d6c16c80b31712b2a969f0b2a6998b03f0 --- M src/common/cbch.c 1 file changed, 2 insertions(+), 6 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/55/31155/1
diff --git a/src/common/cbch.c b/src/common/cbch.c index f65df0d..3dd28bf 100644 --- a/src/common/cbch.c +++ b/src/common/cbch.c @@ -139,12 +139,8 @@ block_type->seq_nr = block_nr;
/* determine if this is the last block */ - if (block_nr + 1 == msg->num_segs) - block_type->lb = 1; - else - block_type->lb = 0; - - if (block_nr == 4) { + block_type->lb = block_nr + 1 == msg->num_segs; + if (block_type->lb) { if (msg != bts_ss->default_msg) { DEBUGPGT(DLSMS, g_time, "%s: deleting fully-transmitted message %p\n", chan_name, msg);