diff options
author | Pau Espin Pedrol <pespin@sysmocom.de> | 2018-04-11 13:16:49 +0200 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2018-04-11 16:52:49 +0000 |
commit | 637e6da34a05184bc4ad59a446c7c2371d1e56e4 (patch) | |
tree | 2edffb03300f188b8c7b27c46da80beebaa3f0fc | |
parent | 8ae73375b89fc47ee32213c03e10577ee3f457e0 (diff) |
bsc_nat: ctrl: fix memleak on reply receival
Change-Id: I163d4d12d8656628dc88ff3e59a4c3e53b760a0c
-rw-r--r-- | src/osmo-bsc_nat/bsc_nat_ctrl.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/src/osmo-bsc_nat/bsc_nat_ctrl.c b/src/osmo-bsc_nat/bsc_nat_ctrl.c index 93cdff3dc..9450741ac 100644 --- a/src/osmo-bsc_nat/bsc_nat_ctrl.c +++ b/src/osmo-bsc_nat/bsc_nat_ctrl.c @@ -103,7 +103,7 @@ int bsc_nat_handle_ctrlif_msg(struct bsc_connection *bsc, struct msgb *msg) { struct ctrl_cmd *cmd; struct bsc_cmd_list *pending; - char *var, *id; + char *var; cmd = ctrl_cmd_parse(bsc, msg); msgb_free(msg); @@ -143,13 +143,12 @@ int bsc_nat_handle_ctrlif_msg(struct bsc_connection *bsc, struct msgb *msg) /* Find the pending command */ pending = bsc_get_pending(bsc, cmd->id); if (pending) { - id = talloc_strdup(cmd, pending->cmd->id); - if (!id) { + osmo_talloc_replace_string(cmd, &cmd->id, pending->cmd->id); + if (!cmd->id) { cmd->type = CTRL_TYPE_ERROR; cmd->reply = "OOM"; goto err; } - cmd->id = id; ctrl_cmd_send(&pending->ccon->write_queue, cmd); bsc_nat_ctrl_del_pending(pending); } else { |