You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
35 lines
1.1 KiB
35 lines
1.1 KiB
From 4e1ea576167520bbc2bad50797119983e133af74 Mon Sep 17 00:00:00 2001 |
|
From: David Drysdale <drysdale@google.com> |
|
Date: Fri, 20 Nov 2015 11:13:45 +0800 |
|
Subject: [PATCH] CVE-2015-5312 Another entity expansion issue |
|
To: libvir-list@redhat.com |
|
|
|
For https://bugzilla.gnome.org/show_bug.cgi?id=756733 |
|
It is one case where the code in place to detect entities expansions |
|
failed to exit when the situation was detected, leading to DoS |
|
Problem reported by Kostya Serebryany @ Google |
|
Patch provided by David Drysdale @ Google |
|
|
|
Signed-off-by: Daniel Veillard <veillard@redhat.com> |
|
--- |
|
parser.c | 4 ++++ |
|
1 file changed, 4 insertions(+) |
|
|
|
diff --git a/parser.c b/parser.c |
|
index a58dda3..e536e54 100644 |
|
--- a/parser.c |
|
+++ b/parser.c |
|
@@ -2801,6 +2801,10 @@ xmlStringLenDecodeEntities(xmlParserCtxtPtr ctxt, const xmlChar *str, int len, |
|
0, 0, 0); |
|
ctxt->depth--; |
|
|
|
+ if ((ctxt->lastError.code == XML_ERR_ENTITY_LOOP) || |
|
+ (ctxt->lastError.code == XML_ERR_INTERNAL_ERROR)) |
|
+ goto int_error; |
|
+ |
|
if (rep != NULL) { |
|
current = rep; |
|
while (*current != 0) { /* non input consuming loop */ |
|
-- |
|
2.5.0 |
|
|
|
|