nat: Fail more early in the case of not being authenticated
This is also fixing a possible memory leak.
This commit is contained in:
parent
04fd992af3
commit
d7657ffc84
|
@ -368,10 +368,17 @@ static int forward_sccp_to_msc(struct bsc_connection *bsc, struct msgb *msg)
|
|||
struct bsc_connection *found_bsc = NULL;
|
||||
struct bsc_nat_parsed *parsed;
|
||||
|
||||
if (!bsc->authenticated) {
|
||||
LOGP(DNAT, LOGL_ERROR, "BSC is not authenticated.\n");
|
||||
msgb_free(msg);
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* Parse and filter messages */
|
||||
parsed = bsc_nat_parse(msg);
|
||||
if (!parsed) {
|
||||
LOGP(DNAT, LOGL_ERROR, "Can not parse msg from BSC.\n");
|
||||
msgb_free(msg);
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
@ -411,11 +418,6 @@ static int forward_sccp_to_msc(struct bsc_connection *bsc, struct msgb *msg)
|
|||
goto exit2;
|
||||
}
|
||||
|
||||
if (!bsc->authenticated) {
|
||||
LOGP(DNAT, LOGL_ERROR, "BSC is not authenticated.\n");
|
||||
goto exit2;
|
||||
}
|
||||
|
||||
/* send the non-filtered but maybe modified msg */
|
||||
if (write_queue_enqueue(&msc_con->write_queue, msg) != 0) {
|
||||
LOGP(DNAT, LOGL_ERROR, "Can not queue message for the MSC.\n");
|
||||
|
|
Loading…
Reference in New Issue