svn commit: r275217 - user/marcel/libvdsk/libvdsk
Marcel Moolenaar
marcel at FreeBSD.org
Fri Nov 28 21:09:51 UTC 2014
Author: marcel
Date: Fri Nov 28 21:09:50 2014
New Revision: 275217
URL: https://svnweb.freebsd.org/changeset/base/275217
Log:
Code the probe a bit better so that it isn't a memory leak. Also mark
the format as writable.
Modified:
user/marcel/libvdsk/libvdsk/qcow.c
Modified: user/marcel/libvdsk/libvdsk/qcow.c
==============================================================================
--- user/marcel/libvdsk/libvdsk/qcow.c Fri Nov 28 21:08:23 2014 (r275216)
+++ user/marcel/libvdsk/libvdsk/qcow.c Fri Nov 28 21:09:50 2014 (r275217)
@@ -88,12 +88,18 @@ qcow_probe(struct vdsk *vdsk)
return (errno);
if (read(vdsk->fd, hdr, vdsk->sectorsize) != vdsk->sectorsize)
- return (errno);
-
- if (be32dec(&hdr->magic) != QCOW_MAGIC)
- return (ENXIO);
+ goto out;
- return (0);
+ if (be32dec(&hdr->magic) != QCOW_MAGIC) {
+ errno = ENXIO;
+ goto out;
+ }
+
+ errno = 0;
+
+ out:
+ free(hdr);
+ return (errno);
}
static int
@@ -136,7 +142,7 @@ qcow_flush(struct vdsk *vdsk __unused)
static struct vdsk_format qcow_format = {
.name = "qcow",
.description = "QEMU Copy-On-Write, version 1",
- .flags = VDSKFMT_HAS_HEADER,
+ .flags = VDSKFMT_CAN_WRITE | VDSKFMT_HAS_HEADER,
.probe = qcow_probe,
.open = qcow_open,
.close = qcow_close,
More information about the svn-src-user
mailing list