From 12d6dce2aaf27810fae29ebbaca89560941f5928 Mon Sep 17 00:00:00 2001 From: Shuhei Matsumoto Date: Fri, 28 Jun 2019 17:28:24 +0900 Subject: [PATCH] nvmf: Use not malloc'ed but fixed size string for host NQN Maximum size of NQN is already defined to be SPDK_NVMF_NQN_MAX_LEN, and hence use fixed size string whose size is SPDK_NVMF_NQN_MAX_LEN + 1 for spdk_nvmf_vhost::nqn. This change will reduce the potential malloc failure. Signed-off-by: Shuhei Matsumoto Change-Id: I2b9c7cc21200b3e88b5485ebfdcd5040bc6e3589 Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/459742 Tested-by: SPDK CI Jenkins Reviewed-by: Paul Luse Reviewed-by: Seth Howell Reviewed-by: Changpeng Liu --- lib/nvmf/nvmf_internal.h | 2 +- lib/nvmf/subsystem.c | 8 ++------ 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/lib/nvmf/nvmf_internal.h b/lib/nvmf/nvmf_internal.h index 83c947eda..e458a8215 100644 --- a/lib/nvmf/nvmf_internal.h +++ b/lib/nvmf/nvmf_internal.h @@ -90,7 +90,7 @@ struct spdk_nvmf_tgt { }; struct spdk_nvmf_host { - char *nqn; + char nqn[SPDK_NVMF_NQN_MAX_LEN + 1]; TAILQ_ENTRY(spdk_nvmf_host) link; }; diff --git a/lib/nvmf/subsystem.c b/lib/nvmf/subsystem.c index 15e6753ff..96f931b9e 100644 --- a/lib/nvmf/subsystem.c +++ b/lib/nvmf/subsystem.c @@ -308,7 +308,6 @@ static void _spdk_nvmf_subsystem_remove_host(struct spdk_nvmf_subsystem *subsystem, struct spdk_nvmf_host *host) { TAILQ_REMOVE(&subsystem->hosts, host, link); - free(host->nqn); free(host); } @@ -648,11 +647,8 @@ spdk_nvmf_subsystem_add_host(struct spdk_nvmf_subsystem *subsystem, const char * if (!host) { return -ENOMEM; } - host->nqn = strdup(hostnqn); - if (!host->nqn) { - free(host); - return -ENOMEM; - } + + snprintf(host->nqn, sizeof(host->nqn), "%s", hostnqn); TAILQ_INSERT_HEAD(&subsystem->hosts, host, link); subsystem->tgt->discovery_genctr++;