diff --git a/src/libmsc/transaction.c b/src/libmsc/transaction.c index 7289a8f11..28e0914a8 100644 --- a/src/libmsc/transaction.c +++ b/src/libmsc/transaction.c @@ -88,6 +88,13 @@ struct gsm_trans *trans_alloc(struct gsm_network *net, DEBUGP(DCC, "subscr=%p, net=%p\n", vsub, net); + /* a valid subscriber is indispensable */ + if (vsub == NULL) { + LOGP(DCC, LOGL_NOTICE, + "unable to alloc transaction, invalid subscriber (NULL)\n"); + return NULL; + } + trans = talloc_zero(tall_trans_ctx, struct gsm_trans); if (!trans) return NULL;