arehbein has submitted this change. ( 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(-)
Approvals: laforge: Looks good to me, but someone else must approve pespin: Looks good to me, approved Jenkins Builder: Verified
diff --git a/src/common/cbch.c b/src/common/cbch.c index f65df0d..915431d 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);