summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJacob Erlbeck <jerlbeck@sysmocom.de>2015-01-19 08:57:07 +0100
committerJacob Erlbeck <jerlbeck@sysmocom.de>2015-01-19 15:10:57 +0100
commit3793b21a42a3e33c0356a59d3153988bc40c7820 (patch)
tree710143e6d88f58c2711781f9c83e588e80d919c3
parenta1f7a53a95483560f91fe601ed837581e25ebda1 (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
-rw-r--r--openbsc/tests/sgsn/sgsn_test.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/openbsc/tests/sgsn/sgsn_test.c b/openbsc/tests/sgsn/sgsn_test.c
index 662227d..1ae94b0 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)