diff options
author | Jacob Erlbeck <jerlbeck@sysmocom.de> | 2015-01-19 08:57:07 +0100 |
---|---|---|
committer | Holger Hans Peter Freyther <holger@moiji-mobile.com> | 2015-01-20 16:13:09 +0100 |
commit | 6be9ffa3b811311043194d04ae06e05d216c57bb (patch) | |
tree | 710143e6d88f58c2711781f9c83e588e80d919c3 /openbsc/tests/sgsn | |
parent | d8a65536ecc6eae026898822b58f520f5ee25ac7 (diff) |
sgsn/test: Make assert_substr safer (Coverity)
Currently, if assert_subscr were called with subscr == NULL, the
later call to subscr_put might fail, as Coverity has complained. In
addition, the call to subscr_put would free the subscr object if it
were in the cache with a refcount of 0 at the time assert_substr was
called.
This patch adds a check for the subscr being non-NULL and reorders
the checks, so that the subscr_put comes last.
Fixes: Coverity CID 1264590
Sponsored-by: On-Waves ehf
Diffstat (limited to 'openbsc/tests/sgsn')
-rw-r--r-- | openbsc/tests/sgsn/sgsn_test.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/openbsc/tests/sgsn/sgsn_test.c b/openbsc/tests/sgsn/sgsn_test.c index 662227d65..1ae94b0dd 100644 --- a/openbsc/tests/sgsn/sgsn_test.c +++ b/openbsc/tests/sgsn/sgsn_test.c @@ -203,12 +203,13 @@ void my_dummy_sgsn_update_subscriber_data(struct sgsn_mm_ctx *mmctx, static void assert_subscr(const struct gsm_subscriber *subscr, const char *imsi) { struct gsm_subscriber *sfound; + OSMO_ASSERT(subscr); + OSMO_ASSERT(strcmp(subscr->imsi, imsi) == 0); sfound = gprs_subscr_get_by_imsi(imsi); OSMO_ASSERT(sfound == subscr); - subscr_put(sfound); - OSMO_ASSERT(strcmp(subscr->imsi, imsi) == 0); + subscr_put(sfound); } static void show_subscrs(FILE *out) |