return fd;
fmt = validate_output_format(cfg.output_format);
- if (fmt < 0)
- return fmt;
+ if (fmt < 0) {
+ err = fmt;
+ goto close_fd;
+ }
if (cfg.raw_binary)
fmt = BINARY;
- if (!cfg.namespace_id)
+ if (!cfg.namespace_id) {
cfg.namespace_id = get_nsid(fd);
+ if (cfg.namespace_id <= 0)
+ return EINVAL;
+ }
if (posix_memalign(&nsdescs, getpagesize(), 0x1000)) {
fprintf(stderr, "can not allocate controller list payload\n");
nr = max(nc, max(nb, ns));
if (!nr || nr > 256) {
fprintf(stderr, "No range definition provided\n");
- return EINVAL;
+ err = EINVAL;
+ goto close_fd;
}
- if (!cfg.namespace_id)
+ if (!cfg.namespace_id) {
cfg.namespace_id = get_nsid(fd);
+ if (cfg.namespace_id <= 0)
+ return EINVAL;
+ }
if (!cfg.cdw11)
cfg.cdw11 = (cfg.ad << 2) | (cfg.idw << 1) | (cfg.idr << 0);
if (fd < 0)
return fd;
- if (!cfg.namespace_id)
+ if (!cfg.namespace_id) {
cfg.namespace_id = get_nsid(fd);
+ if (cfg.namespace_id <= 0)
+ return EINVAL;
+ }
if (cfg.racqa > 7) {
fprintf(stderr, "invalid racqa:%d\n", cfg.racqa);
- return EINVAL;
+ err = EINVAL;
+ goto close_fd;
}
err = nvme_resv_acquire(fd, cfg.namespace_id, cfg.rtype, cfg.racqa,
if (fd < 0)
return fd;
- if (!cfg.namespace_id)
+ if (!cfg.namespace_id) {
cfg.namespace_id = get_nsid(fd);
+ if (cfg.namespace_id <= 0)
+ return EINVAL;
+ }
if (cfg.cptpl > 3) {
fprintf(stderr, "invalid cptpl:%d\n", cfg.cptpl);
- return EINVAL;
+ err = EINVAL;
+ goto close_fd;
}
err = nvme_resv_register(fd, cfg.namespace_id, cfg.rrega, cfg.cptpl,
if (fd < 0)
return fd;
- if (!cfg.namespace_id)
+ if (!cfg.namespace_id) {
cfg.namespace_id = get_nsid(fd);
+ if (cfg.namespace_id <= 0)
+ return EINVAL;
+ }
if (cfg.iekey > 1) {
fprintf(stderr, "invalid iekey:%d\n", cfg.iekey);
- return EINVAL;
+ err = EINVAL;
+ goto close_fd;
}
if (cfg.rrela > 7) {
fprintf(stderr, "invalid rrela:%d\n", cfg.rrela);