Index: src/xml.c
===================================================================
RCS file: /data/cvs/libvirt/src/xml.c,v
retrieving revision 1.97
diff -u -r1.97 xml.c
--- src/xml.c	31 Oct 2007 09:39:13 -0000	1.97
+++ src/xml.c	2 Nov 2007 15:20:44 -0000
@@ -126,7 +126,7 @@
 
     while ((*cur >= '0') && (*cur <= '9')) {
         ret = ret * 10 + (*cur - '0');
-        if (ret > maxcpu)
+        if (ret >= maxcpu)
             return (-1);
         cur++;
     }
@@ -1647,6 +1647,8 @@
                     }
                 }
                 free(cpuset);
+                if (res < 0) 
+                    goto error;
             } else {
                 virXMLError(conn, VIR_ERR_NO_MEMORY, xmldesc, 0);
             }
