From 889abac05d5c9247175c9520ee0841c575be4756 Mon Sep 17 00:00:00 2001 From: Shuhei Matsumoto Date: Wed, 23 Jan 2019 10:14:40 +0900 Subject: [PATCH] bdev/aio: Improve error check of config file parsing by spdk_strtol Change-Id: I6e0657c22a124e5c8773f27d40c8cdf7b35055d8 Signed-off-by: Shuhei Matsumoto Reviewed-on: https://review.gerrithub.io/c/441638 Tested-by: SPDK CI Jenkins Reviewed-by: Darek Stojaczyk Reviewed-by: wuzhouhui Reviewed-by: Ben Walker Reviewed-by: Changpeng Liu --- lib/bdev/aio/bdev_aio.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/lib/bdev/aio/bdev_aio.c b/lib/bdev/aio/bdev_aio.c index 12b1d900a..e528acd89 100644 --- a/lib/bdev/aio/bdev_aio.c +++ b/lib/bdev/aio/bdev_aio.c @@ -686,6 +686,7 @@ bdev_aio_initialize(void) const char *name; const char *block_size_str; uint32_t block_size = 0; + long int tmp; file = spdk_conf_section_get_nmval(sp, "AIO", i, 0); if (!file) { @@ -701,7 +702,13 @@ bdev_aio_initialize(void) block_size_str = spdk_conf_section_get_nmval(sp, "AIO", i, 2); if (block_size_str) { - block_size = atoi(block_size_str); + tmp = spdk_strtol(block_size_str, 10); + if (tmp < 0) { + SPDK_ERRLOG("Invalid block size for AIO disk with file %s\n", file); + i++; + continue; + } + block_size = (uint32_t)tmp; } bdev = create_aio_disk(name, file, block_size);