In validate_namespace_options(), seed is obtained through calling ndctl_region_get_namespace_seed(), which may return NULL. If seed is NULL, we should return directly with error code. In addition, we can use region_name var rather than calling ndctl_region_get_devname() again.
Signed-off-by: Zhiqiang Liu <[email protected]> --- ndctl/namespace.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/ndctl/namespace.c b/ndctl/namespace.c index 257384d..5a92d62 100644 --- a/ndctl/namespace.c +++ b/ndctl/namespace.c @@ -847,8 +847,7 @@ static int validate_namespace_options(struct ndctl_region *region, region_align = ndctl_region_get_align(region); if (region_align < ULONG_MAX && p->size % region_align) { err("%s: align setting is %#lx size %#llx is misaligned\n", - ndctl_region_get_devname(region), region_align, - p->size); + region_name, region_align, p->size); return -EINVAL; } @@ -924,8 +923,13 @@ static int validate_namespace_options(struct ndctl_region *region, } else { struct ndctl_namespace *seed = ndns; - if (!seed) + if (!seed) { seed = ndctl_region_get_namespace_seed(region); + if (!seed) { + err("%s: failed to get seed\n", region_name); + return -ENXIO; + } + } num = ndctl_namespace_get_num_sector_sizes(seed); for (i = 0; i < num; i++) if (ndctl_namespace_get_supported_sector_size(seed, i) @@ -953,9 +957,13 @@ static int validate_namespace_options(struct ndctl_region *region, struct ndctl_namespace *seed; seed = ndctl_region_get_namespace_seed(region); + if (!seed) { + err("%s: failed to get seed\n", region_name); + return -ENXIO; + } if (ndctl_namespace_get_type(seed) == ND_DEVICE_NAMESPACE_BLK) debug("%s: set_defaults() should preclude this?\n", - ndctl_region_get_devname(region)); + region_name); /* * Pick a default sector size for a pmem namespace based * on what the kernel supports. -- 1.8.3.1 _______________________________________________ Linux-nvdimm mailing list -- [email protected] To unsubscribe send an email to [email protected]
