Blame libvirt-0.6.3-xml-attribute-escaping.patch
|
Mark McLoughlin |
a6e23d |
From 7f7a4403860f56d5a1ad65bfd16f5bf97a971d45 Mon Sep 17 00:00:00 2001
|
|
Mark McLoughlin |
a6e23d |
From: Daniel Veillard <veillard@redhat.com>
|
|
Mark McLoughlin |
a6e23d |
Date: Wed, 13 May 2009 16:19:59 +0000
|
|
Mark McLoughlin |
a6e23d |
Subject: [PATCH 1/1] * src/buf.c: avoid an XML attribute escaping bug #499791
|
|
Mark McLoughlin |
a6e23d |
daniel
|
|
Mark McLoughlin |
a6e23d |
|
|
Mark McLoughlin |
a6e23d |
---
|
|
Mark McLoughlin |
a6e23d |
src/buf.c | 16 +++++++++++++++-
|
|
Mark McLoughlin |
a6e23d |
1 files changed, 15 insertions(+), 1 deletions(-)
|
|
Mark McLoughlin |
a6e23d |
|
|
Mark McLoughlin |
a6e23d |
diff --git a/src/buf.c b/src/buf.c
|
|
Mark McLoughlin |
a6e23d |
index cdcdac9..259175d 100644
|
|
Mark McLoughlin |
a6e23d |
--- a/src/buf.c
|
|
Mark McLoughlin |
a6e23d |
+++ b/src/buf.c
|
|
Mark McLoughlin |
a6e23d |
@@ -266,7 +266,7 @@ virBufferEscapeString(const virBufferPtr buf, const char *format, const char *st
|
|
Mark McLoughlin |
a6e23d |
return;
|
|
Mark McLoughlin |
a6e23d |
|
|
Mark McLoughlin |
a6e23d |
len = strlen(str);
|
|
Mark McLoughlin |
a6e23d |
- if (VIR_ALLOC_N(escaped, 5 * len + 1) < 0) {
|
|
Mark McLoughlin |
a6e23d |
+ if (VIR_ALLOC_N(escaped, 6 * len + 1) < 0) {
|
|
Mark McLoughlin |
a6e23d |
virBufferNoMemory(buf);
|
|
Mark McLoughlin |
a6e23d |
return;
|
|
Mark McLoughlin |
a6e23d |
}
|
|
Mark McLoughlin |
a6e23d |
@@ -290,6 +290,20 @@ virBufferEscapeString(const virBufferPtr buf, const char *format, const char *st
|
|
Mark McLoughlin |
a6e23d |
*out++ = 'm';
|
|
Mark McLoughlin |
a6e23d |
*out++ = 'p';
|
|
Mark McLoughlin |
a6e23d |
*out++ = ';';
|
|
Mark McLoughlin |
a6e23d |
+ } else if (*cur == '"') {
|
|
Mark McLoughlin |
a6e23d |
+ *out++ = '&';
|
|
Mark McLoughlin |
a6e23d |
+ *out++ = 'q';
|
|
Mark McLoughlin |
a6e23d |
+ *out++ = 'u';
|
|
Mark McLoughlin |
a6e23d |
+ *out++ = 'o';
|
|
Mark McLoughlin |
a6e23d |
+ *out++ = 't';
|
|
Mark McLoughlin |
a6e23d |
+ *out++ = ';';
|
|
Mark McLoughlin |
a6e23d |
+ } else if (*cur == '\'') {
|
|
Mark McLoughlin |
a6e23d |
+ *out++ = '&';
|
|
Mark McLoughlin |
a6e23d |
+ *out++ = 'a';
|
|
Mark McLoughlin |
a6e23d |
+ *out++ = 'p';
|
|
Mark McLoughlin |
a6e23d |
+ *out++ = 'o';
|
|
Mark McLoughlin |
a6e23d |
+ *out++ = 's';
|
|
Mark McLoughlin |
a6e23d |
+ *out++ = ';';
|
|
Mark McLoughlin |
a6e23d |
} else if ((*cur >= 0x20) || (*cur == '\n') || (*cur == '\t') ||
|
|
Mark McLoughlin |
a6e23d |
(*cur == '\r')) {
|
|
Mark McLoughlin |
a6e23d |
/*
|
|
Mark McLoughlin |
a6e23d |
--
|
|
Mark McLoughlin |
a6e23d |
1.6.0.6
|
|
Mark McLoughlin |
a6e23d |
|