diff options
Diffstat (limited to 'openbsc')
-rw-r--r-- | openbsc/src/osmo-bsc_nat/bsc_nat_ctrl.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/openbsc/src/osmo-bsc_nat/bsc_nat_ctrl.c b/openbsc/src/osmo-bsc_nat/bsc_nat_ctrl.c index 54e1dc4c2..4b59b404f 100644 --- a/openbsc/src/osmo-bsc_nat/bsc_nat_ctrl.c +++ b/openbsc/src/osmo-bsc_nat/bsc_nat_ctrl.c @@ -404,11 +404,18 @@ static int get_net_cfg_acc_cmd(struct ctrl_cmd *cmd, void *data) static int set_net_cfg_acc_cmd(struct ctrl_cmd *cmd, void *data) { const char *access_name = extract_acc_name(cmd->variable); - struct bsc_nat_acc_lst *acc = bsc_nat_acc_lst_find(g_nat, access_name); + struct bsc_nat_acc_lst *acc; struct bsc_nat_acc_lst_entry *entry; const char *value = cmd->value; int rc; + /* Should have been caught by verify_net_cfg_acc_cmd */ + acc = bsc_nat_acc_lst_find(g_nat, access_name); + if (!acc) { + cmd->reply = "Access list not found"; + return CTRL_CMD_ERROR; + } + entry = bsc_nat_acc_lst_entry_create(acc); if (!entry) { cmd->reply = "OOM"; |