From 50818d0c20a94476477609d448158779f26b12cf Mon Sep 17 00:00:00 2001 From: Holger Hans Peter Freyther Date: Sat, 15 May 2010 00:29:50 +0800 Subject: [PATCH] [nat] Separate exit2/exit3 as this can not be shared... We have tried to send a refuse for arbitary things and ended up with a segfault... separate the exi2 and exit3 label to have separate exits and cleanups. --- openbsc/src/nat/bsc_nat.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/openbsc/src/nat/bsc_nat.c b/openbsc/src/nat/bsc_nat.c index ea6c82f91..9a88744f7 100644 --- a/openbsc/src/nat/bsc_nat.c +++ b/openbsc/src/nat/bsc_nat.c @@ -670,6 +670,11 @@ exit: goto exit2; } +exit2: + talloc_free(parsed); + msgb_free(msg); + return -1; + exit3: /* send a SCCP Connection Refused */ refuse = sccp_create_refuse(parsed->src_local_ref, SCCP_REFUSAL_SCCP_FAILURE); @@ -677,7 +682,7 @@ exit3: bsc_send_data(bsc, refuse->l2h, msgb_l2len(refuse), IPAC_PROTO_SCCP); msgb_free(refuse); } -exit2: + talloc_free(parsed); msgb_free(msg); return -1;