From 55ec46aac6dd61baa08bfeaf0634f539a28f4fe4 Mon Sep 17 00:00:00 2001 From: Ben Walker Date: Fri, 5 Aug 2016 15:51:56 -0700 Subject: [PATCH] nvmf: Free traddr/trsvc strings during config parsing Change-Id: I10ab386a86a27e19ad571a9239039cc5a6c766f3 Signed-off-by: Ben Walker --- lib/nvmf/conf.c | 3 +++ lib/nvmf/subsystem.c | 16 ++++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/lib/nvmf/conf.c b/lib/nvmf/conf.c index 398257e70..4523d314e 100644 --- a/lib/nvmf/conf.c +++ b/lib/nvmf/conf.c @@ -432,6 +432,9 @@ spdk_nvmf_parse_subsystem(struct spdk_conf_section *sp) } spdk_nvmf_subsystem_add_listener(subsystem, transport, traddr, trsvc); + + free(traddr); + free(trsvc); } /* Parse Host sections */ diff --git a/lib/nvmf/subsystem.c b/lib/nvmf/subsystem.c index 4f10aca01..230985588 100644 --- a/lib/nvmf/subsystem.c +++ b/lib/nvmf/subsystem.c @@ -174,8 +174,20 @@ spdk_nvmf_subsystem_add_listener(struct spdk_nvmf_subsystem *subsystem, if (!listen_addr) { return -1; } + listen_addr->traddr = strdup(traddr); + if (!listen_addr->traddr) { + free(listen_addr); + return -1; + } + listen_addr->trsvc = strdup(trsvc); + if (!listen_addr->trsvc) { + free(listen_addr->traddr); + free(listen_addr); + return -1; + } + listen_addr->transport = transport; TAILQ_INSERT_HEAD(&subsystem->listen_addrs, listen_addr, link); @@ -194,6 +206,10 @@ spdk_nvmf_subsystem_add_host(struct spdk_nvmf_subsystem *subsystem, char *host_n return -1; } host->nqn = strdup(host_nqn); + if (!host->nqn) { + free(host); + return -1; + } TAILQ_INSERT_HEAD(&subsystem->hosts, host, link); subsystem->num_hosts++;