[libvirt] Re: libvirt code review
Daniel Veillard
veillard at redhat.com
Tue Nov 10 14:40:59 UTC 2009
On Thu, Nov 05, 2009 at 03:27:16PM -0500, Steve Grubb wrote:
> Hello,
>
> I missed code in a couple other directories. This is much shorter.
>
> -Steve
>
>
> In daemon/libvirtd.c at line 371 the "if" statement will never be true. ret is
> set to 0 at line 350 and never changed.
probably a leftover from previous refactoring, server->shutdown = 1
is directly set in the cases that matters, removed ret altogether.
In the current code head, server->shutdown has been renamed
server->quitEventThread, so patch changed accordingly.
> At line 1535 seems to want to loop on reads that return -1 and either EINTR or
> EAGAIN. The implementation does not. Rather than calling return at line 1538,
> it should likely have a "goto again" with the again label placed just before
> the read call.
Actually in that case I think the current code is fine, the function
should exit 0 on EAGAIN, it's documented, I assume the read will be
retried by the caller, otherwise we would have used saferead() there an
internal routine taking directly care of interrupted calls.
> At line 1783 is a call to write that likely wants a treatment similar to the
> read above.
Same thing, I guess it's intended behaviour :-)
> In tools/virsh.c at line 4616 is a test that format is true. It was checked at
> line 4614 and nothing changed it.
Ah right, harmless but fixed :-)
> At line 6810 memory is allocated. At the error exit at line 6824 it has not
> been freed.
okay
> At line 7664 is a test for network==NULL. This will always be true.
> At line 7704 is a test for iface == NULL. This will always be true.
> At line 7741 is a test for pool==NULL. This will always be true.
Okay, fixed, allows the test to fit in 80 columns too,
Patch for git head attached.
thanks a lot !
Daniel
--
Daniel Veillard | libxml Gnome XML XSLT toolkit http://xmlsoft.org/
daniel at veillard.com | Rpmfind RPM search engine http://rpmfind.net/
http://veillard.com/ | virtualization library http://libvirt.org/
-------------- next part --------------
commit e74427b0570f4389b77c035dc093312f90b3d1e1
Author: Daniel Veillard <veillard at redhat.com>
Date: Tue Nov 10 14:40:22 2009 +0100
Various fixes following a code review part 2
* daemon/libvirtd.c tools/virsh.c: Steve Grubb <sgrubb at redhat.com> found
a few more issues
diff --git a/daemon/libvirtd.c b/daemon/libvirtd.c
index daf06bc..2fcd9a9 100644
--- a/daemon/libvirtd.c
+++ b/daemon/libvirtd.c
@@ -359,7 +359,6 @@ qemudDispatchSignalEvent(int watch ATTRIBUTE_UNUSED,
void *opaque) {
struct qemud_server *server = (struct qemud_server *)opaque;
siginfo_t siginfo;
- int ret;
virMutexLock(&server->lock);
@@ -371,8 +370,6 @@ qemudDispatchSignalEvent(int watch ATTRIBUTE_UNUSED,
return;
}
- ret = 0;
-
switch (siginfo.si_signo) {
case SIGHUP:
VIR_INFO0(_("Reloading configuration on SIGHUP"));
@@ -392,9 +389,6 @@ qemudDispatchSignalEvent(int watch ATTRIBUTE_UNUSED,
break;
}
- if (ret != 0)
- server->quitEventThread = 1;
-
virMutexUnlock(&server->lock);
}
diff --git a/tools/virsh.c b/tools/virsh.c
index f8e6ce4..0d0ebca 100644
--- a/tools/virsh.c
+++ b/tools/virsh.c
@@ -4627,8 +4627,7 @@ cmdVolCreateAs(vshControl *ctl, const vshCmd *cmd)
if (format) {
virBufferAddLit(&buf, " <target>\n");
- if (format)
- virBufferVSprintf(&buf, " <format type='%s'/>\n",format);
+ virBufferVSprintf(&buf, " <format type='%s'/>\n",format);
virBufferAddLit(&buf, " </target>\n");
}
virBufferAddLit(&buf, "</volume>\n");
@@ -6835,6 +6834,7 @@ editWriteToTempFile (vshControl *ctl, const char *doc)
if (fd == -1) {
vshError(ctl, _("mkstemp: failed to create temporary file: %s"),
strerror(errno));
+ free (ret);
return NULL;
}
@@ -7675,7 +7675,7 @@ vshCommandOptNetworkBy(vshControl *ctl, const vshCmd *cmd,
*name = n;
/* try it by UUID */
- if (network==NULL && (flag & VSH_BYUUID) && strlen(n)==VIR_UUID_STRING_BUFLEN-1) {
+ if ((flag & VSH_BYUUID) && (strlen(n) == VIR_UUID_STRING_BUFLEN-1)) {
vshDebug(ctl, 5, "%s: <%s> trying as network UUID\n",
cmd->def->name, optname);
network = virNetworkLookupByUUIDString(ctl->conn, n);
@@ -7715,7 +7715,7 @@ vshCommandOptInterfaceBy(vshControl *ctl, const vshCmd *cmd,
*name = n;
/* try it by NAME */
- if ((iface == NULL) && (flag & VSH_BYNAME)) {
+ if ((flag & VSH_BYNAME)) {
vshDebug(ctl, 5, "%s: <%s> trying as interface NAME\n",
cmd->def->name, optname);
iface = virInterfaceLookupByName(ctl->conn, n);
@@ -7752,13 +7752,13 @@ vshCommandOptPoolBy(vshControl *ctl, const vshCmd *cmd, const char *optname,
*name = n;
/* try it by UUID */
- if (pool==NULL && (flag & VSH_BYUUID) && strlen(n)==VIR_UUID_STRING_BUFLEN-1) {
+ if ((flag & VSH_BYUUID) && (strlen(n) == VIR_UUID_STRING_BUFLEN-1)) {
vshDebug(ctl, 5, "%s: <%s> trying as pool UUID\n",
cmd->def->name, optname);
pool = virStoragePoolLookupByUUIDString(ctl->conn, n);
}
/* try it by NAME */
- if (pool==NULL && (flag & VSH_BYNAME)) {
+ if (pool == NULL && (flag & VSH_BYNAME)) {
vshDebug(ctl, 5, "%s: <%s> trying as pool NAME\n",
cmd->def->name, optname);
pool = virStoragePoolLookupByName(ctl->conn, n);
More information about the libvir-list
mailing list