]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
* src/internal.h src/xend_internal.c src/xml.c: applied 2 bug fixes
authorDaniel Veillard <veillard@redhat.com>
Mon, 23 Apr 2007 07:41:23 +0000 (07:41 +0000)
committerDaniel Veillard <veillard@redhat.com>
Mon, 23 Apr 2007 07:41:23 +0000 (07:41 +0000)
  from Shigeki Sakamoto about large buffers.
Daniel

ChangeLog
src/internal.h
src/xend_internal.c
src/xml.c

index 3ceecf28aed83250d425cbb7dd00b1344cb7a057..6b663c50f9ad3fa0656aea46611d87ab76ea0319 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Mon Apr 23 09:38:16 CEST 2007 Daniel Veillard <veillard@redhat.com>
+
+       * src/internal.h src/xend_internal.c src/xml.c: applied 2 bug fixes
+         from Shigeki Sakamoto about large buffers.
+
 Thu Apr 19 12:09:15 IST 2007 Mark McLoughlin <markmc@redhat.com>
 
        * docs/libvirt.rng: fix duplicate x86_64 arch
index b01dda2b6e29648bb9ad1184d4cb8591a9a2a40e..f37199811e31fe4604cbd38d340ce38ea17bab9c 100644 (file)
@@ -105,6 +105,11 @@ extern "C" {
  */
 #define VIR_CONNECT_RO 1
 
+/**
+ * buffer size for definition file
+ */
+#define VIR_XML_STRING_BUFLEN (1024 + PATH_MAX * 16 + FILENAME_MAX * 16)
+
 /**
  * _virConnect:
  *
index 7de277d801c5cbf5964fe8b8bd80eee35fb5dd61..fb1cd10e2ea2e9b6e03d5a3da73ba01dc1e64967 100644 (file)
@@ -587,7 +587,7 @@ static int
 xend_op_ext2(virConnectPtr xend, const char *path, char *error,
              size_t n_error, const char *key, va_list ap)
 {
-    char ops[1024];
+    char ops[VIR_XML_STRING_BUFLEN];
     const char *k = key, *v;
     int offset = 0;
 
index 6796d53ecec4fbfbe08aa39cfb3012c51602c76e..a5894a49a724765018a049b937b846bd607fe9b7 100644 (file)
--- a/src/xml.c
+++ b/src/xml.c
@@ -1165,7 +1165,7 @@ virDomainParseXMLDesc(virConnectPtr conn, const char *xmldesc, char **name, int
 {
     xmlDocPtr xml = NULL;
     xmlNodePtr node;
-    char *ret = NULL, *nam = NULL;
+    char *nam = NULL;
     virBuffer buf;
     xmlChar *prop;
     xmlParserCtxtPtr pctxt;
@@ -1182,10 +1182,9 @@ virDomainParseXMLDesc(virConnectPtr conn, const char *xmldesc, char **name, int
 
     if (name != NULL)
         *name = NULL;
-    ret = malloc(1000);
-    if (ret == NULL)
+    buf.content = malloc(1000);
+    if (buf.content == NULL)
         return (NULL);
-    buf.content = ret;
     buf.size = 1000;
     buf.use = 0;
 
@@ -1376,7 +1375,7 @@ virDomainParseXMLDesc(virConnectPtr conn, const char *xmldesc, char **name, int
     else
         free(nam);
 
-    return (ret);
+    return (buf.content);
 
  error:
     if (nam != NULL)
@@ -1389,8 +1388,8 @@ virDomainParseXMLDesc(virConnectPtr conn, const char *xmldesc, char **name, int
         xmlFreeDoc(xml);
     if (pctxt != NULL)
         xmlFreeParserCtxt(pctxt);
-    if (ret != NULL)
-        free(ret);
+    if (buf.content != NULL)
+        free(buf.content);
     return (NULL);
 }