deal with rate_ctr_group_alloc() returning NULL

Change-Id: I47d6623b9eca704e3c2537cfb5799a4c0749a7bc
Related: #3701
diff --git a/src/gb/gprs_bssgp.c b/src/gb/gprs_bssgp.c
index 550757f..b695c28 100644
--- a/src/gb/gprs_bssgp.c
+++ b/src/gb/gprs_bssgp.c
@@ -128,6 +128,10 @@
 	ctx->nsei = nsei;
 	/* FIXME: BVCI is not unique, only BVCI+NSEI ?!? */
 	ctx->ctrg = rate_ctr_group_alloc(ctx, &bssgp_ctrg_desc, bvci);
+	if (!ctx->ctrg) {
+		talloc_free(ctx);
+		return NULL;
+	}
 	ctx->fc = talloc_zero(ctx, struct bssgp_flow_control);
 	/* cofigure for 2Mbit, 30 packets in queue */
 	bssgp_fc_init(ctx->fc, 100000, 2*1024*1024/8, 30, &_bssgp_tx_dl_ud);
diff --git a/src/gb/gprs_ns.c b/src/gb/gprs_ns.c
index d72003e..3679a5b 100644
--- a/src/gb/gprs_ns.c
+++ b/src/gb/gprs_ns.c
@@ -333,6 +333,10 @@
 	nsvc->nsi = nsi;
 	osmo_timer_setup(&nsvc->timer, gprs_ns_timer_cb, nsvc);
 	nsvc->ctrg = rate_ctr_group_alloc(nsvc, &nsvc_ctrg_desc, nsvci);
+	if (!nsvc->ctrg) {
+		talloc_free(nsvc);
+		return NULL;
+	}
 	nsvc->statg = osmo_stat_item_group_alloc(nsvc, &nsvc_statg_desc, nsvci);
 	nsvc->sig_weight = sig_weight;
 	nsvc->data_weight = data_weight;