diff options
author | Jacob Erlbeck <jerlbeck@sysmocom.de> | 2015-01-19 08:57:07 +0100 |
---|---|---|
committer | Jacob Erlbeck <jerlbeck@sysmocom.de> | 2015-01-19 15:10:57 +0100 |
commit | 3793b21a42a3e33c0356a59d3153988bc40c7820 (patch) | |
tree | 710143e6d88f58c2711781f9c83e588e80d919c3 /openbsc/tests/sgsn/sgsn_test.c | |
parent | a1f7a53a95483560f91fe601ed837581e25ebda1 (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/sgsn_test.c')
-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) |