From 1aaa9475ced5c69e79702414df2d31fc41ae2ee0 Mon Sep 17 00:00:00 2001 From: GangCao Date: Mon, 27 Mar 2017 17:53:38 -0400 Subject: [PATCH] iscsi: check invalid flush timeout parameter Change-Id: Icb0c97511f2c45b06a4f4af88cff3fa464a6fc74 Signed-off-by: GangCao --- lib/iscsi/iscsi_subsystem.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/lib/iscsi/iscsi_subsystem.c b/lib/iscsi/iscsi_subsystem.c index ed5eb97b5d..7c43538d79 100644 --- a/lib/iscsi/iscsi_subsystem.c +++ b/lib/iscsi/iscsi_subsystem.c @@ -545,6 +545,7 @@ spdk_iscsi_app_read_parameters(void) int AllowDuplicateIsid; int min_conn_per_core = 0; int conn_idle_interval = 0; + unsigned long flush_timeout = 0; /* Process parameters */ SPDK_TRACELOG(SPDK_TRACE_DEBUG, "spdk_iscsi_app_read_parameters\n"); @@ -800,11 +801,13 @@ spdk_iscsi_app_read_parameters(void) g_spdk_iscsi.timeout); val = spdk_conf_section_get_val(sp, "FlushTimeout"); - if (val == NULL) { - g_spdk_iscsi.flush_timeout = DEFAULT_FLUSH_TIMEOUT * (spdk_get_ticks_hz() >> 20); - } else { - g_spdk_iscsi.flush_timeout = strtoul(val, NULL, 10) * (spdk_get_ticks_hz() >> 20); + if (val) { + flush_timeout = strtoul(val, NULL, 10); } + if (flush_timeout == 0) { + flush_timeout = DEFAULT_FLUSH_TIMEOUT; + } + g_spdk_iscsi.flush_timeout = flush_timeout * (spdk_get_ticks_hz() >> 20); SPDK_TRACELOG(SPDK_TRACE_DEBUG, "FlushTimeout %"PRIu64"\n", g_spdk_iscsi.flush_timeout); nopininterval = spdk_conf_section_get_intval(sp, "NopInInterval");