urtho commented on this pull request.
- t = tmb.t_gett();
+ if(t == NULL || t == T_UNDEFINED) { + if(tmb.t_newtran(msg) < 0) { + LM_ERR("cannot create the transaction\n"); + return -1; + } + t = tmb.t_gett(); + if(t == NULL || t == T_UNDEFINED) { + LM_ERR("cannot lookup the transaction\n"); + return -1; + } + } + + if(tmb.t_suspend(msg, &tindex, &tlabel) < 0) { + LM_ERR("failed to suspend the processing\n"); + shm_free(ai);
The allocation is done too early. Moving it past all the input and transaction validation.