diff options
-rw-r--r-- | src/gb/gprs_bssgp.c | 4 | ||||
-rw-r--r-- | src/gb/gprs_ns.c | 4 |
2 files changed, 8 insertions, 0 deletions
diff --git a/src/gb/gprs_bssgp.c b/src/gb/gprs_bssgp.c index 550757f9..b695c284 100644 --- a/src/gb/gprs_bssgp.c +++ b/src/gb/gprs_bssgp.c @@ -128,6 +128,10 @@ struct bssgp_bvc_ctx *btsctx_alloc(uint16_t bvci, uint16_t nsei) 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 d72003ed..3679a5ba 100644 --- a/src/gb/gprs_ns.c +++ b/src/gb/gprs_ns.c @@ -333,6 +333,10 @@ struct gprs_nsvc *gprs_nsvc_create2(struct gprs_ns_inst *nsi, uint16_t nsvci, 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; |