diff options
author | Holger Hans Peter Freyther <zecke@selfish.org> | 2010-05-15 00:29:50 +0800 |
---|---|---|
committer | Holger Hans Peter Freyther <zecke@selfish.org> | 2010-05-15 00:29:50 +0800 |
commit | 50818d0c20a94476477609d448158779f26b12cf (patch) | |
tree | 7e14fad3c6b47a5443421799dcca31846ecffd06 /openbsc | |
parent | 317934a2ba0b674044095c7054dc8f01ee4398b3 (diff) |
[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.
Diffstat (limited to 'openbsc')
-rw-r--r-- | openbsc/src/nat/bsc_nat.c | 7 |
1 files changed, 6 insertions, 1 deletions
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; |