diff options
-rw-r--r-- | sbin/geom/class/virstor/geom_virstor.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/sbin/geom/class/virstor/geom_virstor.c b/sbin/geom/class/virstor/geom_virstor.c index b1d2cb450a8e..b651555859e4 100644 --- a/sbin/geom/class/virstor/geom_virstor.c +++ b/sbin/geom/class/virstor/geom_virstor.c @@ -157,7 +157,6 @@ my_g_metadata_store(const char *name, u_char *md, size_t size) off_t mediasize; u_char *sector; int error, fd; - ssize_t abc; pathgen(name, path, sizeof(path)); sector = NULL; @@ -183,7 +182,7 @@ my_g_metadata_store(const char *name, u_char *md, size_t size) goto out; } bcopy(md, sector, size); - if ((abc = pwrite(fd, sector, sectorsize, mediasize - sectorsize)) != + if (pwrite(fd, sector, sectorsize, mediasize - sectorsize) != (ssize_t)sectorsize) { error = errno; goto out; @@ -273,7 +272,7 @@ virstor_label(struct gctl_req *req) (size_t)(md.md_virsize/(1024 * 1024))); } - msize = secsize = ssize = 0; + msize = secsize = 0; for (i = 1; i < (unsigned)nargs; i++) { snprintf(param, sizeof(param), "arg%u", i); name = gctl_get_ascii(req, param); @@ -291,6 +290,11 @@ virstor_label(struct gctl_req *req) } } + if (secsize == 0) { + gctl_error(req, "Device not specified"); + return; + } + if (md.md_chunk_size % secsize != 0) { fprintf(stderr, "Error: chunk size is not a multiple of sector " "size."); |