Commit fa3ab738 authored by Yankun Li's avatar Yankun Li Committed by Konrad Sztyber
Browse files

bdev/raid: Fix raid_bdev->sb null pointer



This patch adds a check to ensure that raid_bdev->sb is
not NULL, with the goal of prohibiting the creation of a
RAID block device using base block devices that have a
superblock.

Fixes issue #3565

Change-Id: I87985325eac8b623dd28ec01edef7a9e4613850a
Signed-off-by: default avatarYankun Li <yankun@staff.sina.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/25375


Reviewed-by: default avatarJim Harris <jim.harris@samsung.com>
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: default avatarChangpeng Liu <changpeliu@tencent.com>
Community-CI: Community CI Samsung <spdk.community.ci.samsung@gmail.com>
Community-CI: Mellanox Build Bot
Reviewed-by: default avatarArtur Paszkiewicz <artur.paszkiewicz@intel.com>
Reviewed-by: default avatarGangCao <gang.cao@intel.com>
parent 12fc2abf
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -3675,6 +3675,12 @@ raid_bdev_examine_sb(const struct raid_bdev_superblock *sb, struct spdk_bdev *bd
	raid_bdev = raid_bdev_find_by_uuid(&sb->uuid);

	if (raid_bdev) {
		if (raid_bdev->sb == NULL) {
			SPDK_WARNLOG("raid superblock is null\n");
			rc = -EINVAL;
			goto out;
		}

		if (sb->seq_number > raid_bdev->sb->seq_number) {
			SPDK_DEBUGLOG(bdev_raid,
				      "raid superblock seq_number on bdev %s (%lu) greater than existing raid bdev %s (%lu)\n",