lib/bdev: do not allow bdev name to be an empty string

It looks like currently we only check bdev names for NULL, but
not for "empty" string.

For example this rpc command:
sudo scripts/rpc.py construct_aio_bdev aio_disk "" 512

Will result in construction of AIO bdev with empty name:
sudo scripts/rpc.py get_bdevs
[...]
    "name": "",
    "aliases": [],
[...]

Change-Id: I41204096c8cf210a4dc40a8225d1c9dad353f533
Signed-off-by: Karol Latecki <karol.latecki@intel.com>
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/460150
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Darek Stojaczyk <dariusz.stojaczyk@intel.com>
Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
Reviewed-by: Paul Luse <paul.e.luse@intel.com>
Reviewed-by: Vitaliy Mysak <vitaliy.mysak@intel.com>
Reviewed-by: Maciej Szwed <maciej.szwed@intel.com>
This commit is contained in:
Karol Latecki 2019-07-02 16:13:31 +02:00 committed by Changpeng Liu
parent f155fedcdb
commit 37c04b7be8

View File

@ -4003,6 +4003,11 @@ spdk_bdev_init(struct spdk_bdev *bdev)
return -EINVAL;
}
if (!strlen(bdev->name)) {
SPDK_ERRLOG("Bdev name must not be an empty string\n");
return -EINVAL;
}
if (spdk_bdev_get_by_name(bdev->name)) {
SPDK_ERRLOG("Bdev name:%s already exists\n", bdev->name);
return -EEXIST;